Main Content

半精度ベクトル制御アルゴリズム

この例では、永久磁石同期機 (PMSM) に、ベクトル制御 (FOC) アルゴリズムを実装する方法を説明します。この例では、単精度浮動小数点による実装と、半精度浮動小数点による実装の両方を示します。アルゴリズムに大規模または未知のダイナミック レンジが含まれる場合 (フィードバック ループの積分器など) や、アルゴリズムで固定小数点で設計することが困難な演算が使用される場合 (atan2 など)、浮動小数点表現を使用すると効果的です。半精度データ型は 16 ビットのメモリしか占有しませんが、その浮動小数点表現を使ってこのデータ型で同じサイズの整数データ型または固定小数点データ型よりも広いダイナミック レンジを処理できます。

モデルをシミュレーションするのに必要なデータを読み込みます。

focModelData

ex_foc_current モデルを開きます。このモデルでは、2 つのバージョンのベクトル制御アルゴリズムに対して、同一のソース ブロックを使用します。1 つ目のバージョンは単精度データ型を、2 つ目のバージョンは半精度データ型を使用します。

model = 'ex_foc_current.slx';
open_system(model)

モデルのシミュレーションを実行します。スコープより、単精度実装の応答と半精度実装の応答が同一であることが分かります。

sim(model)
ans = 

  Simulink.SimulationOutput:
           logTestBench: [1x1 Simulink.SimulationData.Dataset] 

     SimulationMetadata: [1x1 Simulink.SimulationMetadata] 
           ErrorMessage: [0x0 char]