主要内容

使用电机控制模块为自定义目标生成代码

这个例子展示了如何在任何处理器上使用Motor Control Blockset™。

该示例向您展示了如何模拟和生成一个为Texas Instruments™C2000™F28069M处理器配置的系统模型的代码。系统模型使用一个可以在任何处理器上运行的面向字段的控制(FOC)实现。通过使用一个可以部署在任何设备上的参考模型,模型的算法部分与驱动程序层分离。

所需的产品s manbetx 845

  • MATLAB®.

  • 万博1manbetx仿真软件®

  • MATLAB®编码器™

  • 万博1manbetxSimulink®Coder™

  • 电机控制BlockSet™

  • 嵌入式译码器

  • 固定点设计器™(仅适用于串行通信)

使用系统仿真验证算法行为

本节向您展示如何在闭环系统仿真中验证控制器。

系统模型mcb_pmsm_foc_system测试台由测试输入、嵌入式处理器、电力电子和电机硬件组成。要看到信号,使用数据检查纽约州模拟选项卡的Simulin万博1manbetxk工具条。您可以使用此模型来测试控制器并探索其预期行为。

使用此命令打开模型。

open_system (“mcb_pmsm_foc_system.slx”);

笔记:该模型仅支持浮点计算。万博1manbetx

运行模拟,请参阅数据检查器中的记录速度参考(Speed_Reference)和测量的电机速度(Speed_Motor)信号。

模型架构

本节解释模型架构,并包括以下子节:

  • 数据规范

  • 来自测试台的控制器分区

  • 控制器调度

模型架构有助于系统仿真和算法代码生成。

数据规范

数据定义文件创建模拟和代码生成所需的数据。此数据文件会自动运行InitFcn系统测试台模型的回调。

编辑('mcb_algorithm_workflow_data.m')

另一个数据文件mcb_pmsm_foc_qep_f28069LaunchPad_data。M定义电机和逆变器参数。

在此文件中更新您的硬件配置的电机和逆变器参数。例如,在功能上更新电机参数mcb_setpmsmmotorparometers.从此文件调用。

来自测试台的控制器分区

在系统测试台模型中,嵌入式处理器被建模为外围设备和控制器软件的组合。块MCB_PMSM_FOC_SYSTEM /嵌入式处理器/串行接收实现了用于仿真的参考输入。

open_system ('mcb_pmsm_foc_system /嵌入式处理器');

在该示例中,单独的模型包括控制器软件。控制器软件模型包含FOC算法的速度控制和电流控制子系统。

open_system (“mcb_pmsm_foc.slx”);

控制器调度

主要的控制方法是面向场的控制。控制器有一个低速率外环控制速度。它也有一个更高的速率内环,控制电流。速度控制子系统实现了PI控制器的速度控制。电流控制子系统将ADC信号(或电流反馈)转换为单位值,并将它们传递给核心控制器算法。此外,它还可以测量四元编码器脉冲的速度和位置值。

控制器算法计算电压。然后将电压转换为驱动器信号。速度控制器外循环在用于运行当前控制环路的时间段的每个实例之后执行。您可以使用这些命令查看指定速度和当前控制循环采样时间的变量:

fprintf('当前循环采样时间=%f秒\ n',ts)
fprintf('速度循环采样时间= %f秒\n', Ts_speed)

生成C代码集成控制器到嵌入式应用程序

本节向您展示如何生成和可视化地检查控制器的C代码函数。

生成的代码由三个生成的全局函数组成:

  • 空白Controller_Init(空白):这个函数应该被调用来执行初始化例程。

  • 空白Current_Controller(空白):这个函数实现了当前控制器,应该从运行在50e-6秒的任务中调用。

  • 空白Speed_Controller(空白):此功能实现速度控制器,应从在500E-6秒运行的任务中调用。

要指定函数原型,请参见配置模型入口点函数的C代码生成

FOC控制算法的输入

  • ExternalInputs_mcb_pmsm_foc:这是一个具有速度参考和信号的结构,以使电动机能够。

  • 传感器:这是一个数组$ {I_a} $ADC计数,$ {I_b} $ADC计数,正交编码器位置计数和正交编码器索引锁存器。

FOC控制算法的输出

  • PWM义务:这是一个具有PWM占空比的阵列,用于三个阶段和信号,以实现PWM。

  • DebugSignals:这是一个可以在执行控制算法时记录的信号数组。

FOC控制算法参数

  • PI_Params:这是包含PI Gains KP_I,KI_I,KP_SPEED和KI_SPEED的结构。

  • IsOffset, IbOffset:这些是包含ADC校准偏移量的数据存储变量。

硬件外围设备集成

  • 硬件外设与控制算法集成在mcb_pmsm_foc_system/嵌入式处理器子系统中。

  • ADC中断用于调度生成的代码。中断在50e-6秒触发。

  • 子系统MCB_PMSM_FOC_SYSTEM /嵌入式处理器/硬件init找到ADC校准偏移并将其提供给控制算法。

  • 子系统MCB_PMSM_FOC_SYSTEM /嵌入式处理器/传感器驱动程序驱动程序实现ADC和正交编码器外设。

  • 子系统MCB_PMSM_FOC_System /嵌入式处理器/串行接收具有串行块,以在目标上执行生成的代码时从主机模型接收用户输入。

  • mcb_pmsm_foc_system/嵌入式处理器/逆变器驱动外设子系统由PWM驱动外设和串行传输模块向上位机发送数据。所有这些外设都来自于Texas Instruments™C2000™支持包。万博1manbetx

如果您使用的是自定义处理器,可以使用自定义代码实现驱动程序逻辑。您可以在您的首选集成开发环境(IDE)中使用自己的驱动程序代码集成生成的代码。

生成代码的测试行为

有关所需硬件连接的详细信息,请参阅硬件连接

  • 构建并将可执行文件加载到mcb_pmsm_foc_system模型的目标中。

  • 使用MCB_PMSM_FOC_System Model中可用的主机模型链接打开主机模型MCB_HOST_MODEL_F28069M。

  • 在主机模型的主机串行设置块中更新目标的COM端口名称。

  • 点击模拟标签以运行主机模型。

  • 将电机启停开关位置改为On,电机开始运行。

  • 更改参考速度并监视范围窗口中的效果。