总结前面文章,将总体无感FOC代码生成归纳为以下步骤;
点击MCU选择,
进入如下界面,根据MCU型号选择。
以母线电压为24V供电系统为例,最低电压设为12V,最高电压设为36V,额定电压设为24V,电压范围为±50%
根据设计的电路原理图填入下列参数,一般为串联电阻分压结构。
同样根据电机参数表,首先选择电机类型,分为表贴式电机和内置式电机。然后是极对数、额定转速、额定电流、母线电压、定子相电阻、定子相电感、反电动势系数,依次填入即可。
设置电流采样方式,在前面文章已有讲解关于采样电阻和增益倍数的计算,(STM32电机库(ST-MC-Workbench)学习记录——电流采样参数设置),在此不再赘述。
因为采用的是无感FOC,所以选择 Observer + Cordic 模式(滑模反正切方式) ,观测器增益一般软件会给一个默认值,后面根据电机实际情况调试。
PWM部分:由于不同硬件回路对应的I/O口不一样,即使实现功能相同,也需要按照特定回路分配。例如下图的原理图,PWM123456分别对应 PA8 PA9 PA10 PB13 PB14 PB15
因此I/O分配界面如下图分配,BKIN我推测是停止信号
电流采样I/O口分配:
点击电流采样模块分配界面,
进入到电流采样周期分配和I/O分配界面,因为STM32芯片的采样端口都是固定的,所以在此选项卡内设定。采样时间设为143ns,可以更改。
原理图里面采样部分是M_IA、M_IB、M_IC,这三个关角分别对应PA6\PA7\PC4,因此进行如下分配。
串口部分:
经过人机交互按钮进入,取消按键,用上位机操作即可,然后打开串口功能。
然后与原理图对应,TX对应PB6,RX对应PB7。
由于用的是无感FOC,用的是观测器,所以这个地方没有用到hall检测端口,因此也不涉及I/O口的分配问题。
I/O检测:
左边是I/O总体分配,其界面如下,点击I/Ocheck,防止I/O分配错误。完成后显示check ok。
代码生成:这里代码生成前,需要安装STM32CubeMx,安装什么版本就选择什么版本,这个可以在ST官网直接搜索下载。第二个下拉条是keil软件的版本,我用的是V5就选择V5,后面按照图示选择即可。
点击如下按钮
进入调试界面,点击连接串口。然后就可以调试了。右侧有START 和 STOP, 灰色表盘内红点可以用鼠标拖动,控制实时转速。
下图是一个我的点击启动和实时控制转速的波形结果。
永磁同步电机矢量控制到无速度传感器控制学习教程(PMSM)(一)
无刷直流电动机矢量控制(一)——无刷直流电机(BLDC)与永磁同步电机(PMSM)的相同点和区别
无刷直流电动机矢量控制(二)——无刷直流电机的工作原理及其内部结构
无刷直流电动机矢量控制(三)——位置检测和换相
无刷直流电动机矢量控制(四)——simulink仿真搭建(让电机动起来)
无刷直流电动机矢量控制(五)——开环调速原理(方波形式)
STM32电机库(ST-MC-Workbench)学习记录——电机参数及传感器设置
STM32电机库(ST-MC-Workbench)学习记录——电流采样部分
STM32电机库(ST-MC-Workbench)学习记录——电流采样参数设置
STM32电机库(ST-MC-Workbench)学习记录——无感FOC代码生成