主要内容

本页采用了机器翻译。点击此处可查看英文原文。

基于 C2000 处理器的三相交流电机开环控制

此示例使用开环控制(也称为标量控制或伏特/赫兹控制)来运行电机。这种方法会改变定子电压和频率来控制转子转速,而不使用来自电机的任何反馈。您可以使用这种方法来检查硬件连接的完整性。开环控制的恒速应用使用固定频率的电机电源。开环控制的可调速应用需要可变频率电源来控制转子转速。为了确保恒定的定子磁通,请保持电源电压振幅与其频率成比例。

开环电机控制无法将可能影响电机转速的外部条件纳入考虑范围。因此,控制系统无法自动纠正期望电机转速与实际电机转速之间的偏差。

该模型采用开环电机控制算法来驱动电机。该模型可帮助您开始使用 Motor Control Blockset™,并通过运行电机来验证硬件设置。目标模型算法还从电流传感器读取 ADC 值,并通过使用串行通信将值发送给主机模型。

您可以使用此模型:

  • 检查与目标的连接。

  • 检查与目标设备的串口通信。

  • 验证硬件和软件环境。

  • 检查电流传感器的 ADC 偏移量。

  • 首次运行带逆变器和目标设置的新电机。

模型

该示例包含以下模型:

  • mcb_open_loop_control_f28035_DRV8312.slx

  • mcb_open_loop_control_f28027Launchpad.slx

  • mcb_open_loop_control_f280049C_DRV8305.slx

这些模型既可用于仿真,也可用于代码生成。打开 mcb_open_loop_control_f28035_DRV8312.slx 模型。

有关可用于不同硬件配置的模型名称,请参阅“生成代码并将模型部署到目标硬件”部分中的“所需硬件”主题。

必需的 MathWorks 产品

仿真模型:

适用于以下模型:mcb_open_loop_control_f28035_DRV8312mcb_open_loop_control_f28027LaunchPadmcb_open_loop_control_f280049C_DRV8305

  • Motor Control Blockset

  • Fixed-Point Designer™

要生成代码并部署模型:

适用于以下模型:mcb_open_loop_control_f28035_DRV8312mcb_open_loop_control_f28027LaunchPadmcb_open_loop_control_f280049C_DRV8305

  • Motor Control Blockset

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

  • Fixed-Point Designer

前提条件

对于 BOOSTXL-DRV8301/8305,请按照以下步骤更新模型:

  • 在模型中导航到此路径:/Open Loop Control/Codegen/Hardware Initialization。

  • 对于 LAUNCHXL-F28027/F28027F:从 GPIO6 更新 DRV830x Enable 模块。

  • 对于 DRV8312-F28035 ControlCard:配置 GPIO1、GPIO3 和 GPIO5 为高电平有效,使能逆变器。

  • 对于 DRV8305-F28049C LAUNCHXL:将 GPIO39 配置为高电平有效,使能 DRV830x 逆变器。

对模型进行仿真

此示例支持仿真。请按照以下步骤仿真模型。

1.打开此示例附带的一个模型。

2.点击仿真选项卡上的运行来仿真该模型。

3.点击仿真选项卡上的数据检查器来查看和分析仿真结果。

生成代码并将模型部署到目标硬件

本节指导您生成代码并使用开环控制来运行电机。

该示例使用主机模型和目标模型。主机模型是控制器硬件板的一个用户界面。您可以在主机上运行主机模型。使用主机模型的前提条件是将目标模型部署到控制器硬件板上。主机模型使用串行通信对目标 Simulink® 模型发出命令,并以闭环控制方式运行电机。

必需的硬件

