此示例显示如何使用带有任何处理器的电机控制块集。
该示例显示了如何从为Texas Instruments™C2000™F28069M处理器配置的系统模型进行模拟和生成代码。系统模型使用面向现场的控制(Foc)实现,您可以在任何处理器上运行。通过使用可以在任何设备上部署的参考模型,模型的算法部分与驱动程序层分开。
MATLAB®
金宝appSimulink®.
MATLAB®Coder™
金宝appSimulink®Coder™
电机控制BlockSet™
嵌入式译码器
固定点设计器™(仅适用于串行通信)
本节向您展示如何在闭环系统仿真中验证控制器。
系统型号MCB_PMSM_FOC_SYSTEM测试台由测试输入,嵌入式处理器,电力电子设备和电机硬件组成。要查看信号,请使用数据检查员纽约州模拟Simulink To金宝appolStrip的选项卡。您可以使用此模型来测试控制器并探索其预期行为。
使用此命令打开模型。
Open_System('mcb_pmsm_foc_system.slx');
笔记:该模型仅支持浮点计算。金宝app
运行模拟,请参阅数据检查器中的记录速度参考(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代码功能。
生成的代码由三个生成的全局函数组成:
void controller_init(void):应调用此函数以执行初始化例程。
void current_controller(void):此功能实现了当前控制器,应从50E-6秒运行的任务中调用。
void speed_controller(void):此功能实现速度控制器,应从在500E-6秒运行的任务中调用。
指定函数原型,请参阅配置模型入口点函数的C代码生成。
FOC控制算法的输入:
ExternalInputs_mcb_pmsm_foc:这是一个具有速度参考和信号的结构,以使电动机能够。
sensorsigs:这是一个阵列ADC计数,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_SYEM /嵌入式处理器子系统中的控制算法集成在一起。
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™支持包中使用的。金宝app
如果您使用的是自定义处理器,可以使用自定义代码实现驱动程序逻辑。您可以在您的首选集成开发环境(IDE)中使用自己的驱动程序代码集成生成的代码。
有关所需硬件连接的详细信息,请参阅硬件连接。
找到正交编码器偏移量。有关详细信息,请参阅PMSM电机的正交编码器偏移校准。
构建并将可执行文件加载到MCB_PMSM_FOC_SYSTEM模型的目标。
使用MCB_PMSM_FOC_System Model中可用的主机模型链接打开主机模型MCB_HOST_MODEL_F28069M。
在主机模型的主机串行设置块中更新目标的COM端口名称。
点击跑步在里面模拟标签以运行主机模型。
将电机启动/停止切换位置更改为ON,开始运行电机。
更改参考速度并监视范围窗口中的效果。