磁场定向永磁同步电机的控制

在这个例子中,你会检讨了永磁同步电机(PMSM)一个磁场定向控制(FOC)算法。您将测试用的闭环系统仿真,控制算法,然后生成控制算法HDL代码。您还将看到参数如何可调数据是指定的,如何生成相应的HDL端口实体。

介绍

的例子中被分割,使得可以生成用于控制算法代码以及验证使用模拟试验台的控制算法的行为。的Simscape(TM)电气(TM)是必需的运行系统仿真测试台模型hdlcoderFocCurrentTestBench.slx但不是必需的,以产生从所述控制算法模型hdlcoderFocCurrentFixptHdl.slx代码。

通过仿真验证行为

在这个例子中FOC用于相电流调节到电机的控制转矩。你可以模拟测试平台,探索系统的行为。在模拟过程中,当速度负载急剧变化的解算器可以生成与零交叉的警告。您可以在模拟过程中禁用这些警告。

hasSimPowerSystems =许可证('测试''Power_System_Blocks');如果hasSimPowerSystems open_system('hdlcoderFocCurrentTestBench')set_param('hdlcoderFocCurrentTestBench''IgnoredZcDiagnostic'“没有”);SIM('hdlcoderFocCurrentTestBench')set_param('hdlcoderFocCurrentTestBench''IgnoredZcDiagnostic''警告');结束

范围示出了所请求的1个安培步骤电流指令和锁定转子(零),100弧度/秒,和-100弧度/秒之间的负载的速度变化。电流指令表示正交电流命令到非凸PMSM。(该控制器调节所述直流至零。)注意,对于此马达和控制器,所述电磁转矩紧密跟随电动机的所测量的正交电流。

探索植物规格

在Motor_And_Load子系统,你会看到被控制的部件的数学模型。所述逆变器的平均模型被用来驱动连接到一个速度负载的PMSM的恒定参数DQ电压方程模型。

