永久磁石同期モータ(PMSM)のInstaSPINによるセンサレス制御の実装


本投稿はPSIMのビデオチュートリアル

InstaSPIN Code Generation – DRV8305 Quick Start | PMSM control

を日本語化したものです。

 

概要

本チュートリアルでは、永久磁石同期モータ(PMSM)のセンサレス制御の実装を行います。センサレスアルゴリズムにはTexus Instrument社のInstaSPINを使用します。

PSIMの自動コード生成機能を用いて、マイクロコントローラによりPMSMを任意の速度で回転させます。

PSIMからの自動コード生成機能とCCSを用いたマイクロコントローラへの実装手順につきましては、事前にPSIM SimCoderプロジェクトをCCSにインポートする方法をご確認ください。

 

事前準備

下記を購入しました。

 

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をストップしてからプログラムを停止することが推奨されます。

下記に進む前に、次の記事をご参照ください。

永久磁石同期モータ(PMSM)を安全に停止させる方法

 

Resumeをクリックすると、コードがマイクロコントローラ上で実行され、モータが回転します。

Suspendで一時停止、Terminateで終了します。

 

DSPオシロスコープによる信号の確認

PSIMのDSPオシロスコープを用いて、回転数や電流などの信号を確認できます。

CCSのTerminateで終了してください。

 

回転数指令の追加

現在のモデル・コードは回転数の指令値が0.5KRPMで固定されています。回転数を変更するために、わざわざモデル・コードを修正するのは面倒ですので、マイクロコントローラへの入力信号で回転数が変更できるようモデル・コードを修正します。

F2806X用のSCI inputを配置、接続します。

SCI inputブロックの名前と初期値を設定します。

再度コード生成します。CCSのコードも更新されていることを確認してください。

新しいコードをデバッグし、実行します。モータが回転し始めます。

再度DSPオシロスコープを開くと、入力変数設定として、speed_refが追加されています。

この値を変更することで、即座にモータの回転数を変更できます。

 

使用製品:Altair PSIM