В этом примере показаны функции, доступные в Design™ Simulink ® Control для линеаризации моделей, содержащих ссылки на другие модели с блоком Model.
Модель scdspeed_ctrlloop
является компонентной версией модели scdspeedctrl
. В этой модели модель скорости вращения двигателя является компонентом, представленным в модели scdspeed_plantref
на который ссылается с помощью блока Model. Откройте модель.
topmdl = 'scdspeed_ctrlloop';
open_system(topmdl)
По умолчанию блок Engine Model устанавливается в режим симуляции Accelerator, на что указывают черные треугольники в углах блока Model. Линеаризация модели с этим набором блоков в режим симуляции ускорителя численно возмущает весь блок Engine Model. Точность этой линеаризации очень чувствительна к блокам в модели Engine. В частности, блок переменной задержки транспорта очень проблематичен.
Чтобы достичь точной линеаризации, установите блок Model в режим симуляции normal, чтобы разрешить линейную обработку блоков ссылочных моделей.
set_param('scdspeed_ctrlloop/Engine Model','SimulationMode','Normal')
Теперь углы блока Model являются белыми треугольниками, что указывает на то, что его режим симуляции установлен в нормальное положение.
Линеаризируйте модель между опорным сигналом скорости и выхода скорости и постройте график получившейся переходной характеристики.
io(1) = linio('scdspeed_ctrlloop/Speed Reference',1,'input'); io(2) = linio('scdspeed_ctrlloop/Speed Output',1,'output'); sys_normal = linearize(topmdl,io); step(sys_normal)
Закройте модель Simulink.
bdclose('scdspeed_ctrlloop')
Другое преимущество переключения модели-ссылки в симуляцию режима normal mode заключается в том, что вы можете воспользоваться точными представлениями задержки.
Для получения дополнительной информации о линеаризации моделей с задержками смотрите пример Линеаризация моделей с задержками.