如果hasSimPowerSystems open_system('hdlcoderFocCurrentTestBench / Motor_And_Load'结束

探索控制算法规范

所述FOC电流控制算法是在单独的模型中指定。在该控制算法中,电机的电方程从三相静止坐标系投影到使用Clarke和Park变换的两个相旋转坐标系。这简化了通过去除时间和位置依赖关系的控制。空间矢量调制使得控制器跨越相位,以实现更大的电压比使用只是逆Clarke变换的正弦输出。

load_system('hdlcoderFocCurrentFixptHdl');open_system('hdlcoderFocCurrentFixptHdl / FOC_Current_Control'

探索数据规范

控制器和工厂(即电机和负载)的参考数据都来自MATLAB®工作空间。数据定义文件创建这些数据,并在系统测试工作台模型的PreLoadFcn回调中自动运行。

编辑('hdlcoderFocCurrentFixptHdlData.m'

当您查看这个文件时,请注意参数paramCurrentControlP和paramCurrentControlI被指定为Simulink。金宝app存储类设置为' exports global '的参数。这告诉HDL编码器为这些参数生成实体端口,而不是常数值。

生成HDL代码控制算法

生成HDL代码之前,重要的是要确保模型坚持实行HDL代码生成某些重要设置。下面是一些主要步骤:

  • 创建一个DUT子系统:对于HDL代码生成它始终是更好地创建从中生成HDL代码DUT(被测设计)子系统。该子系统有几个目的,包括为被HDL优化设置一个占位符。

  • 安装程序HDL:为了做好准备HDL代码生成,某些求解器设置和模式设置必须到位。该hdlsetup命令将所有这些设置护理应HDL代码生成之前运行。

  • 检查采样时间:应用HDL优化需要所有的块的采样时间到被推断为离散的。主块型谨慎的是常数,其导出“INF”采样时间,默认情况下。我们可以发现这些块,并明确设置其采样次“-1”,使他们得到正确的反向传播的采样时间。

%可以生成并查看控制器的HDL代码。makehdl('hdlcoderFocCurrentFixptHdl / FOC_Current_Control');
###生成HDL为 'hdlcoderFocCurrentFixptHdl / FOC_Current_Control'。###使用关于模型 hdlcoderFocCurrentFixptHdl 。###启动HDL检查。###产生新的验证模式: gm_hdlcoderFocCurrentFixptHdl_vnl 。###验证模型生成完整的。###开始VHDL代码生成“hdlcoderFocCurrentFixptHdl”。###工作在hdlcoderFocCurrentFixptHdl / FOC_Current_Control / Clarke_Transform作为hdlsrc / hdlcoderFocCurrentFixptHdl / Clarke_Transform.vhd。###工作在hdlcoderFocCurrentFixptHdl / FOC_Current_Control / DQ_Current_Control / D_Current_Control / Saturate_Output作为hdlsrc / hdlcoderFocCurrentFixptHdl / Saturate_Output.vhd。###工作在hdlcoderFocCurrentFixptHdl / FOC_Current_Control / DQ_Current_Control / D_Current_Control作为hdlsrc / hdlcoderFocCurrentFixptHdl / D_Current_Control.vhd。###工作在hdlcoderFocCurrentFixptHdl / FOC_Current_Control / DQ_Current_Control作为hdlsrc / hdlcoderFocCurrentFixptHdl / DQ_Current_Control.vhd。 ### Working on hdlcoderFocCurrentFixptHdl/FOC_Current_Control/Inverse_Clarke_Transform as hdlsrc/hdlcoderFocCurrentFixptHdl/Inverse_Clarke_Transform.vhd. ### Working on hdlcoderFocCurrentFixptHdl/FOC_Current_Control/Inverse_Park_Transform as hdlsrc/hdlcoderFocCurrentFixptHdl/Inverse_Park_Transform.vhd. ### Working on hdlcoderFocCurrentFixptHdl/FOC_Current_Control/Park_Transform as hdlsrc/hdlcoderFocCurrentFixptHdl/Park_Transform.vhd. ### Working on hdlcoderFocCurrentFixptHdl/FOC_Current_Control/Sine_Cosine/Sine_Cosine_LUT as hdlsrc/hdlcoderFocCurrentFixptHdl/Sine_Cosine_LUT.vhd. ### Working on hdlcoderFocCurrentFixptHdl/FOC_Current_Control/Sine_Cosine as hdlsrc/hdlcoderFocCurrentFixptHdl/Sine_Cosine.vhd. ### Working on hdlcoderFocCurrentFixptHdl/FOC_Current_Control/Space_Vector_Modulation/Max/Max as hdlsrc/hdlcoderFocCurrentFixptHdl/Max.vhd. ### Working on hdlcoderFocCurrentFixptHdl/FOC_Current_Control/Space_Vector_Modulation/Min/Min as hdlsrc/hdlcoderFocCurrentFixptHdl/Min.vhd. ### Working on hdlcoderFocCurrentFixptHdl/FOC_Current_Control/Space_Vector_Modulation as hdlsrc/hdlcoderFocCurrentFixptHdl/Space_Vector_Modulation.vhd. ### Working on hdlcoderFocCurrentFixptHdl/FOC_Current_Control as hdlsrc/hdlcoderFocCurrentFixptHdl/FOC_Current_Control.vhd. ### Generating package file hdlsrc/hdlcoderFocCurrentFixptHdl/FOC_Current_Control_pkg.vhd. ### Generating HTML files for code generation report at hdlcoderFocCurrentFixptHdl_codegen_rpt.html ### Creating HDL Code Generation Check Report file:///tmp/Bdoc20a_1326390_255031/tped791de1/hdlsrc/hdlcoderFocCurrentFixptHdl/FOC_Current_Control_report.html ### HDL check for 'hdlcoderFocCurrentFixptHdl' complete with 0 errors, 0 warnings, and 0 messages. ### HDL code generation complete.

在生成的通知hdlcoderFocCurrentFixptHdl.vhd文件实体有paramCurrentControlP和paramCurrentControlI端口。