主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

永久磁石同期機のフィールドオリエンテッド制御

この例では,永久磁石同期機永磁同步电动机のフィールドオリエンテッド制御船アルゴリズムを確認します。この制御アルゴリズムを閉ループシステムシミュレーションでテストしてから,制御アルゴリズムのHDLコードを生成します。また,調整可能なパラメーターデータの指定方法と,対応するHDL端子エンティティの生成方法も確認します。

はじめに

この例は分割されており,制御アルゴリズムのコードを生成できるほか,シミュレーションテストベンチを使用して制御アルゴリズムの動作を確認できるようになっています。シミュレーションテストベンチモデルhdlcoderFocCurrentTestBench。基金を実行するにはSimscape (TM)电气(TM)が必要ですが,制御アルゴリズムモデルhdlcoderFocCurrentFixptHdl。基金からのコード生成には必要ありません。

シミュレーションによる動作の確認

この例では、FOCを使用して相電流を調整し、電気機械のトルクを制御します。テスト ベンチをシミュレートしてシステムの動作を調査できます。シミュレーション中に、角速度負荷が突然変動すると、ソルバーによってゼロクロッシングに関連する警告が生成される場合があります。シミュレーション中はこのような警告を無効にできます。

hasSimPowerSystems = license (“测试”“Power_System_Blocks”);如果hasSimPowerSystems开放式系统(“hdlcoderFocCurrentTestBench”) set_param (“hdlcoderFocCurrentTestBench”“IgnoredZcDiagnostic”“没有”);sim卡(“hdlcoderFocCurrentTestBench”) set_param (“hdlcoderFocCurrentTestBench”“IgnoredZcDiagnostic”“警告”);结束

1アンペアのステップ電流指令が要求され,負荷角速度がロックされた回転子(0)+ 100ラジアン/秒,-100ラジアン/秒の範囲で変動していることがスコープによって示されます。電流指令は,非突極永磁同步电动机に対する無効電流指令を表します(コントローラーによって直流が0に調整されます)。このモーターとコントローラーの場合,電磁トルクがモーターの測定された無効電流に厳密に追従していることに注目してください。

プラント仕様の検査

Motor_And_Loadサブシステムには,制御対象のコンポーネントの数学モデルが示されます。インバーターの平均モデルを使用して,角速度負荷に接続されている永磁同步电动机の定数パラメーターdq電圧方程式モデルが駆動されます。

