Этот пример показывает, как подтвердить результаты линеаризации путем сравнения моделируемого вывода нелинейной модели и линеаризовавшей модели.
Модель Linearize Simulink®.
Например:
sys = 'watertank'; load_system(sys); sys_io(1) = linio('watertank/PID Controller',1,'input'); sys_io(2) = linio('watertank/Water-Tank System',1,'openoutput'); opspec = operspec(sys); op = findop(sys,opspec,findopOptions('DisplayReport','off')); linsys = linearize(sys,op,sys_io);
Если бы вы линеаризовали свою модель в Linear Analysis Tool, необходимо экспортировать линейную модель в рабочую область MATLAB®.
Создайте входной сигнал для валидации. Например, входной сигнал шага:
input = frest.createStep('Ts',0.1,... 'StepTime',1,... 'StepSize',1e-5,... 'FinalTime',500);
Моделируйте модель Simulink с помощью входного сигнала.
[~,simout] = frestimate(sys,op,sys_io,input);
simout
является моделируемый вывод нелинейной модели.
Моделируйте линейную модель sys
и сравните ответы временного интервала линейной и нелинейной модели Simulink.
frest.simCompare(simout,linsys,input) legend('FRESTIMATE results with Custom input',... 'Linear simulation of linsys with Custom input',... 'Location','SouthEast');
Переходной процесс нелинейной модели и линеаризовавшей модели близок, который подтверждает это, линеаризация точна.
Увеличьте амплитуду сигнала шага от 1.0e-005
до 1
.
input = frest.createStep('Ts',0.1,... 'StepTime',1,... 'StepSize',1,... 'FinalTime',500);
Повторите оценку частотной характеристики с увеличенной амплитудой входного сигнала и сравните на этот раз график ответа с точными результатами линеаризации.
[~,simout2] = frestimate(sys,op,sys_io,input); frest.simCompare(simout2,linsys,input) legend('FRESTIMATE results with Custom input',... 'Linear simulation of linsys with Custom input',... 'Location','SouthEast');
Переходной процесс линейной системы, вы получили использующую точную линеаризацию, не совпадает с переходным процессом предполагаемой частотной характеристики с большой амплитудой входного сигнала. Линейная модель, полученная с помощью точной линеаризации, не совпадает с полной нелинейной моделью в амплитудах, достаточно больших, чтобы отклониться от заданной рабочей точки.
Для валидации временного интервала линеаризации используйте frest.createStep
, чтобы создать сигнал шага. Используйте сигнал шага в качестве входа к frest.simCompare
, который сравнивает моделируемый вывод нелинейной модели и линеаризовавшей модели.
Вход шага помогает вам оценить, получает ли линейная модель точно доминирующие временные константы, когда это проходит переходные процессы шага.
Вход шага также показывает, получили ли вы правильно усиление DC модели Simulink путем сравнения окончательного значения точной симуляции линеаризации с оценкой частотной характеристики.