В этом примере показано, как задать линеаризацию блока или подсистемы 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 содержит временную задержку
Эта задержка учитывает частоту коэффициента заполнения сигнала ШИМ, которая находится на частоте 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')
Спецификация линеаризации блоков не ограничивается линейными инвариантными моделями времени. Если у вас есть программное обеспечение Robust Control Toolbox™, можно задать неопределенные параметры и модели пространства неопределенных состояний (USS) для блоков в модели. Получившаяся линеаризация является неопределенной моделью. Пример линеаризации моделей Simulink с неопределенностью (Robust Control Toolbox) показывает, как вычислить линеаризацию с неопределенностью.
Можно также выполнить анализ моделей с дискретными контроллерами и непрерывной динамикой объекта в непрерывной области. Для получения дополнительной информации см. «Моделирование вычислительных задержек и эффектов дискретизации».
Закройте модель Simulink.
bdclose(mdl)