Увеличьте линеаризацию блока

В этом примере показано, как увеличить линеаризацию блока с дополнительной динамикой с временной задержкой с помощью функции спецификации линеаризации блока.

Откройте модель Simulink.

mdl = 'scdFcnCall';
open_system(mdl)

Эта модель включает объект непрерывного времени и контроллер дискретного времени. Блок D/A дискретизирует объект выход с шагом расчета 0,1 с. Блок External Scheduler инициировал контроллер, чтобы выполниться с тем же периодом. Однако триггер имеет смещение 0,05 с относительно дискретизированного объекта выход. По этой причине контроллер не обрабатывает изменение в опорном сигнале до 0,05 с после того, как изменение произойдет. Это смещение вводит задержку 0,05 с в модель.

Линеаризуйте модель с обратной связью в рабочей точке модели, не задавая линеаризацию для блока Controller.

io = getlinio(mdl);
sys_nd = linearize(mdl,io);

Проверяйте результат линеаризации по оценке частотной характеристики.

input = frest.Sinestream(sys_nd);
sysest = frestimate(mdl,io,input);
bode(sys_nd,'g',sysest,'r*',{input.Frequency(1),input.Frequency(end)})
legend('Linearization without delay',...
     'Frequency response estimation','Location','southwest')

Figure contains 2 axes objects. Axes object 1 with title From: Ref To: D//A contains 2 objects of type line. These objects represent Linearization without delay, Frequency response estimation. Axes object 2 contains 2 objects of type line. These objects represent Linearization without delay, Frequency response estimation.

Точная линеаризация не составляет задержку, введенную смещением выполнения контроллера. Существует несоответствие в результатах между линеаризовавшей моделью и предполагаемой моделью, особенно на более высоких частотах.

Создайте функцию, чтобы задать линеаризацию блока Controller, который включает задержку. Поскольку этот пример использует линеаризацию, заданную в scdAddDelayFcn.m.

function sys = scdAddDelayFcn(BlockData)
    sys = BlockData.BlockLinearization*thiran(0.05,0.1);
end

Вход к функции, BlockData, структура, которую программное обеспечение автоматически создает каждый раз, когда оно линеаризует блок. Когда вы задаете функцию конфигурирования линеаризации блока, программное обеспечение автоматически передает BlockData к функции. Поле BlockLinearization содержит текущую линеаризацию блока.

Эта функция конфигурирования аппроксимирует задержку как фильтр Thiran. Фильтр указывает на приближение дискретного времени дробной задержки 0,5 периодов выборки. (0,05 задержки с имеют шаг расчета 0,1 с).

Задайте scdAddDelayFcn как линеаризация для блока Controller.

  1. Щелкните правой кнопкой по блоку Controller и выберите Linear Analysis> Specify Selected Block Linearization.

  2. В диалоговом окне Block Linearization Specification выберите линеаризацию блока Specify с помощью одного из следующих.

  3. В выпадающем списке выберите Configuration Function.

  4. В текстовом поле введите имя функции scdAddDelayFcn. Эта функция не имеет никаких дополнительных параметров, поэтому оставьте незаполненную таблицу параметров.

  5. Нажать ОК.

В качестве альтернативы можно задать функцию конфигурирования программно с помощью следующего кода.

block = 'scdFcnCall/Controller';

set_param(block,'SCDEnableBlockLinearizationSpecification','on')
rep = struct('Specification','scdAddDelayFcn',...
             'Type','Function',...
             'ParameterNames','',...
             'ParameterValues','');
set_param(block,'SCDBlockLinearizationSpecification',rep)

Линеаризуйте модель с помощью увеличенной линеаризации блока.

sys_d = linearize(mdl,io);

Сравните линеаризацию, которая включает задержку с предполагаемой частотной характеристикой.

bode(sys_d,'b',sys_nd,'g',sysest,'r*',...
     {input.Frequency(1),input.Frequency(end)})
legend('Linearization with delay','Linearization without delay',...
     'Frequency response estimation','Location','southwest')

Figure contains 2 axes objects. Axes object 1 with title From: Ref To: D//A contains 3 objects of type line. These objects represent Linearization with delay, Linearization without delay, Frequency response estimation. Axes object 2 contains 3 objects of type line. These objects represent Linearization with delay, Linearization without delay, Frequency response estimation.

Линейная модель получила использование увеличенной линеаризации блока, теперь составляет задержку. Эта линейная модель более тесно совпадает с действительной частотной характеристикой модели.

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

|