最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Simscape コンポーネントを使用したフェーザ モードのシミュレーション

モデルをフェーザ モードで実行すると、シミュレーションを高速化できます。Simscape では、フェーザ モードは周波数と時間方程式の定式化と呼ばれます。一般に、この定式化を使用すると、従来の時間の定式化よりも大きいタイム ステップを使用して AC モデルの正確なシミュレーションができます。

次のような場合に、周波数と時間方程式の定式化を使用してシミュレーションを高速化します。

  • 一般的な基本周波数をもつ周期的な AC 信号がシミュレーションに含まれている場合

  • 振幅や位相など動きの遅い AC 関連の量、および DC 出力信号に関心がある場合

モデルの設定

シミュレーションの実行に必要な時間を測定するには、モデル ee_sm_control を開いてモデルのコールバックを作成します。

mdl = load_system('ee_sm_control');
open_system(mdl);
set_param(mdl,'StartFcn','tic;');
set_param(mdl,'StopFcn','tsim=toc;');

時間ベースのシミュレーションの実行

Solver Configuration ブロックをダブルクリックして、次のコンフィギュレーションを適用します。

  • [ローカル ソルバーを使用] チェック ボックスをオンにしてローカル ソルバーを有効にする

  • Sample time パラメーターを 1e-3 に設定する

  • Equation formulation パラメーターを Time に設定する

次のコードを実行してブロックを構成することもできます。

blk = find_system(mdl,'MaskType','Solver Configuration');
set_param(blk,'UseLocalSolver','on');
set_param(blk,'LocalSolverSampleTime','1e-3');
set_param(blk,'EquationFormulation','NE_TIME_EF');

モデルをシミュレートして実行時間およびログ変数を保存します。

sim(get_param(mdl,'Name'));
tsim_time = round(tsim,2);
simlog_ee_sm_control_time = simlog_ee_sm_control;

フェーザ モード シミュレーションの実行

Solver Configuration ブロックをダブルクリックして、次のコンフィギュレーションを適用します。

  • Use local solver チェック ボックスをオンにしてローカル ソルバーを有効化する

  • Sample time パラメーターを 1e-2 に設定する

  • Equation formulation パラメーターを Frequency and time に設定する

次のコードを実行してブロックを構成することもできます。

blk = find_system(mdl,'name','Solver Configuration');
set_param(blk,'UseLocalSolver','on');
set_param(blk,'LocalSolverSampleTime','1e-2');
set_param(blk,'EquationFormulation','NE_FREQUENCY_TIME_EF');

モデルをシミュレートして実行時間およびログ変数を保存します。

sim(get_param(mdl,'Name'));
tsim_phasor = round(tsim,2);
simlog_ee_sm_control_phasor = simlog_ee_sm_control;

DC 結果の比較

時間シミュレーションおよび周波数と時間シミュレーションの両方に関して、界磁電圧と回転子速度をプロットします。各シミュレーション モードで、50 データ点ごとにマーカーを表示します。

[hTime,hPhasor]=setup_figure(simlog_ee_sm_control_time,simlog_ee_sm_control_phasor,'dc');
legend([hTime,hPhasor],{['Time (t=',num2str(tsim_time),'s)'],['Phasor (t=',num2str(tsim_phasor),'s)']});

フェーザ シミュレーションでは、10 倍大きいタイム ステップを使用しているにもかかわらず、時間ベースのシミュレーションとほぼ同一の結果が再現されます。測定されたシミュレーション時間も、各シミュレーション モードのプロットの凡例に示されています。この性能指標はマシンごとに異なりますが、周波数と時間シミュレーションは時間シミュレーションより約 2 倍速いはずです。ステップあたりの実際の所要時間は周波数と時間の場合のほうが長くなりますが、全体的な時間は短縮されます。

AC 結果の比較

1s から 1.1s までの時間範囲にわたって同期機の a 相電圧をプロットします。周波数と時間の定式化ではタイム ステップが大きいため、AC 量の分解能が小さすぎて正弦波を判別できません。使用可能な点は、アンダーサンプルではあるものの、正確です。

[hTime,hPhasor]=setup_figure(simlog_ee_sm_control_time,simlog_ee_sm_control_phasor,'ac');
legend([hTime,hPhasor],{['Time (t=',num2str(tsim_time),'s)'],['Phasor (t=',num2str(tsim_phasor),'s)']});

一般に、必要な出力が DC 量または動きの遅い AC 量である場合は、周波数と時間の定式化を使用してシミュレーションを高速化します。周期センサーを使用すると、時間の定式化でも周波数と時間の定式化でも、振幅や位相など、AC 信号の動きの遅い特性を測定できます。詳細については、PS Harmonic Estimator (Amplitude, Phase) ブロックを参照してください。

時間で生成された AC 信号と、周波数と時間で生成された AC 信号の間に、わずかな位相オフセットが存在する場合があります。この誤差は、信号周波数のわずかな違いが時間の経過に伴い累積された積分誤差によるものです。

参考

関連するトピック