В этом примере показано, как задать линеаризацию блока или подсистемы Simulink.
Команда LINEARIZE в модуле Simulink Control Design дает линейное приближение модели Simulink с использованием точного подхода линеаризации. Эта линеаризация действительна в небольшой области вокруг данной рабочей точки. Этот подход хорошо работает для большинства моделей Simulink, но в некоторых случаях нужно изменить точный подход линеаризации, чтобы учесть эффекты разрывов или приблизить динамику действия производной или задержки. Многие встроенные блоки Simulink, такие как насыщенность или нелинейность мертвых зон, предоставляют параметр Treat as vain при линеаризации для управления этим поведением. В этом примере задается пользовательская линеаризация подсистемы для аппроксимации линеаризации сигнала ШИМ.
Следующий пример модели имеет подсистему scdpwm/Voltage to PWM, который моделирует сигнал ШИМ, поступающий в модель установки.
mdl = 'scdpwm';
open_system(mdl)

При линеаризации этой модели с использованием стандартной конфигурации результирующая линейная модель имеет нулевой коэффициент усиления.
io = getlinio(mdl); sys = linearize(mdl,io)
sys =
D =
Step
Plant Model 0
Static gain.
Блок scdpwm/Voltage to PWM/Compare To Zero приводит к тому, что эта линеаризация становится нулевой.
pwmblk = 'scdpwm/Voltage to PWM';
open_system(pwmblk)

Линеаризация равна нулю, поскольку блок представляет чистую прерывистую нелинейность.
u = [-1:0.1:0,0:0.1:1]; y = [zeros(11,1);ones(11,1)]; plot(u,y) xlabel('Block Input - u') ylabel('Block Output - y') ylim([-0.1 1.1]);

С помощью модуля Simulink Control Design можно управлять линеаризацией блоков в модели Simulink. Линеаризацию блока можно задать с помощью:
Матрицы
Линейные инвариантные модели времени, такие как передаточные функции или пространство состояний
Надежное управление неопределенными параметрами/моделями пространств состояний
В этом примере подсистема ШИМ содержит временную задержку

Эта временная задержка учитывает частоту рабочего цикла сигнала ШИМ, которая составляет 100 Гц. Определение задержки в подсистеме scdpwm/Voltage to PWM щелкните правой кнопкой мыши блок и выберите «Линейный анализ - > Задать линеаризацию». Откроется следующее диалоговое окно блока, в котором задается динамика задержки.

Следующий код эквивалентен введению задержки в диалоговое окно спецификации.
set_param(pwmblk,'SCDEnableBlockLinearizationSpecification','on'); rep = struct('Specification','ss(1,''OutputDelay'',1/100)',... 'Type','Expression',... 'ParameterNames','',... 'ParameterValues',''); set_param(pwmblk,'SCDBlockLinearizationSpecification',rep);
Линеаризация модели с указанной подсистемой теперь дает ожидаемый результат.
opt = linearizeOptions('SampleTime',0);
sys = zpk(linearize(mdl,io,opt))
sys =
From input "Step" to output "Plant Model":
1
exp(-0.01*s) * -------------
(s^2 + s + 1)
Continuous-time zero/pole/gain model.
Можно сравнить линеаризацию модели с фактической линеаризацией с помощью frest.createStep сигнал. Важно отметить, что для моделирования с использованием исходной конфигурации модели не требуется удалять спецификацию линеаризации. Спецификация линеаризации не влияет на моделирование, только линеаризация. Визуальный осмотр показывает, что линеаризация точно представляет динамику.
cla instep = frest.createStep('Ts',1/10000,'StepTime',1,... 'StepSize',1e-1,'FinalTime',15); [sysf,simoutstep] = frestimate(mdl,io,instep); frest.simCompare(simoutstep,sys,instep) legend('Linearization with PWM Subsystem Specification',... 'Simulated Step Response','Location','East')

Спецификация линеаризации блоков не ограничивается линейными инвариантными моделями времени. При наличии программного обеспечения Toolbox™ надежного управления можно указать неопределенные параметры и модели неопределенного состояния-пространства (USS) для блоков в модели. Полученная линеаризация является неопределенной моделью. Пример линеаризации моделей Simulink с неопределенностью (Rustive Control Toolbox) показывает, как вычислить линеаризацию с неопределенностью.
Можно также выполнить анализ моделей с дискретными контроллерами и непрерывной динамикой завода в непрерывной области. Дополнительные сведения см. в разделе Моделирование эффектов вычислительной задержки и выборки.
Закройте модель Simulink.
bdclose(mdl)