永久磁石同期モータ(PMSM)のInstaSPINによるセンサレス制御の実装
本投稿はPSIMのビデオチュートリアル
InstaSPIN Code Generation – DRV8305 Quick Start | PMSM control
を日本語化したものです。
概要
本チュートリアルでは、永久磁石同期モータ(PMSM)のセンサレス制御の実装を行います。センサレスアルゴリズムにはTexus Instrument社のInstaSPINを使用します。
PSIMの自動コード生成機能を用いて、マイクロコントローラによりPMSMを任意の速度で回転させます。
PSIMからの自動コード生成機能とCCSを用いたマイクロコントローラへの実装手順につきましては、事前にPSIM SimCoderプロジェクトをCCSにインポートする方法をご確認ください。
事前準備
下記を購入しました。
- マイクロコントローラ TMS320F28069M
- 永久磁石同期モータ LVBLDCMTR
- 3相モーター・ドライブ・ブースタパック BOOSTXL-DRV8305EVM
- 24V-2A 電源
PSIMモデルの確認
PSIMにはコード生成に対応した各種サンプルモデルがプリインストールされています。
今回は下記フォルダのサンプルを使用します。
C:\Altair\Altair_PSIM_2023.0\examples\Code Generation\F2806x Target\TI DRV8305 PMSM InstaSPIN Lab11
内のファイルを作業フォルダにコピーしてご利用ください。
PSIMでDRV8305 PMSM InstaSPIN Lab11 (F28069).psimschを開きます。
InstaSPINブロックを含む永久磁石同期モータの制御シミュレーションモデルが展開されます。
Simulation ControlにてCPUバージョンをご購入のマイクロコントローラに合わせてください。
また、InstaSPINにチェックが入っていることを確認します。
InstaSPINアルゴリズムはPILモードでしか動作しませんので、PSIM単体のシミュレーションではこのモデルを実行できません。
ハードウェアの接続
マイクロコントローラとブースタパックを接続します。ジャンパピン1と2を外して、下記のように接続します。
24V電源をブースタパックに接続します。電源のケーブルを切断して、2本の線を供給側とグラウンド側に接続しました。2本の線のうち、どちらが供給側でどちらがグラウンド側かはテスターで確認してください。
永久磁石同期モータの3本の線をブースタパックに接続します。配線の順番はモータの回転方向に関係します。順番が変わっても問題ありません。
最後にマイクロコントローラをUSBでPCに接続しました。
PIL (Processor in the Loop)の実行
マイクロコントローラをUSBで接続した状態でPSIMをPILモードで実行できます。マイクロコントローラ上のInstaSPINアルゴリズムにアクセスしたシミュレーションを行うことができます。
PSIMのコード生成
シミュレートのコード生成をクリックしてコードを生成します。
CCSTUDIOによるマイクロコントローラへのコードの書き込み
Project -> Import Legacy CCSv3.3 Projectsより、PSIMで生成されたプロジェクトを読み込みます。
また、Target Configurationにて今回使用するマイクロコントローラの設定が設定されていることを確認します。
Projectの右クリックよりPropertiesを開き、GeneralのProductsにてXDAISをRemoveします。
Debugをクリックします。Build Finishedと表示されれば成功です。
このチュートリアルではプログラムの中断方法の記載が無く、強制的にプログラムを止めると、条件によってはハードウェアの破損のおそれがあります。
安全に止めるには指令値の回転数を0にして、PWMをストップしてからプログラムを停止することが推奨されます。
下記に進む前に、次の記事をご参照ください。
Resumeをクリックすると、コードがマイクロコントローラ上で実行され、モータが回転します。
Suspendで一時停止、Terminateで終了します。
DSPオシロスコープによる信号の確認
PSIMのDSPオシロスコープを用いて、回転数や電流などの信号を確認できます。
CCSのTerminateで終了してください。
回転数指令の追加
現在のモデル・コードは回転数の指令値が0.5KRPMで固定されています。回転数を変更するために、わざわざモデル・コードを修正するのは面倒ですので、マイクロコントローラへの入力信号で回転数が変更できるようモデル・コードを修正します。
F2806X用のSCI inputを配置、接続します。
SCI inputブロックの名前と初期値を設定します。
再度コード生成します。CCSのコードも更新されていることを確認してください。
新しいコードをデバッグし、実行します。モータが回転し始めます。
再度DSPオシロスコープを開くと、入力変数設定として、speed_refが追加されています。
この値を変更することで、即座にモータの回転数を変更できます。
使用製品:Altair PSIM