代码链接:【免费】使用Simulink代码生成工具对永磁同步电机进行无传感矢量控制资源-CSDN文库
本案例借助Simulink平台实现了对三相永磁同步电机的磁场定向控制(FOC),其中无传感位置估算估计方法可以选择滑模观测器或磁通观测器。
硬件基础:
Nucleo-G431RB开发板
X-NUCLEO-IHM07M1驱动扩展板
57BLDC-24V-210W时代超群直流电机
软件基础:
MATLAB 2022b 安装
STM32CubeMX 6.4
控制方法介绍:
磁场定向控制包含电流环和速度环,电流环是通过转矩电流分量闭环控制实现动态调节,速度环是以目标转速和测量转速为闭环控制量。对于无传感器(无编码器/霍尔传感器)的电机需要对转子速度和位置进行观测,本案例中采用了滑模观测器(SMO)或磁通观测器。滑模观测器使用定子电压和电流作为输入来估计电机模型的反电动势(EMF),进而估计转子位置和速度,而磁通观测器使用定子电压和电流估计定子磁通、产生的扭矩和转子位置。
准备工作:
(1)参考以下文档确保STM32CubeMX芯片外设端口配置完成、电路硬件的通讯良好,读取两路ADC的偏移量(offset)。
使用Simulink代码生成工具基于STM32开发板对永磁同步电机进行开环控制_qianyuqi1993的博客-CSDN博客
(2)使用Motor Profiler 软件识别电机参数,包括定子电阻、电感、反电动势等。
操作步骤:
(1) 执行open_system('mcb_pmsm_foc_sensorless_nucleo_g474re.slx');命令,打开控制模型,并另存为mcb_pmsm_foc_sensorless_nucleo_g431re.slx
(2) 将stm32_nucleo_g474re_pmsm_foc_data.m另存为stm32_nucleo_g431re_pmsm_foc_data.m,把准备工作里的ADC offset、电机参数填入代码文件中,模型属性InitFcn进行关联。
(3) 在simulink模板内执行Ctrl+E操作弹出硬件配置窗口,在STM32CubeMx项目文件选取上一篇博客中的.ioc文件。
(4) 点击“仿真中”的”运行“,单击“仿真”选项卡上的“数据检查器”以查看和分析,观察参考速度和测量速度随时间变化的情况。
(5) 打开供电电源,在MATLAB的“Hardware”选项卡中,点机“Monitor&Tune”。在底部诊断查看器中可以看到正在生成模型代码,主机加载生成的可执行文件后,电路启动工作,可以看到开发板上呼吸灯闪烁;
(6) 在启动电机之前,请确保通过逆时针方向旋转电位器将电位器保持在 0 位置。
单机硬件板上的蓝色按钮启动电机,逐渐沿顺时针方向旋转电位计以提高速度。闭环将在参考速度超过 0.1 倍基础转速 后开始。通过Data Inspector读取估计转速的实时信号。
操作视频链接:使用Simulink代码生成工具基于STM32开发板对永磁同步电机进行无感FOC_哔哩哔哩_bilibili