Рабочая точка переходный ответ RLC

Этот пример показывает ответ предоставления мощности постоянного тока, соединенного с загрузкой серии RLC. Цель состоит в том, чтобы построить ответ выходного напряжения, когда загрузка внезапно присоединена к полностью приводимому в действие предоставлению. Это сделано с помощью рабочей точки Simscape.

Во-первых, источник питания соединяется с разомкнутой цепью и моделируется, пока он не достигает устойчивого состояния. Объект рабочей точки извлечен от результирующего журнала Simscape. Эта рабочая точка используется, чтобы инициализировать модель и проверить, что это находится в устойчивом состоянии. Затем, загрузка изменяется на схему серии RLC, и ответы по сравнению с и без рабочей точки. Наконец, развертка параметра сделана, чтобы сравнить результаты с различными значениями индуктивности загрузки.

Модель

Источник питания состоит из напряжения постоянного тока, соединенного с индуктором, резистором и конденсатором. Значения выбраны, чтобы продемонстрировать underdamped ответ разомкнутой цепи при включении предоставления. Загрузка является различной подсистемой с разомкнутой цепью и схемой серии RLC.

model = 'ssc_op_rlc_transient_response';
open_system(model);

Переходный ответ разомкнутой цепи

Во-первых, моделируйте, чтобы получить ответ разомкнутой цепи источника питания. Симуляция запускается достаточно долго для источника питания, чтобы достигнуть установившийся. Это - состояние, которое мы хотим запустить в том, когда мы экспериментируем с различными загрузками.

set_param('ssc_op_rlc_transient_response/Load', 'OverrideUsingVariant', 'OpenCircuit');
sim(model);

Создайте рабочую точку из журнала Simscape

Извлеките установившуюся рабочую точку Simscape для модели при помощи функции simscape.op.create и журнала Simscape, который следовал из предыдущей симуляции. Используйте '10' в качестве времени, потому что симуляция достигла аппроксимированного устойчивого состояния к тому времени.

op_steadystate = simscape.op.create(simlog_ssc_op_rlc_transient_response, 10);

Удалите рабочую точку для блока Load, поскольку это будет не важно в последующих экспериментах.

op_steadystate = remove(op_steadystate, 'Load')
op_steadystate = 

  OperatingPoint with children:
  -----------------------------
   Capacitor
   DC Voltage
   Electrical Reference
   Inductor
   Series Resistance
   Switch
   Vout
  -----------------------------

Ответ разомкнутой цепи с рабочей точкой

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

set_param(model, 'SimscapeUseOperatingPoints', 'on', 'SimscapeOperatingPoint', 'op_steadystate');
sim(model);

Переходный ответ RLC без рабочей точки

Измените загрузку в последовательную схему RLC и анализируйте результаты. Во-первых, моделируйте без рабочей точки, чтобы показать объединенный ответ включающегося предоставления и загрузка, присоединенная после 1 секунды. Результаты показывают то, что произошло бы, если бы загрузка была присоединена, в то время как предоставление все еще включалось.

L_load = 1e-1;
set_param('ssc_op_rlc_transient_response/Load', 'OverrideUsingVariant', 'RLC');
set_param(model, 'SimscapeUseOperatingPoints', 'off');
sim(model);

Переходный ответ RLC с рабочей точкой

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

set_param(model, 'SimscapeUseOperatingPoints','on');
sim(model);

Выполните развертку параметра в области значений значений индуктивности загрузки

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

set_param(model,'FastRestart', 'on');
lValues = linspace(1e-2, 2e-1, 5);
hold on;
for idx = 1:numel(lValues)
    L_load = lValues(idx);
    out = sim(model);
    t = out.simlog_ssc_op_rlc_transient_response.Vout.Vs.V.series.time;
    Vout = out.simlog_ssc_op_rlc_transient_response.Vout.Vs.V.series.values('V');
    plot(t, Vout, 'LineWidth', 1);
end
hold off;