チュートリアル:Motor Palette Simulink協調編¶
サイディームのオプション機能であるMotor Paletteのチュートリアルです。
Simulinkとの連成時について解説します。
Info
必要オプション:Digital Palette, Motor Palette, SL Palette
Simulink 協調シミュレーション概要¶
Simulinkが制御・信号処理、Scideamが回路シミュレーションを担当し、決めた周期でデータを交換して同期動作するというものです。SL Paletteはその橋渡しをします。
Scideamに回路シミュレーション、特にスイッチングパルス、スイッチングキャリアの生成を担当させることで、回路モデルを高速安定解析することが可能です。
制御側の設計資産(Simulink)を活かしつつ、回路側は高速に回す役割分担が可能です。

概要では、ScideamとSimulinkの接続方法、各実行周期の設定を行います
Simulink連成方法について
SL Palette に関する詳細な設定方法は下記チュートリアルにて解説しています。
SL Palette設定編
SL Palette解析編
ScideamとSimulinkの接続方法¶
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スクリプトが用いられています。

チュートリアルで使用しているスクリプト
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モデルは主に、Simulinkブロックで作成した制御部、Scideamと連成するためのScideamブロックにて構成されています。
2つの接続部にあるRate Transitionは二つの実行周期を併せるために接続されています。

サンプル回路の実行周期設定¶
ここでは、サンプル回路を参考に各設定項目について解説します。
サンプル回路では下記設定はすでに終えていますので、すぐにシミュレーションが可能です。
実効周期・ソルバ設定¶
実効周期・ソルバ設定を変更する場合は下記を参考にして設定してください。

| Simulink | Scideam | |
|---|---|---|
| 役割 | 制御、信号処理 | 回路シミュレーション |
| 具体例 | PI制御、状態遷移、シーケンス、保護ロジック | スイッチング回路、PWM波形作成、スイッチングキャリア作成など |
| ソルバ刻み幅 | 固定ステップ(推奨) サンプリング周期(推奨) |
高速安定可変ステップ |
Scideamの周波数設定
モーターモデルは非線形素子のため、以下の点に注意してメイン周波数サブ周波数を設定してください。
メイン周波数>サブ周波数≧SLCスクリプト
設定する値としては、おおむね10倍から20倍を推奨しています。
例えば、スイッチング周波数が10kHzであれば、
メイン周波数=100kHz
サブ周波数=10kHz
として、サブ周波数にスイッチの発信源を登録します。
Scideamの実行周期設定¶
サンプル回路では以下の様に設定されています。
-
Scideam


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

| 内容 | 説明 | 備考 |
|---|---|---|
| ソルバタイプ | 固定ステップ | 可変ステップでも可 |
| ソルバ | オート | |
| 刻み時間 | 任意 | サンプルでは実行周期に設定 100µsec(10kHz) |
Tips
刻み時間設定は任意に設定できますが、Scideam側のSLCスクリプト周期と一致させることを推奨しています。
Rate Transitionの設定¶
Rate TransitionはSimulinkとScideamの実行周期を合わせるために使用しています。
この設定が正しくできていない場合、解析できない場合がありますので注意してください。
Tips
Rate Transitionを設定する際は下記に注意してください。
①:この二つのパラメータはオンにしてください
②:この時間とScideamに登録するSLCスクリプトの実行周期は必ず同じになるようにして下さい
Scideamモデルの登録¶
ScideamブロックにはScideamで作成したCVT2ファイルを参照させてください。
入力部の横にある「ファイルを開く」から参照させる事ができます。
入力後は「トポロジー読込」を押してください。

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