В этом примере показано, как задать линеаризацию блока Simulink или подсистемы.
Команда LINEARIZE
в Simulink Control Design дает линейную аппроксимацию модели Simulink с помощью точного подхода линеаризации. Эта линеаризация допустима в небольшой области вокруг данной рабочей точки. Этот подход работает хорошо на большинство моделей Simulink, но в некоторых случаях необходимо изменить точный подход линеаризации, чтобы учесть эффекты разрывов или аппроксимировать динамику действия задержки или производной. Много встроенных блоков Simulink, таких как насыщение или мертвая зональная нелинейность, обеспечивают Обработку как усиление при линеаризации параметра, чтобы управлять этим поведением. В этом примере вы задаете пользовательскую линеаризацию для подсистемы, чтобы аппроксимировать линеаризацию сигнала PWM.
Следующая модель в качестве примера имеет подсистему scdpwm/Voltage to PWM
, который моделирует сигнал 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. Можно задать линеаризацию использования блока:
Матрицы
Линейные независимые от времени модели, такие как передаточные функции или пространство состояний
Устойчивое Управление неопределенные параметры/модели в пространстве состояний
В этом примере подсистема PWM содержит задержку
Эта задержка составляет частоту рабочего цикла сигнала PWM, который является на уровне 100 Гц. Задавать задержку на подсистеме scdpwm/Voltage to PWM
щелкните правой кнопкой мыши по блоку и выберите Linear Analysis-> Specify Linearization. Следующее диалоговое окно блока, в котором вы задаете динамику задержки, открывается.
Следующий код эквивалентен вводу задержки в диалоговое окно спецификации.
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')
Блокируйтесь спецификация линеаризации не ограничивается линейными независимыми от времени моделями. Если у вас есть программное обеспечение Robust Control Toolbox™, можно задать неопределенные параметры и модели неопределенного пространства состояний (USS) для блоков в модели. Получившаяся линеаризация является затем неопределенной моделью. Линеаризация в качестве примера Моделей Simulink с Неопределенностью (Robust Control Toolbox) показывает, как вычислить линеаризацию с неопределенностью.
Можно также выполнить анализ моделей с дискретными контроллерами и непрерывной динамикой объекта в непрерывной области. Для получения дополнительной информации смотрите Моделирующие Вычислительные Эффекты Задержки и Выборки.
Закройте модель Simulink.
bdclose(mdl)