2015年03月17日(火)
- PSIM Cafe
モータのインバータ駆動回路作りの第一歩!オープンループでモータを回す ~シミュレーション~
前回はトランジスタ技術に掲載されたモータを回すシミュレーションの回路を作りました。
(前回記事:モータのインバータ駆動回路作りの第一歩!オープンループでモータを回す ~回路作成~)
今回は作ったシミュレーションを動かしてみます。
◆シミュレーション条件を設定はSimulation Controlで!
記事には回路の作成後、シミュレーションの実行を行っていましたが、私はシミュレーション条件を設定してから実行しました。
シミュレーション条件は
・どのぐらいの時間計算するのか?(total time)
・どのぐらいの時間ごとに計算するのか?(time step)
・すべての点をプロットするのか?(print step)
などを設定します。
シミュレーション条件を設定するためには
Simulate > Simulation Controlを選択すると、カーソルが時計のマークになります。
時計マークを回路に置くと「Simulation Contrlo」ウィンドウが表示されます。
今回はデフォルトの値をそのまま使いました。
◆いよいよシミュレーションを実行。ワンクリック or 「F8」
シミュレーション実行はPSIMのツールバーにある「」のボタンをクリック。もしくはキーボードの「F8」でもシミュレーションを実行します。
シミュレーションが始まると右下に進捗を示すプログレスバーが表示されます。
私が実行したときは本当に一瞬で終わりました。およそ1秒。
このシミュレーションの早さがPSIMの最大の魅力です。
◆理想素子だからこそ計算が速い
ちょっとシミュレーションからは脱線しますが、この計算速度の速さがPSIMの大きな強みの1つです。
なぜ計算が速いのか?というと、PSIMはスイッチングデバイスを理想的なスイッチとみなして扱うからです。
IGBTは半導体デバイスなのでオンオフを瞬時に行うことはできません。
オンオフ時の状態は線形的に変化し、ターンオン、ターンオフと呼ばれる時間が発生します。
この時間はデバイスによって異なり、再現しようとすると複雑な計算が必要になります。
Spice系のシミュレータは電子回路や集積回路を設計するために使うので、デバイスの特性を詳細に再現することができます。
しかし、パワーエレクトロニクスではスイッチングデバイスのことをオンオフを瞬時に切り替えられるスイッチとみなします。
当然、実際に回路を作るときにはターンオン、ターンオフを考慮する必要がありますが、回路の検討段階で考慮していると検討がなかなか進みません。
PSIMはパワーエレクトロニクスの回路を丸ごとシミュレーションするためのシミュレータですので、デバイスの特性を詳細に再現する必要はありません。
デバイスをスイッチとして扱っていることが、計算をシンプルにして収束しやすいことにつながり、シミュレーション時間に大きく影響しています。
◆2つの波形を別々のウィンドウに表示するにはadd one Screen
シミュレーションが終了すると自動で波形表示ウィンドウの「Simview」が起動します。
デモ版なので波形表示は6000ポイントまでしか表示できない旨のワーニングが出ますが、そのまま「OK」をクリック。
Simviewが起動すると表示する波形を選択するウィンドウが表示されます。
記事に載っている順番に波形を表示していきますが、すべての波形を同時に選択すると1つのスクリーン上にすべて表示されてしまいます。
記事に記載されているのと同じように波形を表示するためには1つのスクリーンに表示したい波形だけを選択し、「Add->」をクリックして
「Variables for display」に表示させた状態で、「OK」をクリックすると波形が表示されます。
スクリーンを分けて波形を表示するために、もうひとつスクリーンを追加します。
Simviewのツールバーの「」のボタンをクリックすると、もう一度波形選択のウィンドウが表示されます。
表示したい波形を選んで「OK」をクリックすると選んだ波形が別のスクリーンで表示されます。
add one Screenを繰り返して記事と同じ順番で波形を表示しました。
間違えて表示してしまってスクリーンを削除したいときは削除したいスクリーンをクリックしてメニューのScreen > Delete screenをクリックします。
◆結果がなんか違う…!
波形を表示している途中で気づきましたが、なんだか記事と結果が違っているような…。
記事ではトルクがプラス方向に出ていましたが回路を作ってシミュレーションしてみるとトルクがマイナスに。
回転数もマイナスになり、レゾルバから出力されている位置信号も右肩下がりになっています。
これ…モータが逆回転している?
と思ったのですが、理由がわかりません。
・各素子のパラメータ
・配線
・Lavelの名前の間違い
・レゾルバの信号の取り込み
・atanのxとyに入力する信号
などなど色々なところを疑って確認してみましたが原因がさっぱりわかりませんでした。
あちこち疑い続け、30分程度が経過したでしょうか…自力での解決を諦めかけ、モータ制御がわかる人に助けを求めるため最後にもう一度確認していたところ、原因がわかりました。
◆小さな丸はプラスの印
原因は電圧センサの取り付け向きが間違っていたことでした。
PSIMの素子には小さな丸がついている素子があります。これはプラスの方向を示しているので、取り付ける向きに注意が必要です。
記事の回路には電源電圧を電圧センサで取り込んでいましたが、私は素子を置く際、電圧センサの形状の向きしか見ずに右クリックを90°回転×2回で180°回転しました。
そうすると電圧センサのプラスの端子は下側になってしまいます。
何も考えずに接続したので、電源のプラス側と電圧センサのマイナス側、電源のマイナス側と電圧センサのプラス側を接続してしまいました。
そのままシミュレーションを行ったため、制御部で電圧センサで取り込んだ値を使用した際に符号が反転し、正しくシミュレーションができていませんでした。
◆記事のシミュレーション通りの結果に
ツールバーの「」ボタンで電圧センサを上下反転して向きを直し、
(「」ボタンは左右反転です)
シミュレーションを行うと、無事に記事と同じシミュレーション結果を表示することができました!
これで記事に記載されたシミュレーションができたことを確認できました。
シミュレーション結果では、相電圧指令値300Vピークに対し、トルクが150Nm、回転数は1500rpm程度に落ち着いています。
なぜこの結果になるのか?指令値を変えるとどうなるのか?
次回はシミュレーション結果について検証してみたいと思います!