Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

操作点 RLC の過渡応答

この例では、直列 RLC 負荷に接続されている DC 電源の応答を説明します。目標は、完全にオンになっている電源に対し負荷が突然接続されたときの出力電圧応答をプロットすることです。これは、Simscape の操作点を使用して行います。

まず、開回路に電源を接続し、定常状態に達するまでシミュレートします。結果の Simscape ログから操作点オブジェクトが抽出されます。この操作点を使用してモデルを初期化し、モデルが定常状態であることを確認します。次に、負荷を直列 RLC 回路に変更し、操作点がある場合とない場合で応答を比較します。最後に、パラメーター スイープを行って、さまざまな負荷インダクタンスの値で結果を比較します。

モデル

電源は、DC 電圧をインダクター、抵抗器、コンデンサに接続して構成されています。電源をオンにする際に、不足減衰の開回路応答を示すよう値が選択されます。負荷は、開回路と直列 RLC 回路をもつバリアント サブシステムです。

model = 'OperatingPointRLCTransientResponse';

開回路の過渡応答

まず、シミュレートして電源の開回路応答を取得します。シミュレーションは、電源が定常状態に達するのに十分な長さ実行されます。さまざまな負荷で実験するときは、この状態から開始します。

set_param('OperatingPointRLCTransientResponse/Load', 'LabelModeActiveChoice', 'OpenCircuit');
sim(model);

Simscape ログからの操作点の作成

関数 simscape.op.create と、前のシミュレーションから得た Simscape ログを使用して、モデルの定常状態の Simscape 操作点を抽出します。時間には '10' を使用します。シミュレーションはこの時間までにおおよその定常状態に達しているからです。

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

以降の実験では無関係になるため、Load ブロックの操作点を削除します。

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

  OperatingPoint with children:

  OperatingPoints:

   ChildId                 Size
   ______________________  ____

   'Capacitor'              1x1
   'DC Voltage'             1x1
   'Electrical Reference'   1x1
   'Inductor'               1x1
   'Series Resistance'      1x1
   'Step Input'             1x1
   'Switch'                 1x1
   'Vout'                   1x1

操作点を使った開回路応答

操作点で開回路モデルを初期化することにより、操作点を検証します。結果は水平ラインとなり、電源が完全に通電していることを表します。

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

操作点を使わない過渡 RLC 応答

負荷を RLC 直列回路に変更して結果を解析します。まず、操作点なしでシミュレートし、電源をオンにして 1 秒後に負荷を接続したときの応答の組み合わせを表示します。結果から、電源がオンになりきらないうちに負荷を接続した場合に何が発生するかがわかります。

L_load = 1e-1;
set_param('OperatingPointRLCTransientResponse/Load', 'LabelModeActiveChoice', '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_OperatingPointRLCTransientResponse.Vout.Vs.V.series.time;
    Vout = out.simlog_OperatingPointRLCTransientResponse.Vout.Vs.V.series.values('V');
    plot(t, Vout, 'LineWidth', 1);
end
hold off;