Уменьшите порядок модели Simulink ® путем линеаризации модели и оценки модели более низкого порядка, которая сохраняет динамику модели .
В этом примере требуются инструменты Simulink и Simulink Control Design™.
Рассмотрим модель Simulink idF14Model. Линеаризация этой модели дает модель девятого порядка. Однако динамику модели можно зафиксировать, не ставя под угрозу слишком высокое качество посадки, используя модель более низкого порядка.
Получение линеаризованной модели.
load_system('idF14Model'); io = getlinio('idF14Model'); sys_lin = linearize('idF14Model',io);
sys_lin - модель пространства состояний девятого порядка с двумя выходами и одним входом.
Моделирование ответа на шаг линеаризованной модели и использование данных для создания iddata объект.
Ts = 0.0444; t = (0:Ts:4.44)'; y = step(sys_lin,t); data = iddata([zeros(20,2);y],[zeros(20,1); ones(101,1)],Ts);
data является iddata объект, инкапсулирующий ответ на шаг sys_lin.
Сравните данные с линеаризацией модели.
compare(data,sys_lin);

Поскольку данные были получены путем моделирования линеаризованной модели, существует полное соответствие между данными и откликом линеаризации модели.
Определение модели пространства состояния с уменьшенным порядком, соответствующим данным.
Определение оптимального порядка модели.
nx = 1:9; sys1 = ssest(data,nx,'DisturbanceModel','none');
График, показывающий сингулярные значения Ханкеля (SVD) для моделей порядков, указанных nx появляется.

Состояния с относительно небольшими сингулярными значениями Ганкеля могут быть безопасно отброшены. На графике предлагается использовать модель пятого порядка.
В командной строке MATLAB ® выберите порядок модели для модели расчетного состояния-пространства. Укажите порядок модели как5или нажмите Enter, чтобы использовать значение заказа по умолчанию.
Сравните данные с расчетной моделью.
compare(data,sys1);

График отображает проценты соответствия для двух sys1 выходы. Уменьшение порядка модели на четыре состояния приводит к относительно небольшому уменьшению процента соответствия.
Проверьте условие остановки алгоритма поиска.
sys1.Report.Termination.WhyStop
ans = 'Maximum number of iterations reached.'
Создайте набор параметров оценки. Укажите 'lm' способ поиска. Увеличьте максимальное число итераций поиска до 50 с максимума по умолчанию, равного 20.
opt = ssestOptions('SearchMethod','lm'); opt.SearchOptions.MaxIterations = 50; opt.Display = 'on';
Определение модели пространства состояния с использованием набора опций оценки и sys1 в качестве модели инициализации оценки.
sys2 = ssest(data,sys1,opt);
Сравните отклик линеаризованной и расчетной моделей.
compare(data,sys_lin,sys2);

В результате обновленного набора опций для sys2.
getlinio (Simulink Control Design) | linearize(Проект управления Simulink)