Этот пример показывает, как можно получить приближение Линейного варьирования параметра (LPV) модели Simscape™ Electrical™ Конвертера Повышения. Представление LPV позволяет быстрый анализ среднего поведения в различных условиях работы.
Схема Конвертера Повышения преобразовывает напряжение постоянного тока в другое напряжение постоянного тока управляемым прерыванием или переключением исходного напряжения. Запрос об определенном напряжении загрузки переводится в соответствующее требование для транзисторного рабочего цикла. Модуляция рабочего цикла обычно является несколькими порядками величины медленнее, чем переключающаяся частота. Результирующий эффект является достижением среднего напряжения с относительно маленькими пульсациями. См. рисунок 1 для увеличившего масштаб представление этой динамики.
Рисунок 1: Converter вывод (загрузка) генерация напряжения
На практике существуют также воздействия в исходном напряжении и активной нагрузке, влияющей на фактическое напряжение загрузки.
Откройте модель Simulink.
mdl = 'BoostConverterExampleModel';
open_system(mdl);
Рисунок 2: основанная на Simscape Electrical модель Boost Converter
Схема в модели характеризуется высокочастотным переключением. Модель использует шаг расчета 25 нс. Блок "Boost Converter", используемый в модели, является различной подсистемой, которая реализует 3 различных версии динамики конвертера. Дважды щелкните по блоку, чтобы просмотреть эти варианты и их реализации. Модель принимает значение рабочего цикла как свой единственный вход и производит три выходных параметров - текущий индуктор, текущая загрузка и напряжение загрузки.
Модель моделирует медленно (когда поиск изменений в говорит 0 - 10 мс) вследствие элементов переключения высокой частоты и время небольшой выборки.
Во многих приложениях среднее напряжение, обеспеченное в ответ на определенный профиль рабочего цикла, представляет интерес. Такое поведение изучено в масштабах времени несколько десятилетий, больше, чем основной шаг расчета схемы. Эти "средние модели" для схемы выведены аналитическими факторами на основе усреднения динамики степени по определенным периодам времени. Модель BoostConverterExampleModel
реализует такую среднюю модель схемы как ее первый вариант, названный "Модель Напряжения AVG". Этот вариант обычно выполняется быстрее, чем "вариант" Модели Низкого уровня.
Средняя модель не является линейной системой. Это показывает нелинейную зависимость от рабочего цикла и изменений загрузки. Чтобы помочь более быстрой симуляции и проектированию контроллера стабилизации напряжения, мы можем линеаризовать модель в различном рабочем цикле и загрузить значения. Вводы и выводы линейной системы совпали бы с теми из исходной модели.
Мы используем снимок состояния основанная на времени обрезка и подход линеаризации. Параметры планирования являются значением рабочего цикла (d) и значением активной нагрузки (R). Модель обрезается в различных значениях параметров планирования, приводящих к сетке линейных моделей. В данном примере мы выбрали промежуток 10%-60% для изменения рабочего цикла и 4-15 Ом для изменения загрузки. 5 значений в этих областях значений выбраны для каждой переменной планирования и линеаризации, полученной во всех возможных комбинациях их значений.
Планирование параметров: d: рабочий цикл R: активная нагрузка
nD = 5; nR = 5; dspace = linspace(0.1,0.6,nD); % nD values of "d" in 10%-60% range Rspace = linspace(4,15,nR); % nR values of "R" in 4-15 Ohms range [dgrid,Rgrid] = ndgrid(dspace,Rspace); % all possible combinations of "d" and "R" values
Создайте массив структур параметра.
params(1).Name = 'd'; params(1).Value = dgrid; params(2).Name = 'R'; params(2).Value = Rgrid;
Симуляция модели при различных условиях показывает, что выходные параметры модели успокаиваются к их значениям устойчивого состояния перед 0,01 с. Следовательно мы используем t = 0,01 с как время снимка состояния.
Объявите количество образцовых входных параметров, выходных параметров и состояний.
ny = 3; nu = 1; nx = 2; ArraySize = size(dgrid);
Вычислите рабочие точки равновесия с помощью findop
. Код занимает несколько минут, чтобы закончиться.
op = findop(mdl, 0.01, params);
Задайте ввод - вывод линеаризации в модели.
io = getlinio(mdl);
Линеаризуйте модель в массиве рабочей точки op
и сохраните смещения.
[linsys, ~, info] = linearize(mdl, op, io, params, ... linearizeOptions('StoreOffsets', true));
Извлеките смещения от результатов линеаризации.
offsets = getOffsetsForLPV(info); yoff = offsets.y; xoff = offsets.x; uoff = offsets.u;
Постройте массив линейной системы.
bodemag(linsys)
grid on
Рисунок 3: Диаграмма Боде массива линейной системы получена по сетке параметра планирования.
linsys
является массивом 25 линейных моделей в пространстве состояний, каждый содержащий 1 вход, 3 выходных параметров и 2 состояния. Модели являются дискретным временем с шагом расчета 25 нс. Диаграмма Боде показывает значительное изменение в динамике по сетке планирования параметров. Массив линейной системы и сопровождение смещают данные (uoff
, yoff
и xoff
) может использоваться, чтобы сконфигурировать системный блок LPV. "Модель LPV", таким образом полученная, служит приближением линейной системы массивов средней динамики. Настройка блока LPV доступна в модели BoostConverterLPVModel
.
lpvmdl = 'BoostConverterLPVModel';
open_system(lpvmdl);
Рисунок 4: модель LPV сконфигурировала использование linsys.
Для симуляции модели мы используем входной профиль для рабочего цикла, который примерно покрывает его область значений планирования. Мы также отличаемся активная нагрузка, чтобы моделировать случай воздействий загрузки.
Сгенерируйте данные моделирования.
t = linspace(0,.05,1e3)'; din = 0.25*sin(2*pi*t*100)+0.25; din(500:end) = din(500:end)+.1; % the duty cycle profile rin = linspace(4,12,length(t))'; rin(500:end) = rin(500:end)+3; rin(100:200) = 6.6; % the load profile 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')
Рисунок 5: Планирование профилей параметра, выбранных для симуляции.
Примечание: код для генерации вышеупомянутых сигналов был добавлен к коллбэку PreLoadFcn модели для независимой загрузки и выполнения. Если вы хотите заменить эти настройки и попробовать ваше собственное, перезапишите эти данные в базовом рабочем пространстве.
Моделируйте модель LPV.
sim(lpvmdl, 'StopTime', '0.004');
Рисунок 6: результаты симуляции LPV.
Модель LPV моделирует значительно быстрее, чем исходная модель BoostConverterExampleModel
. Но как результаты выдерживают сравнение с полученными из исходной модели конвертера повышения? Чтобы проверять это, откройте модель BoostConverterResponseComparison
. Этой модели сконфигурировали блок Boost Converter, чтобы использовать высокочастотный "вариант" Модели Низкого уровня. Это также содержит блок LPV, выходные параметры которого накладываются на выходные параметры конвертера повышения в трех осциллографах.
linsysd = c2d(linsys,Ts*1e4); mdl = 'BoostConverterResponseComparison'; open_system(mdl); %sim(mdl); % uncomment to run
Рисунок 7: Модель, используемая для сравнения ответа высококачественной модели с приближением LPV ее среднего поведения.
Команда симуляции была прокомментирована; не прокомментируйте его, чтобы запуститься. Результаты показывают в снимках состояния осциллографа, вставленных ниже.
Рисунок 8: Индуктор текущие сигналы. Синий: исходный, Пурпурный: отклик системы LPV
Рисунок 9: Загрузите текущие сигналы. Синий: исходный, Пурпурный: отклик системы LPV
Рисунок 10: Загрузите сигнал напряжения. Синий: исходный, Пурпурный: отклик системы LPV
Симуляция запускается вполне медленно из-за быстрой динамики переключения в исходной схеме конвертера повышения. Результаты показывают, что модель LPV может получить среднее поведение приятно.
При помощи входа рабочего цикла и активной нагрузки как планирование параметров, мы смогли получить линейные аппроксимации среднего поведения модели в форме массива модели в пространстве состояний.
Получившийся образцовый массив вместе со связанными с рабочей точкой данными о смещении использовался, чтобы создать приближение LPV нелинейного среднего поведения. Исследования симуляции показывают, что модель LPV может эмулировать среднее поведение высокочастотной модели Simscape Electrical с хорошей точностью. Модель LPV также использует меньше памяти и моделирует значительно быстрее, чем исходная система.