如果hasSimPowerSystems开放式系统(“hdlcoderFocCurrentTestBench / Motor_And_Load”结束

制御アルゴリズム仕様の検査

FOC電流制御アルゴリズムは別のモデルで指定されています。制御アルゴリズムでは、克拉克変換と 公园変換を使用して、機械の電気方程式が三相静止基準座標系から二相回転基準座標系に投影されます。これにより、時間と位置の依存関係が排除されるため、制御が簡略化されます。空間ベクトル変調により、コントローラーは、逆 克拉克変換の正弦波出力のみを使用する場合よりも相間電圧を向上できます。

load_system (“hdlcoderFocCurrentFixptHdl”);open_system (“hdlcoderFocCurrentFixptHdl / FOC_Current_Control”

データ仕様の検査

コントローラーとプラント(つまりモーターと負荷)の両方がMATLAB®ワークスペースのデータを参照します。データ定義ファイルはこのデータを作成し,自動的にシステムテストベンチモデルのPreLoadFcnコールバック内で実行されます。

编辑(“hdlcoderFocCurrentFixptHdlData.m”

このファイルを確認すると,パラメーターparamCurrentControlPおよびparamCurrentControlIが仿真软件。金宝app参数として指定されており,そのストレージクラスが‘ExportedGlobalに設定されていることがわかります。これにより,定数値ではなくこれらのパラメーターのエンティティ端子を生成するようにHDL编码器に指示します。

制御アルゴリズムの 高密度脂蛋白コードの生成

高密度脂蛋白コードを生成する前に,モデルがHDLコード生成に関する特定の重要な設定に従っていることを確認することが重要です。主要手順のいくつかを以下に示します。

  • DUTサブシステムの作成:高密度脂蛋白コード生成では,高密度脂蛋白コードを生成するDUT(テスト対象設計)サブシステムを常に作成することをお勧めします。このサブシステムは,高密度脂蛋白最適化設定のためのプレースホルダーとなるなど,いくつかの目的を果たします。

  • 高密度脂蛋白の設定:高密度脂蛋白コード生成の準備を完了するには,特定のソルバー設定とモデル設定を適用しなければなりません。これらすべての設定を処理するhdlsetupコマンドをHDLコード生成の前に実行しなければなりません。

  • サンプル時間のチェック:高密度脂蛋白最適化を適用するには,すべてのブロックのサンプル時間が離散と推定されなければなりません。注意すべき主なブロックタイプは,既定で‘正’サンプル時間を派生させる定数です。このようなブロックを見つけて,そのサンプル時間を明示的に' 1 'に設定すると,逆伝播された正しいサンプル時間が得られます。

%您可以生成并查看控制器的HDL代码。makehdl (“hdlcoderFocCurrentFixptHdl / FOC_Current_Control”);
###正在为“hdlcoderFocCurrentFixptHdl/FOC_Current_Control.”生成HDL使用模型的配置集hdlcoderFocCurrentFixptHdl获取HDL代码生成参数在模型“hdlcoderFocCurrentFixptHdl”上运行HDL检查开始编译模型“hdlcoderFocCurrentFixptHdl”…###在“hdlcoderFocCurrentFixptHdl”模型上应用HDL优化…###开始模型生成模型生成完成生成新的验证模型:gm_hdlcoderFocCurrentFixptHdl_vnl。#验证模型生成完成。####开始为“hdlcoderFocCurrentFixptHdl”生成VHDL代码以hdlsrc/hdlcoderFocCurrentFixptHdl/FOC#u Current#u Control/Clarke#u Transform的形式处理hdlcoderFocCurrentFixptHdl/Clarke#u Transform.vhd.#将hdlcoderFocCurrentFixptHdl/FOC_电流控制/DQ_电流控制/D_电流控制/饱和输出作为hdlsrc/hdlcoderFocCurrentFixptHdl/Saturate_输出.vhd进行工作以hdlsrc/hdlcoderFocCurrentFixptHdl/FOC_Current_Control/DQ_Current_Control/D_Current_Control作为hdlsrc/hdlcoderFocCurrentFixptHdl/D_Current_Control.vhd进行hdlcoderFocCurrentFixptHdl/D#将hdlcoderFocCurrentFixptHdl/FOC_Current_Control/DQ_Current_Control作为hdlsrc/hdlcoderFocCurrentFixptHdl/DQ_Current_Control.vhd进行工作以hdlsrc/hdlcoderFocCurrentFixptHdl/FOC_Current_Control/Reverse_Clarke_Transform作为hdlsrc/hdlcoderFocCurrentFixptHdl/Reverse_Clarke_Transform.vhd进行hdlcoderFocCurrentFixptHdl/Reverse#Clarke#将HDLCoderFocCurrentFixtHDL/FOC_Current_Control/Reverse_Park_Transform作为hdlsrc/HDLCoderFocCurrentFixtHDL/Reverse_Park_Transform.vhd进行工作将hdlcoderFocCurrentFixptHdl/FOC#u Current#u Control/Park#u转换为hdlsrc/hdlcoderFocCurrentFixptHdl/Park#u Transform.vhd将hdlcoderFocCurrentFixptHdl/FOC_Current_Control/Sine_Cosine/Sine_Cosine_LUT作为hdlsrc/hdlcoderFocCurrentFixptHdl/Sine_Cosine_LUT.vhd使用hdlcoderFocCurrentFixptHdl/FOC#u Current#u Control/Sine_Cosine作为hdlsrc/hdlcoderFocCurrentFixptHdl/Sine#u Cosine.vhd.#以hdlsrc/hdlcoderFocCurrentFixptHdl/FOC_Current_Control/Space_Vector_Modulation/Max/Max作为hdlsrc/hdlcoderFocCurrentFixptHdl/Max.vhd进行工作以hdlsrc/hdlcoderFocCurrentFixptHdl/FOC_Current_Control/Space_Vector_Modulation/Min/Min作为hdlsrc/hdlcoderFocCurrentFixptHdl/Min.vhd进行工作将hdlcoderFocCurrentFixptHdl/FOC_电流控制/空间向量调制作为hdlsrc/hdlcoderFocCurrentFixptHdl/Space#向量调制.vhd将hdlcoderFocCurrentFixptHdl/FOC_Current_控件作为hdlsrc/hdlcoderFocCurrentFixptHdl/FOC_Current_Control.vhd进行工作正在生成程序包文件hdlsrc/hdlcoderfoccurrentfixptdl/FOC_Current_Control_pkg.vhd.###“hdlcoderFocCurrentFixptHdl”的代码生成已完成。#在创建HDL代码生成检查报告file:///tmp/Bdoc21a_1695482_244693/tp5bec6a6a/hdlsrc/hdlcoderFocCurrentFixptHdl/FOC_Current_Control_report.html ###HDL检查是否有“hdlcoderFocCurrentFixptHdl”,包括0个错误、0个警告和0条消息。#HDL代码生成完成。

生成されたhdlcoderFocCurrentFixptHdl.vhdファイルで,エンティティにparamCurrentControlPおよびparamCurrentControlIの端子があることに注目してください。