此示例支持这些硬件配置。您还可以使用目标模型名称,从 MATLAB® 命令提示符打开相应硬件配置的模型。

  • F28035 控制器卡 + DRV8312-69M-KIT 逆变器:mcb_open_loop_control_f28035_DRV8312.slx

  • F280049C LAUNCHXL + BOOSTXL-DRV8305 逆变器:mcb_open_loop_control_f28027LaunchPad.slx

  • LAUNCHXL-F28027 控制器 + (BOOSTXL-DRV8301 或 BOOSTXL-DRV8305 逆变器: mcb_open_loop_control_f280049C_DRV8305.slx

有关前面硬件配置的连接,请参阅 硬件连接

注意:

  • 本示例支持任何类型的三相交流电机(永磁同步电机或感应电机)以及连接到受支持硬件的任何类型的逆变器。

  • 某些 PMSM 无法以更高的转速运行,尤其是当轴承受负载时。要解决此问题,您应根据给定的频率增加电压。您可以使用以下步骤来增加模型中的电压:

1.在模型中导航到此路径:/Open Loop Control/Control_System/VabcCalc/。

2.将增益 Correction_Factor_sinePWM 更新为 20%。

3.出于安全原因,需要定期监控电机轴、电机电流和电机温度。

生成代码并运行模型以实现开环控制

1.仿真目标模型并查看仿真结果。

2.完成硬件连接。

3.打开您要使用的硬件配置的目标模型。如果要更改目标模型的默认硬件配置设置,请参阅 模型配置参数 (Motor Control Blockset)

4.在目标模型的 Configuration 面板中更新以下电机参数。

  • 极对数

  • PWM 频率 [Hz]

  • 基转速 [RPM]

  • 控制算法的数据类型

5.点击硬件选项卡上的编译、部署和启动以将目标模型部署到硬件上。

注意:点击“始终忽略”按钮,忽略模型顾问显示的警告消息“配置参数对话框的诊断页面中的多任务数据存储选项为无”。这是预期工作流的一部分。

6.点击目标模型中的主机模型超链接,打开关联的主机模型。打开 mcb_c2000_open_loop_control_host_model.slx 模型。

有关主机和目标模型之间串行通信的详细信息,请参阅 Host-Target Communication (Motor Control Blockset)

7.将模型 mcb_c2000_open_loop_control_host_model 中以下模块的 Port 参数设置为与主机的 COM 端口匹配:

  • mcb_c2000_open_loop_control_host_model > 主机串口设置

  • mcb_c2000_open_loop_control_host_model > 串行通信 > 主机串行接收

  • mcb_c2000_open_loop_control_host_model > 串行通信 > 已启用子系统 > 主机串行发送

8.在主机模型的配置面板中选择一个目标(TI F28035、TI F28027D 或 TI F280049C)。

9.在主机模型中输入参考速度值。

10.点击 Simulation 选项卡上的 Run 以运行主机模型。

11.将启动/停止电机开关的位置转到“开”的位置,即可启动电机。

12.电机运转后,在时间示波器中观察 ${I_a}$${I_b}$ 电流的 ADC 计数。

注意:此示例可能不允许电机满负荷运行。先以低速运转电机。此外,建议以小步长改变参考速度(例如,对于基准速度为 3000 rpm 的电机,先以 500 rpm 的速度启动电机,然后以 200 rpm 的步长增加或减少速度)。

如果电机不运转,请将启动/停止电机开关的位置改为“关闭”,以停止电机并更改主机模型中的参考速度。然后,将启动/停止电机开关的位置改为“开”,再次启动电机。

生成代码并运行模型以标定 ADC 偏移量

1.仿真目标模型并查看仿真结果。

2.完成硬件连接。

3.将三相电机线从硬件板端子上断开。

4.打开您要使用的硬件配置的目标模型。如果要更改目标模型的默认硬件配置设置,请参阅 模型配置参数 (Motor Control Blockset)

5.点击硬件选项卡上的编译、部署和启动以将目标模型部署到硬件上。

注意:点击“始终忽略”按钮,忽略模型顾问显示的警告消息“配置参数对话框的诊断页面中的多任务数据存储选项为无”。这是预期工作流的一部分。

6.点击目标模型中的主机模型超链接,打开关联的主机模型。

7.将模型 mcb_c2000_open_loop_control_host_model 中以下模块的 Port 参数设置为与主机的 COM 端口匹配:

  • mcb_c2000_open_loop_control_host_model > 主机串口设置

  • mcb_c2000_open_loop_control_host_model > 串行通信 > 主机串行接收

  • mcb_c2000_open_loop_control_host_model > 串行通信 > 已启用子系统 > 主机串行发送

8.点击 Simulation 选项卡上的 Run 以运行主机模型。

9.在时间示波器中观察 ${I_a}$${I_b}$ 电流的 ADC 计数。ADC 计数的平均值是电流 ${I_a}$${I_b}$ 的 ADC 偏移校正值。为了获得 ADC 计数的平均值(中位数):

  • 范围窗口中,导航至工具>测量,然后选择信号统计以显示轨迹选择信号统计区域。

  • 轨迹选择下,选择一个信号(${I_a}$${I_b}$)。所选信号的特征显示在信号统计窗格中。您可以在“中值”字段中看到所选信号的中值。

对于 Motor Control Blockset 示例,更新链接到示例的模型初始化脚本中 inverter.CtSensAOffset 和 inverter.CtSensBOffset 变量中计算出的 ADC(或电流)偏移值。有关说明,请参阅估计控制增益并调节控制参数 (Motor Control Blockset)

其他可尝试的操作