コンテンツにスキップ

チュートリアル:Motor Palette Simulink協調編

サイディームのオプション機能であるMotor Paletteのチュートリアルです。
Simulinkとの連成時について解説します。

Info

必要オプション:Digital Palette, Motor Palette, SL Palette

Simulinkが制御・信号処理、Scideamが回路シミュレーションを担当し、決めた周期でデータを交換して同期動作するというものです。SL Paletteはその橋渡しをします。
Scideamに回路シミュレーション、特にスイッチングパルス、スイッチングキャリアの生成を担当させることで、回路モデルを高速安定解析することが可能です。

制御側の設計資産(Simulink)を活かしつつ、回路側は高速に回す役割分担が可能です。

fig1

概要では、ScideamとSimulinkの接続方法、各実行周期の設定を行います

Simulink連成方法について

SL Palette に関する詳細な設定方法は下記チュートリアルにて解説しています。
SL Palette設定編
SL Palette解析編

Example

回路ファイルはサンプル回路TOPページからダウンロードできます。
サンプル回路はこちら:Scideam/Tutorial/MotorPaletteTutorial/MotorPalette_SLPalette/
Simulinkモデル : VectorController.slx
連成用スクリプト : SLConnectDutySet.scislc
Scideamモデル : PMSM_Ideal_Simulink.scicir
CVTファイル : PMSM_Ideal_Simulink.cvt2

Scideamの接続設定

Scideamモデルではモーターと入力インバータ部、入出力のセンサにて構成されています。
また、Simulinkと連成するためのSLCスクリプトが用いられています。

fig1

チュートリアルで使用しているスクリプト
Iu = output("Iu","I","AVE");
Iv = output("Iv","I","AVE");
Iw = output("Iw","I","AVE");
ThM = output("ThM","V","AVE");
Rev = output("Rev","V","AVE");
Tq = output("Tq","V","AVE");

SLexport(1,Iu);
SLexport(2,Iv);
SLexport(3,Iw);
SLexport(4,ThM);
SLexport(5,Rev);
SLexport(6,Tq);

SLsync();

D1 = SLimport(1);
D3 = SLimport(2);
D5 = SLimport(3);

// 三角波に変更
D1T0 = 0.5 - 0.5 * D1;
D1T1 = 0.5 + 0.5 * D1;
D3T0 = 0.5 - 0.5 * D3;
D3T1 = 0.5 + 0.5 * D3;
D5T0 = 0.5 - 0.5 * D5;
D5T1 = 0.5 + 0.5 * D5;

setparam("P1","T0",D1T0);
setparam("P1","T1",D1T1);
setparam("P2","T0",D1T0);
setparam("P2","T1",D1T1);
setparam("P3","T0",D3T0);
setparam("P3","T1",D3T1);
setparam("P4","T0",D3T0);
setparam("P4","T1",D3T1);
setparam("P5","T0",D5T0);
setparam("P5","T1",D5T1);
setparam("P6","T0",D5T0);
setparam("P6","T1",D5T1);

SLCスクリプトではScideamから取得した値をSimulinkへ送る処理、 Simulinkの値をScideamで受け取る処理を実行しています。
また、通常のスクリプトと同様に処理を書き加える事も可能です。

Simulinkモデルは主に、Simulinkブロックで作成した制御部、Scideamと連成するためのScideamブロックにて構成されています。
2つの接続部にあるRate Transitionは二つの実行周期を併せるために接続されています。

fig1

サンプル回路の実行周期設定

ここでは、サンプル回路を参考に各設定項目について解説します。
サンプル回路では下記設定はすでに終えていますので、すぐにシミュレーションが可能です。

実効周期・ソルバ設定

実効周期・ソルバ設定を変更する場合は下記を参考にして設定してください。

fig1

Simulink Scideam
役割 制御、信号処理 回路シミュレーション
具体例 PI制御、状態遷移、シーケンス、保護ロジック スイッチング回路、PWM波形作成、スイッチングキャリア作成など
ソルバ刻み幅 固定ステップ(推奨)
サンプリング周期(推奨)
高速安定可変ステップ

Scideamの周波数設定

モーターモデルは非線形素子のため、以下の点に注意してメイン周波数サブ周波数を設定してください。
メイン周波数>サブ周波数≧SLCスクリプト
設定する値としては、おおむね10倍から20倍を推奨しています。
例えば、スイッチング周波数が10kHzであれば、
メイン周波数=100kHz
サブ周波数=10kHz
として、サブ周波数にスイッチの発信源を登録します。

Scideamの実行周期設定

サンプル回路では以下の様に設定されています。

  • Scideam
    fig1

    fig1

番号 内容 説明
メイン周波数 モーター素子の計算周期(入力値は周波数で設定)
サブ周波数 スイッチング周波数、サンプリング周波数
登録素子 サブ周波数で実行する素子を登録(センサ、パルス)
SLCスクリプト スクリプトの参照先を設定
スクリプトの実行周期 実行周期設定(入力値は周波数で設定)
  • simulink

    fig1

内容 説明 備考
ソルバタイプ 固定ステップ 可変ステップでも可
ソルバ オート
刻み時間 任意 サンプルでは実行周期に設定 100µsec(10kHz)

Tips

刻み時間設定は任意に設定できますが、Scideam側のSLCスクリプト周期と一致させることを推奨しています。

Rate Transitionの設定

Rate TransitionはSimulinkとScideamの実行周期を合わせるために使用しています。
この設定が正しくできていない場合、解析できない場合がありますので注意してください。

Tips

Rate Transitionを設定する際は下記に注意してください。
fig1 ①:この二つのパラメータはオンにしてください
②:この時間とScideamに登録するSLCスクリプトの実行周期は必ず同じになるようにして下さい

Scideamモデルの登録

ScideamブロックにはScideamで作成したCVT2ファイルを参照させてください。
入力部の横にある「ファイルを開く」から参照させる事ができます。
入力後は「トポロジー読込」を押してください。
fig1

シミュレーション実行

サンプル回路を実行して波形を確認してみましょう。
目標とした回転数に併せて、三相電流を制御している事が確認できます。
fig1