バックナンバーはこちら

today&tomorrow

Technology Update

  • T&T HOME
  • Technology Update
  • ケース・スタディ:バーチャルFMEAを使用した電気自動車のパワートレイン解析

2017 May Spring vol.106

ケース・スタディ:バーチャルFMEAを使用した電気自動車のパワートレイン解析

シノプシス テクニカル・マーケティング・マネージャー Victor Reyes、
シノプシス コーポレート・アプリケーション・エンジニア、マネージャー Kurt Mueller

組込み制御ソフトウェア

ここまでの手順で、制御ソフトウェアはバーチャルMCU内でバイナリ・コードとして動作し、ADCおよびPWMペリフェラルを介してシステムと通信するようになります。これに伴い、制御ロジックに若干の変更が必要となります。

まず、CコードをホストPC経由ではなくMCU上でネイティブに動作するようにコンパイルします。これをバーチャルMCUのフラッシュ・メモリー・モデルにロードし、ここから実行するようにします。

制御ロジックの初期化

まず、Saberで制御ブロックのサンプル時間を設定します。これは、制御ロジックをどの程度の頻度で実行するかを設定するものです。今回は200 µsに設定します。このサンプル時間はPWM信号のスイッチング時間と同じ値を設定します。このように設定することが、全体的なシステム動作にとって非常に重要です。

MCU上で制御ソフトウェアを実行した場合にシステム動作が同じになるように、内部クロックは80 MHzで動作するように設定し、内部システム・タイマーが200 µs間隔(Saberモデルで使用するサンプル時間と同じ間隔)で割り込みを生成するようにします。

制御ロジックの実行をハードウェアとソフトウェアの境界でデバッグするには、VDKのトレース機能を使用します。図4は、内部システム・タイマーによって生成された周期的割り込みと、割り込みサービス・ルーチン処理後にMCUコアに対して実行された関数を示しています(ウィンドウ・サイズは500 µs)。この図に示すように、「foc_pmsm_control_step」関数は200 µs間隔で周期的に実行されています。

図4:STM割り込み(上段)とプロセッサ・コアの関数トレース(下段)(出典:シノプシス)

図4:STM割り込み(上段)とプロセッサ・コアの関数トレース(下段)(出典:シノプシス)

PWMコントローラも周期を200 µsに設定し、デッドタイムは4 µs(2%)とします。これを示したのが、図5のPWM信号です。このデッドタイムの値により、VDKとSaberRDの間のコ・シミュレーションのステップ・サイズが決まります。

図5:PWM関連のトレース(関数、変数、レジスタ、内部リロード信号、出力)(出典:シノプシス)

図5:PWM関連のトレース(関数、変数、レジスタ、内部リロード信号、出力)(出典:シノプシス)

制御ロジックのステップ

割り込みがトリガーされるたびに、直前および現在の入力信号の値を使用して関数「foc_pmsm_control_step」が実行されます。次にこの情報を使用してPWMをプログラムし、モーターが基準速度となるようなインバータのデューティ・サイクルを計算します。入力信号をADCから読み出し、SaberRDのシグナル・コンディショニング・ブロックで処理したのとは反対に、12ビットのデジタル表現を物理値へ変換します。

同様の情報はVDKのハードウェア/ソフトウェア・トレース機能でも取得できます。図6の上段に示しているのは、SaberRDのシグナル・コンディショニング・ブロックからの入力値グループです。その下のグラフは、メイン制御ルーチン「foc_pmsm_control_step」のうち、入力値を読み出して調整する関数(「foc_pmsm_read_ic」など)の部分を示しています。これら2つのグラフの下に、ADCのトレースが表示されています。

図6:ADCでサンプルした値の読み出しに対するハードウェア/ソフトウェア・トレース(出典:シノプシス)

図6:ADCでサンプルした値の読み出しに対するハードウェア/ソフトウェア・トレース(出典:シノプシス)

新しい入力値を読み出したら、それに基づいてデューティ・サイクルを計算してPWMペリフェラルに入力します。PWMペリフェラルは新しいデューティ・サイクルの開始時にこれらの値を出力に適用します。これらの値がいつ適用されるかは、内部ハードウェア信号で正確に知ることができます。VDKは、ソフトウェアの実行およびSaberRDのインバータ・ブロックに入力される外部PWM信号に合わせてこれらの信号がどのように変化するかをトレースして相関をとることができます。

図7は、SaberRDから見たvHILレベルでのシミュレーションの結果です。図2のSILベース・アプローチによる結果と比較してみてください。

図7:0.5秒経過後の速度(上段)とモーター電流(下段)(出典:シノプシス)

図7:0.5秒経過後の速度(上段)とモーター電流(下段)(出典:シノプシス)

カテゴリートップ