回路パラメーターの変更
はじめに
Simscape™ Electrical™ Specialized Power Systems ライブラリのブロックのパラメーターを変更するたびに、シミュレーションを再度開始して状態空間モデルを評価し、非線形モデルのパラメーターを更新しなければなりません。一方、シミュレーション実行中に大きさ、周波数、位相といったパラメーターを変更することも可能です。この変更は、入力を行い、そのブロックのメニューを閉じた段階で完了します。
Simulink® ブロックに関しては、ダイアログ ボックスで指定される Simscape Electrical Specialized Power Systems ライブラリのブロック パラメーターすべてに、シンボリック変数名を使用して MATLAB® 式を含めることができます。シミュレーションを実行する前に、MATLAB ワークスペースのこれらの各変数に値を割り当てなければなりません。これによって、MATLAB スクリプト中の変数値を変更するだけで、パラメーターの調査が可能になります。
MATLAB スクリプトのパラメーターを使用する例
ここでは、回路 my_circuit
でパラメーターによるシミュレーションを実行するものとします。インダクタンスの値を変更しながら、切り替えによる過渡変化への影響を調べます。切り替えが起こったときの過電圧の最大値やインダクタンスの値の変化を調べることになります。
ブロックの 1 つのインダクタンス値には、ワークスペースで定義しなければならない変数 L1
が含まれています。L1
は 10 mH から 100 mH まで 10 ステップずつ変化し、テストされる値はベクトル L1_vec
に保存されます。解析したい電圧波形は変数名 V1
の配列形式で ToWorkspace ブロックに保存されます。
これを、MATLAB スクリプトとして、次のように 10 個のインダクタンス値でループする関数を作成し、最悪値を記録しておくように記述することができます。
L1_vec= (10:10:100)*1e-3; % 10 inductances values 10/100 mH V1_max=0; for i=1:10 L1=L1_vec(i); fprintf('Test No %d L1= %g H\n', i, L1); sim('my_circuit'); % performs simulation % memorize worst case if max(abs(V1))>V1_max, imax=i; V1_max=max(abs(V1)); end end fprintf('Maximum overvoltage= %g V occurred for L1=%g H\n', V1_max, L1_vec(imax));