Законы диалектики непреклонны: количество переходит в качество, а с увеличением размера схемы уменьшается её наглядность. Решить эту проблему можно путём объединения функциональных групп элементов в суперблоки. Как это сделать рассмотрим на примере следующей схемы, которая по совместительству является моделью дискретного уравнения
y(n+1) = 0.8 y(n) + 1.1 с начальным условием y(0) = 1.
Дискретный режим работы здесь обеспечивает элемент DOLLAR_f из палитры "Discrete time systems". В момент активации он отображает на выходе своё внутреннее состоянии, а затем изменяет его (состояние) в соответствии с входным сигналом. Начальное условие устанавливается в настройке параметров данного блока. Также установим период задержки, скажем, 0,5 с (настраивается в источнике сигнала - часах CLOCK_c). В результате 30-секундного моделирования имеем следующий результат.
Теперь объединим всё, что между источником и приёмником, в единый суперблок. Для этого нужно выделить все промежуточные элементы, например, при нажатой левой клавише мыши, щёлкнуть правой клавишей на одном из выделенных элементов и выбрать пункт "Region to superblock". В результате, схема примет следующий вид.
Чтобы узнать устройство суперблока, нужно дважды щёлкнуть на нём левой клавишей мыши. В открывшемся окне можно выполнять те же операции редактирования, что и в основной области схемы.
Элементы с цифрой "1" (IN_f и OUT_f) означают вход и выход суперблока. В общем случае, их может быть больше одного. Суперблок можно создать и другим способом, а именно, добавить в общую схему элемент SUPER_f из палитры "User-Defined Functions", а затем "вручную" его начинить нужными компонентами. Возможно, кому-то это вариант понравится больше.
P.S. Основным источником моих познаний в Xcos является руководство С.Данилова "Scicos - пакет Scilab для моделирования динамических систем", и данная схема также была взята из него.
Комментариев нет:
Отправить комментарий