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]