主要内容

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

在这个例子中,您将回顾定向控制(FOC)算法的永磁同步电机(永磁同步电动机)。你会用闭环系统仿真测试控制算法然后生成HDL代码控制算法。您还将看到如何指定可调参数数据以及相应的高密度脂蛋白端口生成实体。

介绍

例子是分区,您可以生成代码的控制算法以及验证控制算法的行为使用模拟试验台。Simscape (TM)电气(TM)是运行系统仿真试验台所需模型hdlcoderFocCurrentTestBench.slx但不需要生成代码的控制算法模型hdlcoderFocCurrentFixptHdl.slx

通过仿真验证行为

在这个例子船是用来调节相电流控制电机的转矩。你可以模拟试验台探索系统的行为。在仿真过程中,解算器可以生成警告相关零交叉时速度负载突然变化。你可以禁用这些警告在模拟。

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

显示1安培范围一步当前请求命令和负载之间锁定转子速度变化(0),+ 100 rad /秒,-100 rad /秒。当前命令代表一个正交电流命令隐永磁同步电动机。(控制器调节直流电为零。)注意电机和控制器,电磁转矩与电机的正交测量电流。

探索植物规范

Motor_And_Load子系统中您将看到一个组件被控制的数学模型。逆变器的平均模型是用于驱动一个常数参数dq永磁同步电动机的电压方程模型是连接到一个速度负载。

如果hasSimPowerSystems open_system (“hdlcoderFocCurrentTestBench / Motor_And_Load”)结束

探索控制算法规范

FOC电流控制算法中指定一个单独的模型。控制算法,机器的电气方程预计从三相静止坐标系到两相旋转坐标系变换使用克拉克和公园。这简化了控制通过消除时间和位置依赖关系。空间矢量调制使控制器能够实现更高的电压阶段比的正弦输出克拉克逆变换。

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

探索数据规范

控制器和植物(如电动机和负载)参考数据从MATLAB工作区。数据定义文件创建这些数据,自动运行在PreLoadFcn回调系统的试验台模型。

%编辑(“hdlcoderFocCurrentFixptHdlData.m”)%

当你检查这个文件,请注意paramCurrentControlP和paramCurrentControlI指定为模型的参数。万博1manbetx参数存储类的设置ExportedGlobal。这告诉HDL编码器为这些参数生成实体端口而不是常量值。

为控制算法生成HDL代码

生成HDL代码之前,重要的是要确保模型遵循一些重要设置HDL代码生成。以下是一些主要的步骤:

  • 为HDL代码生成创建一个DUT子系统:它总是更好的创建一个DUT测试(设计)子系统的HDL代码生成。这个子系统有几个目的包括被一个占位用高密度脂蛋白优化设置。

  • 高密度脂蛋白的设置:为了准备HDL代码生成,解决某些设置和模型设置必须到位。的hdlsetup命令负责所有这些设置,应该之前运行HDL代码生成。

  • 检查示例:应用高密度脂蛋白优化需要的所有块样品时间是离散的。的主要块状保持谨慎是常数,得到一个“正”样品时间,默认情况下。我们可以发现这些块和显式地设置它们的抽样时间1所以他们得到正确的back-propagated样品时间。

%可以生成和审查的HDL代码控制器。makehdl (“hdlcoderFocCurrentFixptHdl / FOC_Current_Control”);
# # #生成“hdlcoderFocCurrentFixptHdl / FOC_Current_Control”高密度脂蛋白。使用的配置集模型# # # < a href = " matlab: configset。showParameterGroup (hdlcoderFocCurrentFixptHdl, {HDL代码生成的})" > hdlcoderFocCurrentFixptHdl < / > HDL代码生成参数。# # #“hdlcoderFocCurrentFixptHdl”高密度脂蛋白检查运行模型。# # #开始编译模型的“hdlcoderFocCurrentFixptHdl”……# # #应用高密度脂蛋白对模型优化“hdlcoderFocCurrentFixptHdl”……# # #开始生成模型。# # #模型生成完成。# # #产生新的验证模型:< a href = " matlab: open_system (gm_hdlcoderFocCurrentFixptHdl_vnl) " > gm_hdlcoderFocCurrentFixptHdl_vnl < / >。# # #验证模型生成完成。 ### Begin VHDL Code Generation for 'hdlcoderFocCurrentFixptHdl'. ### Working on hdlcoderFocCurrentFixptHdl/FOC_Current_Control/Clarke_Transform as hdlsrc\hdlcoderFocCurrentFixptHdl\Clarke_Transform.vhd. ### Working on hdlcoderFocCurrentFixptHdl/FOC_Current_Control/DQ_Current_Control/D_Current_Control/Saturate_Output as hdlsrc\hdlcoderFocCurrentFixptHdl\Saturate_Output.vhd. ### Working on hdlcoderFocCurrentFixptHdl/FOC_Current_Control/DQ_Current_Control/D_Current_Control as hdlsrc\hdlcoderFocCurrentFixptHdl\D_Current_Control.vhd. ### Working on hdlcoderFocCurrentFixptHdl/FOC_Current_Control/DQ_Current_Control as 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 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. ### Code Generation for 'hdlcoderFocCurrentFixptHdl' completed. ### Generating HTML files for code generation report at hdlcoderFocCurrentFixptHdl_codegen_rpt.html ### Creating HDL Code Generation Check Report file://C:\Users\amoses\OneDrive - MathWorks\Documents\MATLAB\Examples\hdlcoder-ex38994846\hdlsrc\hdlcoderFocCurrentFixptHdl\FOC_Current_Control_report.html ### HDL check for 'hdlcoderFocCurrentFixptHdl' complete with 0 errors, 1 warnings, and 0 messages. ### HDL code generation complete.

注意,在生成的hdlcoderFocCurrentFixptHdl.vhd文件实体为paramCurrentControlP和paramCurrentControlI港口。