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

Уменьшайте порядок модели Simulink® путем линеаризации модели и оценки модели более низкоуровневой, которая сохраняет динамику модели.

Этот пример требует Simulink и theSimulink тулбокса 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);

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

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

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

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

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

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

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

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

compare(data,sys1);

sys1 обеспечивает 98,4%, подходящие для первого выхода и 97,7%, подходящие для второго выхода.

Исследуйте останавливающееся условие на алгоритм поиска.

sys1.Report.Termination.WhyStop
ans = 
'Maximum number of iterations reached.'

Создайте набор опций оценки, который задает 'lm' метод поиска и позволяет максимум 50 поисковых итераций.

opt = ssestOptions('SearchMethod','lm');
opt.SearchOptions.MaxIterations = 50;
opt.Display = 'on';

Идентифицируйте модель в пространстве состояний с помощью набора опции оценки и sys1 как модель инициализации оценки.

sys2 = ssest(data,sys1,opt);

Сравните ответ линеаризовавшего и предполагаемых моделей.

compare(data,sys_lin,sys2);

sys2 обеспечивает 99%, подходящих для первого выхода и 98%, подходящих для второго выхода при использовании 4 меньше состояний, чем sys_lin .

Смотрите также

|