従来は、アナログ回路と制御ロジックを1つにまとめた状態でシミュレーションを行うのは困難でした。そのため、制御ロジックについては、アナログ回路とは独立した状態で組込コード(制御ロジック)の開発を行っていました。アナログ回路と制御ロジックの両方が出来上がってから最終的にシステムレベルで相互に作用させるという手法です。このように、シミュレーションを事前に実施することなく次の段階に進む手法は、電源回路などを含むアナログ回路の設計には適していません。結果として、システムを組み上げた後で、制御ロジックが原因となって、アナログ回路の性能が期待するレベル(仕様)に達しないことが判明するという事態が起こり得ます。そうなると、アルゴリズムの変更や、コードの再コンパイルが避けられないことになります。
MultisimとLabVIEWを組み合わせることにより、システム全体の協調設計が可能になります。LabVIEWを使用してFPGA向けにシミュレーションしたアルゴリズムとコードをアナログ回路とともに使用する場合でも、適切な性能を発揮できるかどうかを確認することができます。また、アルゴリズムとコードに対してほとんど変更を加えることなく、ハードウェアターゲットに実装することが可能です。この設計手法は、LabVIEWコシミュレーションと呼ばれます。このLabVIEWコシミュレーションは、Multisim 12.0に新機能として追加されたコシミュレーション機能を使用することにより利用可能になります。
コシミュレーションを実行する際には、2つのシミュレーションエンジンの間でタイムステップの独自ネゴシエーションが行われます。それにより、システムの完全な閉ループシミュレーションが可能になります。その結果、アナログ回路とデジタル回路の間のあらゆるシステムダイナミクスを含めて設計の評価を行うことができます。アナログやミックスドシグナル回路向けに最適化されたMultisimは、Analog Devices社やNXP Semiconductors社、ON Semiconductor社、Texas Instruments社などの大手半導体メーカーから提供された定義済みのSPICEモデルを多数備えています。一方のLabVIEWでは、グラフィカルなデータフロー表現を用いて、制御ロジックを効果的に設計と実装することができます。LabVIEWのシミュレーションエンジンは、電力システムや機械システム用の組込みデジタルコードに向けて最適化された高レベルのシミュレーションを実現します。その結果、プロトタイプ開発における反復作業の回数が減り(プリント回路基板の設計に当たって最大3回程度の削減が可能)、1回で最長4時間ほどもかかるコンパイルの回数を削減しつつ、適切なコードを作成することが可能になります。
図1. Multisim 12.0は、MultisimとLabVIEWを連携させるコシミュレーション機能を搭載している。
ここで言うインバータとは、DC入力電圧を受け取ってAC出力電圧を生成する電力変換回路のことです。インバータでは、電力効率と、電子回路に含まれるデバイスのスイッチング速度が、システムの性能を決定する重要なパラメータとなります。高出力のインバータを使用するアプリケーションの例としては、太陽光発電システムや風力タービンシステムなどが挙げられます。
NIのグリーンエネルギーアプリケーションについては、こちらをご覧ください。
インバータの基本情報についてはWikipediaをご覧ください。(英語)
インバータは、周波数の高いPWM(パルス幅変調)信号によって駆動されるMOSFETのバイアス段としてDC入力電圧(電源)を使用することで動作します。MOSFETの出力段は、スイッチングによって生じる高周波数成分を減衰させるためのローパスフィルタに接続されます。インバータの出力をサンプリングし、PID(比例‐積分‐微分)制御ロジックを介してPWMジェネレータに送ることで、閉ループのフィードバック系が完成します。これにより、出力の振幅を安定させ、システム(その多くは送電網)の位相に確実にロックすることが可能になります。
追加資料
このハードウェア設計において最初に行うのは、MultisimとLabVIEWによってデスクトップ上で実行するシミュレーションの準備をすることです。これが本チュートリアルの主題でもあります。図2は、システムの構成要素となる複数のブロックと、システムにおける信号フローを表しています。
図2. システムのブロックダイアグラムと信号フロー
Multisimで設計するアナログ回路は、以下の3つのステージで構成されます。
図3に示したのは、これらのステージで構成される回路です。Multisim 12.0では、ドラッグ&ドロップを行うだけでこの回路図を読み込むことができます。
図3. Multisimに読み込まれた三相インバータの回路図
このMultisim側の回路への入力は、MOSFETのゲート端子であるs1~s6だけです。それ以外の端子は、モニター用、もしくはフィードバックループの一部となる出力端子となります。
下に示す表は、Multisim・LabVIEWにおいてスプレッドシートビューからエクスポートした端子情報です。
LabVIEW端子 |
正の接続 |
負の接続 |
モード |
タイプ |
|
入力 |
|
|
|
|
|
s1 |
s1 |
0 |
入力 |
電圧 |
|
s2 |
s2 |
0 |
入力 |
電圧 |
|
s3 |
s3 |
0 |
入力 |
電圧 |
|
s4 |
s4 |
0 |
入力 |
電圧 |
|
s5 |
s5 |
0 |
入力 |
電圧 |
|
s6 |
s6 |
0 |
入力 |
電圧 |
|
出力 |
|
|
|
|
|
Va |
Va |
0 |
出力 |
電圧 |
|
Vb |
Vb |
0 |
出力 |
電圧 |
|
Vc |
Vc |
0 |
出力 |
電圧 |
|
Va_l |
Va_l |
0 |
出力 |
電圧 |
|
Vb_l |
Vb_l |
0 |
出力 |
電圧 |
|
Vc_l |
Vc_l |
0 |
出力 |
電圧 |
|
I_Lf1 |
I_Lf1 |
0 |
出力 |
電圧 |
|
I_Rload1 |
I_Rload1 |
0 |
出力 |
電圧 |
|
Vdc_link |
Vdc_link |
0 |
出力 |
電圧 |
|
Vneutral |
Vneutral |
0 |
出力 |
電圧 |
|
未使用 |
|
|
|
|
LabVIEWの制御用VIには、複数のブロックが含まれています。それらのブロックは、いずれも500 kHzで動作する制御系設計とシミュレーションループ内に配置されます。それぞれのブロックは、設計フローのダイアグラムに含まれる動作のうち、いずれか1つを実行する役割を担います。
RMS IPコアを利用した制御ブロックは負荷電圧を集録し、50 Hz/60 Hzの線間電圧のRMS値(実効値)を算出します。RMS演算は1回目の動作サイクルでは無効となっています。
図4. RMSブロックのVIとブロックダイアグラム
PID制御ブロック(コントローラ)は、ユーザが定義した振幅入力値とPID制御パラメータKp、Ki、Kdに基づいて、三相出力線間電圧の振幅を調節する役割を担います。
図5. PID制御ブロックのVIとブロックダイアグラム
アナログ回路が備えるフィルタは、出力線間電圧に位相遅延を生じさせます。PLL(位相ロックループ)ブロックは、送電網の位相情報を読み取り、生成されたPWM信号の位相をロックする役割を果たします。その結果、線間電圧の位相が送電網に関連付けられます。この送電網は、アプリケーション全体を表すブロックダイアグラムでは、仮想関数ブロックとして表示されます(本稿の後半で示します)。
図6. PLL Express VI
図7に示したFPGA用のIPコアにより、PWM回路用の10 kHzの三角波が生成されます。PWM回路は、PID制御ブロックから受け取った振幅情報に基づいて生成された正弦波と、送電網から受信した位相情報を比較することで動作します。この比較結果が出力されてMultisimにフィードバックされることで、スイッチのオン・オフ制御が行われます。
Figure 7. Triangular Wave Generator VI and Block Diagram
システムシミュレーション用のグラフィカルインタフェースには、ユーザが定義したPID制御用のパラメータと、可変RMS出力設定値、出力フィルタの位相オフセット、PLLのゲインの各項目が設けられています。出力線間電圧と送電電圧の比較結果がリアルタイムで視覚化されて表示されます。
図8. LabVIEWで表示した完全なシステムのブロックダイアグラム
図9. 0.02 sのシステムシミュレーションを実行した結果(VIの表示)
図10. 0.12 sのシステムシミュレーションを実行した結果(VIの表示)
これらのシミュレーション結果から、システムが起動して0.02 s後の段階では、三相インバータの出力電圧が送電電圧と同調していないことが分かります。これはフィードバックシステムが、まだ初期状態に近い段階にとどまっているためです。また、シミュレーションの結果から、インバータの出力が送電電圧と同調するまでには約0.1 sかかることも分かりました。
この手法では、アナログ回路とFPGAベースの制御ロジックとの間に存在するあらゆるダイナミクスがシステムシミュレーションの対象となります。この点が、従来の手法とはまったく異なります。この手法を導入すれば、設計の初期段階でシステム性能を評価することができます。また、シミュレーション時間の短縮や、プロトタイプ開発にかかるコストの削減を実現可能です。
次の段階では、アナログ回路のプロトタイプをハードウェアとして実装します。また、IPのコンパイルを行い、ターゲットとするFPGAに読み込みます。これで、FPGAベースのリアルタイムHIL(Hardware-in-the-Loop)シミュレーションとRCP(Rapid Control Prototyping)シミュレーションの実行が可能になります。
このシステムシミュレーションの完全なリファレンス設計とラピッドプロトタイピングについては、こちらをご覧ください(英語)。このページでは、RLCフィルタと負荷を伴う三相・単一レベルのインバータをリアルタイムでシミュレーションしたデモもご覧いただけます。そのリアルタイムHILシミュレーションは、LabVIEWを用い、FPGAによって1 MHzのループレートで実行されたものです。また、正弦波を利用する基本的なPWM制御システムは、FPGAによって500 kHzのレートで実行されます。HILループとRCPループとの間で行われる情報のやり取りには、CシリーズのデジタルI/OモジュールであるNI 9401を使用しています。
NI Ultiboard(英語)を使用すれば、プロトタイプ用のプリント回路基板を迅速かつ容易に開発することができます。
Example code from the Example Code Exchange in the NI Community is licensed with the MIT license.