exponenta event banner

Использование оценки состояния пространства для уменьшения порядка моделей

Уменьшите порядок модели 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);

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent data (y1), sys\_lin: 100%. Axes 2 contains 2 objects of type line. These objects represent data (y2), sys\_lin: 100%.

Поскольку данные были получены путем моделирования линеаризованной модели, существует полное соответствие между данными и откликом линеаризации модели.

Определение модели пространства состояния с уменьшенным порядком, соответствующим данным.

Определение оптимального порядка модели.

nx = 1:9;
sys1 = ssest(data,nx,'DisturbanceModel','none');

График, показывающий сингулярные значения Ханкеля (SVD) для моделей порядков, указанных nx появляется.

Состояния с относительно небольшими сингулярными значениями Ганкеля могут быть безопасно отброшены. На графике предлагается использовать модель пятого порядка.

В командной строке MATLAB ® выберите порядок модели для модели расчетного состояния-пространства. Укажите порядок модели как5или нажмите Enter, чтобы использовать значение заказа по умолчанию.

Сравните данные с расчетной моделью.

compare(data,sys1);

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent data (y1), sys1: 99.66%. Axes 2 contains 2 objects of type line. These objects represent data (y2), sys1: 99.7%.

График отображает проценты соответствия для двух 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);

Figure contains 2 axes. Axes 1 contains 3 objects of type line. These objects represent data (y1), sys\_lin: 100%, sys2: 99.9%. Axes 2 contains 3 objects of type line. These objects represent data (y2), sys\_lin: 100%, sys2: 99.91%.

В результате обновленного набора опций для sys2.

См. также

(Simulink Control Design) | (Проект управления Simulink)