Создайте копию файла zadanie2.mdl под именем zadanie3.mdl. Откройте окно модели zadanie3.mdl. Добавьте в модель блоки Displayи To Workspace и соедините их так, как показано на рис. 11. В настройках блока Displayзадайтеформат short_e. В настройках блока To Workspaceукажите имя переменной distance, а параметру Decimationприсвойте значение 5.
Создайте цепочку для проверки блоков Sine Wave (раздел Sources; блок генерирует сигнал синусоидальной формы) и To File (см. рис. 11). Оставьте заданные «по умолчанию» настройки блока Sine Wave, а в окне редактирования параметров блока To Fileзадайте имя файла Sine.matи имя переменной sine.
Рис.11
Запустите модель на выполнение и убедитесь, что на дисплее появилось число 3.2345e+001 – значение distanceдля момента окончания моделирования, равного 10.
Рис.12
Откройте окно Matlabи убедитесь, что в окне Workspaceпоявилось имя переменной distance. Дважды щелкните на нем мышью и получите
таблицу значений distance в окне Variable Editor (рис. 12).В таблице показано каждое пятое (согласно заданному параметру Decimation) значение distance(всего их 51).
В окне Workspaceвыведена также независимая переменная tout– время. Можно убедиться, что время представлено 51 значением с шагом 0.2. Этот шаг был выбран автоматически в процессе моделирования.
Дважды щелкните на изображении осциллографа Scope. Откроется окно просмотра. Нажмите кнопку 6 (см. рис. 10) и получите изображение, показанное на рис. 13, а. Верхний график это скорость, а нижний – пройденное расстояние.
а б
Рис. 13
Откройте теперь окно новой модели (пустое) и соедините в нем блоки From Fileи Scope, как показано на рис. 14.
Рис. 14
Для блока From Fileукажите имя файла Sine.mat, в который ранее был записан сигнал с блока Sine Wave. Запустите моделирование, откройте окно просмотра и убедитесь, что в файле действительно записана волна синусоиды (рис. 13, б). Сохраните модель в файле zadanie3a.mdl. Завершите моделирование, закрыв все окна. ▲
1.7. Создание подсистем
Применение подсистем позволяет существенно упростить работу со сложнымимоделями за счет более компактного их изображения и возможности отладки фрагментов моделей по отдельности. Подсистема (Subsystem) это часть системы, объединяющая несколько блоков и связанная с остальными частями модели через посредство обозначенных цифрами входов и выходов.
Подсистемы могут быть виртуальными и монолитными (Atomic Subsystem). Далее используются только монолитные. В процессе моделирования они рассматриваются как единые блоки.
Для создания подсистемы нужно выделить рамкой группу входящих в нее элементов (см. п. 1.4) и выполнить команды Edit → Create Subsystem. После этого вместо рамки с элементами подсистемы возникнет пустой прямоугольник с обозначениями пронумерованных входов (In) и выходов (Out), отвечающих ранее существовавшим входным и выходным сигналам подсистемы.
Изображение подсистемы можно затем сохранить в файле или скопировать в окно основной модели, а надпись Subsistem под прямоугольником заменить на более содержательную. Эти действия еще будут рассматриваться позже.
2. МОДЕЛЬ СИСТЕМЫ РЕГУЛИРОВАНИЯ УРОВНЯ
2.1. Объект
Объект (рис. 15) представляет собой цилиндрическую рабочую емкость 1, в которой должен поддерживаться заданный постоянный уровень жидкости H0. Здесь и далее уровни отсчитываются от плоского дна емкости. При необходимости жидкость доливается из резервной емкости 2, в которой уровень жидкости составляет не обязательно постоянную величину H1. Расход доливаемой жидкости может изменяться с помощью регулирующего органа (вентиля) 3, проходное сечение которого составляет переменную величину F1. Отбор жидкости происходит через вентиль 4 с переменным проходным сечением F2. Текущий уровень жидкости в рабочей емкости обозначен H.
Рис. 15
Уравнение объекта нетрудно получить, исходя из условия баланса количества жидкости, поступающей из резервной емкости, отбираемой из рабочей емкости и накапливаемой в ней за малый интервал времени ∆t:
, (2)
где W – площадь поперечного сечения рабочей емкости, ∆H – приращение в ней уровня за ∆t, ε – коэффициент, учитывающий снижение расхода через вентиль из-за влияния местного сопротивления течению жидкости, g – ускорение силы тяжести.
В левой части уравнения стоит приращение объема жидкости за ∆t. Первое слагаемое в правой части – объем поступившей, а второе слагаемое – объем отобранной за то же время жидкости. После деления обеих частей уравнения на W∆t и перехода к пределу при ∆t→ 0 получим
, (3)
где S1 = F1ε и S2 = F2ε – «эффективные» проходные сечения вентилей 3 и 4.
Уравнение (3) представляет собой нелинейное (нелинейность обусловлена наличием операции извлечения корня) обыкновенное дифференциальное уравнение первого порядка относительно H.
С позиций автоматического регулирования H является регулируемой величиной, S1 – управляющим, а S2 и H1 – возмущающими воздействиями. При этом сами вентили можно не включать в состав объекта и рассматривать в дальнейшем самостоятельно.
Для однозначного решения уравнения (3) необходимо еще задать начальное условие – уровень H(0) в начальный момент времени t=0.
Примем следующие числовые значения: g = 9.8 м/с2, W= 0.2 м2, максимальные (при полном открытии вентилей) значения S1 и S2 равны соответственно S1max= 0.01 м2 и S2max= 0.02 м2. При полностью закрытых вентилях S1 = S2 = 0.
Кроме того, предположим существование номинального режима работы, при котором H = H0 = 1 м, H1 = = 5 м, S1 = = 0.005 м2, S2 = = 0.01 м2. В этом режиме выполняется равенство