Приближение LPV модели конвертера повышения

В этом примере показано, как получить приближение линейного варьирования параметра (LPV) модели Simscape™ Electrical™ конвертера повышения. Представление LPV позволяет быстрый анализ среднего поведения в различных условиях работы.

Повысьте модель конвертера

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

На практике существуют также воздействия в исходном напряжении$V_{dc}$ и активной нагрузке$R$, влияющей на фактическое напряжение загрузки$V_{load}$.

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

mdl = 'BoostConverterExampleModel';
open_system(mdl)

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

Из-за высокочастотного переключения и время краткого образца, модель медленно симулирует.

Пакетная обрезка и линеаризация

Во многих приложениях среднее напряжение, обеспеченное в ответ на определенный профиль рабочего цикла, представляет интерес. Такое поведение изучено в масштабах времени несколько десятилетий, больше, чем основной шаг расчета схемы. Эти средние модели для схемы выведены аналитическими факторами на основе усреднения динамики степени по определенным периодам времени. BoostConverterExampleModel модель реализует такую среднюю модель схемы как ее первая различная, названная Модель Напряжения AVG. Этот вариант обычно выполняется быстрее, чем вариант Low Level Model.

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

В данном примере используйте основанную на снимке состояния обрезку и линеаризацию. Параметры планирования являются рабочим циклом d и активная нагрузка R. Вы обрезаете и линеаризуете модель для нескольких значений параметров планирования.

В данном примере выберите промежуток 10-60% для изменения рабочего цикла и промежуток 4-15 Ом для изменения загрузки. Выберите пять значений в этих областях значений для каждой переменной планирования и линеаризации, полученной во всех возможных комбинациях их значений.

nD = 5;
nR = 5;
dspace = linspace(0.1,0.6,nD); % Values of d in 10%-60% range
Rspace = linspace(4,15,nR);    % Values of Rin 4-15 Ohms range
[dgrid,Rgrid] = ndgrid(dspace,Rspace);  % All combinations of d and R values

Создайте массив структур параметра для параметров планирования.

params(1).Name = 'd';
params(1).Value = dgrid;
params(2).Name = 'R';
params(2).Value = Rgrid;

Задайте количество входных параметров модели, выходных параметров и состояний.

ny = 3;
nu = 1;
nx = 2;
ArraySize = size(dgrid);

Симуляция модели при различных условиях показывает, что выходные параметры модели успокаиваются к их установившимся значениям перед 0,01 с. Поэтому используйте t = 0,01 с как время снимка состояния.

Вычислите рабочие точки равновесия во время снимка состояния с помощью findop функция. Эта операция занимает несколько минут, чтобы закончиться.

op = findop(mdl,0.01,params);

Чтобы линеаризовать модель, сначала получите точки ввода и вывода линеаризации из модели.

io = getlinio(mdl);

Сконфигурируйте опции линеаризации, чтобы сохранить смещения линеаризации.

opt = linearizeOptions('StoreOffsets', true);

Линеаризуйте модель в рабочих точках в массиве op.

[linsys,~,info] = linearize(mdl,op,io,params,opt);

Извлеките смещения из результатов линеаризации.

offsets = getOffsetsForLPV(info);
yoff = offsets.y;
xoff = offsets.x;
uoff = offsets.u;

Постройте массив линейной системы.

bodemag(linsys)
grid on

Симуляция LPV

linsys массив 25 линейных моделей в пространстве состояний, каждого с 1 входом, 3 выходными параметрами и 2 состояниями. Модели являются дискретным временем с шагом расчета 25 нс. Диаграмма Боде показывает значительное изменение динамики по сетке планирования параметров.

Можно сконфигурировать блок LPV System с помощью массива линейной системы и данных о смещении сопровождения (uoff, yoff, и xoff). Получившаяся модель LPV служит приближением линейной системы массивов средней динамики. BoostConverterLPVModel модель использует такое приближение LPV.

lpvmdl = 'BoostConverterLPVModel';
open_system(lpvmdl)

Для симуляции модели используйте входной профиль для рабочего цикла, который примерно покрывает его область значений планирования. Кроме того, варьируйтесь активная нагрузка, чтобы симулировать воздействия загрузки.

Сгенерируйте профиль рабочего цикла din.

t = linspace(0,.05,1e3)';
din = 0.25*sin(2*pi*t*100)+0.25;
din(500:end) = din(500:end)+.1;

Сгенерируйте профиль активной нагрузки rin.

rin = linspace(4,12,length(t))';
rin(500:end) = rin(500:end)+3;
rin(100:200) = 6.6;

Постройте профили параметра планирования.

yyaxis left
plot(t,din)
xlabel('Time (s)')
ylabel('Duty Cycle')
yyaxis right
plot(t,rin)
ylabel('Resistive Load (Ohm)')
title('Scheduling Parameter Profiles for Simulation')

Код для генерации вышеупомянутых сигналов был добавлен к модели PreLoadFcn коллбэк для независимой загрузки и выполнения. Чтобы заменить эти настройки и попробовать ваше собственное, перезапишите эти данные в рабочей области MATLAB®.

Симулируйте модель LPV и просмотрите получившийся вывод.

sim(lpvmdl,'StopTime','0.004');
open_system('BoostConverterLPVModel/Outputs')

Модель LPV симулирует значительно быстрее, чем исходный BoostConverterExampleModel модель.

Чтобы сравнить эти результаты симуляции с исходной симуляцией модели конвертера повышения, используйте BoostConverterResponseComparison модель. Эта модель использует блок Boost Converter, сконфигурированный, чтобы использовать высокочастотный вариант Low Level Model. Это также содержит блок LPV System. Можно просмотреть ответы для обеих систем в осциллографах модели.

linsysd = c2d(linsys,Ts*1e4);
mdl = 'BoostConverterResponseComparison';
open_system(mdl)

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

% sim(mdl);

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

В то время как модель LPV использует меньше памяти и симулирует значительно быстрее, чем высокочастотная модель, это может эмулировать среднее поведение конвертера повышения.

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

|

Похожие темы