В этом примере показано, как можно получить приближение Линейного Параметра (LPV) Simscape™ Electrical™ модели Boost Converter. Представление LPV позволяет быстро анализировать среднее поведение при различных рабочих условиях.
Схема Boost Converter преобразует напряжение постоянного тока в другое напряжение постоянного тока путем управляемого измельчения или переключения напряжения источника. Запрос на определенное напряжение нагрузки переводится в соответствующее требование для коэффициента заполнения транзистора. Модуляция коэффициента заполнения обычно на несколько порядков величины медленнее частоты переключения. Чистым эффектом является достижение среднего напряжения с относительно маленькими рябями. Смотрите фигуру 1 для увеличения с учетом этой динамики.
Фигура 1: Генерация выходного (нагрузочного) напряжения преобразователя
На практике также существуют нарушения порядка напряжения источника и сопротивления, влияющие на фактическое напряжение нагрузки.
Откройте модель Simulink.
mdl = 'BoostConverterExampleModel';
open_system(mdl);
Фигура 2: Модель преобразователя Simscape Electrical на основе Boost
Схема в модели характеризуется высокой частотой переключением. Модель использует шаг расчета 25 нс. Используемый в модели блок «Boost Converter» является вариантной подсистемой, которая реализует 3 различные версии динамики конвертера. Дважды кликните блок, чтобы просмотреть эти варианты и их реализации. Модель принимает значение коэффициента заполнения как свой единственный вход и производит три выхода - ток индуктивности, ток нагрузки и напряжение нагрузки.
Модель моделируется медленно (при поиске изменений, скажем, 0-10 мс) из-за высокой частоты переключающих элементов и малых шагов расчета.
Во многих приложениях представляет интерес среднее напряжение, подаваемое в ответ на определенный профиль коэффициента заполнения. Такое поведение изучается во временных масштабах на несколько десятилетий больше, чем основной шаг расчета схемы. Эти «средние модели» для схемы определяются аналитическими факторами на основе усреднения динамики степени за определенные периоды времени. Модель BoostConverterExampleModel
реализует такую среднюю модель схемы, как ее первый вариант, называемый «Модель напряжения AVG». Этот вариант обычно выполняется быстрее, чем вариант «Low Level Model».
Модель среднего значения не является линейной системой. Это показывает нелинейную зависимость от коэффициента заполнения и изменений нагрузки. Чтобы помочь более быстрой симуляции и проектированию контроллера стабилизации напряжения, мы можем линеаризировать модель при различных коэффициентах заполнения и значениях нагрузки. Входы и выходы линейной системы будут такими же, как и в исходной модели.
Мы используем подход обрезки и линеаризации на основе моментальных снимков. Параметрами планирования являются значение коэффициента заполнения (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, настроенный на использование высокоточного варианта «Low Level Model». Он также содержит блок 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 также потребляет меньше памяти и имитирует значительно быстрее, чем исходная система.