这个例子展示了如何使用电机控制Blockset™与任何处理器。
该示例向您展示了如何从配置为Texas Instruments™C2000™F28069M处理器的系统模型中模拟和生成代码。系统模型使用面向字段的控制(Field-Oriented Control, FOC)实现,可以在任何处理器上运行。通过使用可以部署在任何设备上的参考模型,模型的算法部分与驱动程序层分离。
MATLAB®
金宝app仿真软件®
MATLAB®编码器™
金宝app仿真软件®编码器™
电机控制Blockset™
嵌入式编码器®
定点设计器™(仅用于串行通信)
本节向您展示如何在闭环系统仿真中验证控制器。
系统模型mcb_pmsm_foc_system测试台由测试输入、嵌入式处理器、电力电子和电机硬件组成。要查看信号,请使用数据检查按钮模拟选项卡的Simulin金宝appk工具条。您可以使用这个模型来测试控制器并研究它的预期行为。
使用此命令打开模型。
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_SetPMSMMotorParameters从这个文件中调用。
来自测试台的控制器分区
在系统试验台模型中,嵌入式处理器被建模为外设和控制器软件的组合。块mcb_pmsm_foc_system/Embedded Processor/Serial Receive实现了仿真的参考输入。
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代码函数。
生成的代码由三个生成的全局函数组成:
空白Controller_Init(空白):应该调用这个函数来执行初始化例程。
空白Current_Controller(空白):这个函数实现了当前控制器,应该从一个在50e-6秒运行的任务中调用。
空白Speed_Controller(空白):这个函数实现了速度控制器,应该从运行在500e-6秒的任务中调用。
要指定函数原型,请参见配置模型入口点功能的C代码生成.
FOC控制算法的输入:
ExternalInputs_mcb_pmsm_foc:这是一个具有速度参考和信号的结构,以使电机能够工作。
sensorsig:这是一个带有ADC计数,ADC计数,正交编码器位置计数,正交编码器索引锁存器。
FOC控制算法的输出:
PWM占空比:这是一个带有三相PWM占空比循环和使PWM生效的信号的阵列。
DebugSignals:这是一个信号数组,你可以在执行控制算法时记录这些信号。
FOC控制算法的参数:
PI_params:这是一个包含PI增益Kp_i、Ki_i、Kp_speed和Ki_speed的结构。
IsOffset, IbOffset:这些是包含ADC校准偏移的数据存储变量。
硬件外设与控制算法集成在mcb_pmsm_foc_system/Embedded Processor子系统中。
ADC中断用于调度生成的代码。中断在50e-6秒时触发。
子系统mcb_pmsm_foc_system/Embedded Processor/Hardware Init查找ADC校准偏移量,并将其提供给控制算法。
子系统mcb_pmsm_foc_system/Embedded Processor/Sensor Driver Blocks实现ADC和Quadrature Encoder外设。
当生成的代码在目标上执行时,子系统mcb_pmsm_foc_system/Embedded Processor/Serial Receive具有串行块来接收来自主机模型的用户输入。
子系统mcb_pmsm_foc_system/嵌入式处理器/逆变器驱动外设具有PWM驱动外设和串行传输模块,用于向上位机发送数据。所有这些外设都使用德州仪器C2000™支持包。金宝app
如果使用自定义处理器,则可以使用自定义代码实现驱动程序逻辑。您可以将生成的控制算法代码与您自己的驱动程序代码集成到您喜欢的集成开发环境(IDE)中。
硬件连接的详细信息请参见硬件连接.
找到正交编码器的偏移量。有关详细信息,请参见永磁同步电机正交编码器偏移校正.
为mcb_pmsm_foc_system模型构建可执行文件并将其加载到目标。
使用mcb_pmsm_foc_system模型中可用的主机模型链接打开主机模型mcb_host_model_f28069m。
更新主机型号的“主机串口设置”块中目标器的COM端口名称。
点击运行在模拟以TAB键运行主机模型。
将电机启动/停止开关位置改为On,电机开始运行。
更改参考速度并在作用域窗口中监视效果。