STM32G4 Simulink FOC开发实战--第四章:ST MCSDK快速启动电机

Bilibili视频配套视频:

HALL有感启动电机基于STMCSDK:

https://www.bilibili.com/video/BV1W14y1k7Ct/?spm_id_from=333.999.0.0&vd_source=eb375996b1aae493d63fe367f98b306c

无感启动电机基于STMCSDK:

https://www.bilibili.com/video/BV1QG41197AH/?spm_id_from=333.999.0.0&vd_source=eb375996b1aae493d63fe367f98b306c

电位器控制电机转速基于STMCSDK:

https://www.bilibili.com/video/BV1H34y1T7ZS/?spm_id_from=333.999.0.0&vd_source=eb375996b1aae493d63fe367f98b306c

1.BLDC霍尔MCSDK配置及代码生成 

1.1 ST MCSDK配置 

① 双击打开MotorControl Workbench 5.Y.4

② 新建工程:

③ 选择用户应用,用户板子,电压小于50V,点击OK:

 ④ 正常工作电压修改为24V,我们使用24V电源适配器供电:

 

⑤ 选择MCU型号及时钟频率,先选择外部8M时钟,后续在CUBEMX再修改:

⑥ 配置电机参数及霍尔传感器参数:

 ⑦ 速度传感器选择HALL传感器:

⑧ 根据原理图来配置各个数字IO:

⑨ 配置电流采样部分,三电阻采样,修改采样电阻大小,取消amp on board,此处不配置运放增益,在后续analog部分配置:

 ⑩配置MCU模拟部分输入:

11基于原理图配置输入电压检测,取消温度传感器和过流保护,过流保护由软件保护:

 12配置电流环及速度环KPKI参数:

13点击生成代码 ,将工程保存后点击

 

14生成代码过程中,此类报错可忽略,原因时CUBEMX版本过低:

15生成代码,打开IOC文件修改时钟,然后点击生成代码: 

 1.2 实验现象

按以下图片接线,并将USB转UART模块连接至电脑:

①打开KEIL工程,使用stlink连接开发板SWD及UART,编译并下载代码;

 

②代码下载成功后,按下开发板RESET按键,打开SDK上位机 软件,打开UART,波特率设置115200,点击连接;点击开始,即可启动电机,或按下用户按键3也可启动电机;

 ③使用上位机的画图工具可以看到相应数据的波形:

 2.BLDC无感MCSDK配置及代码生成

① 无感配置需要将速度传感器配置无传感器模式:

 ②配置无感启动参数:

  • ③其他参数无需修改,点击生成代码,后续流程与霍尔传感器配置流程完全一样;

 3.使用电位器调节BLDC转速

基于第一小节的BLDC霍尔有感代码的基础上增加电位器的ADC采样;

1.增加电位器ADC采样相关变量;

 

2.设置采样通道及时间,注册规则组ADC采样;

3.在while循环中请求并执行ADC转换;采样值0-128转速对应-1100~-400;

采样值128-256对应转速400~1100;

 

3.1 实验现象 

按以下图片接线,并将USB转UART模块连接至电脑:

  1. 编译并下载代码,打开ST上位机,使用UART连接开发板,并启动电机;

  2. 使用螺丝刀,旋转电位器,可以看到速度会随着while循环中的代码逻辑发生改变;

4.使用CAN上位机调节BLDC转速 

基于第一小节的BLDC霍尔有感代码的基础上增加CAN通讯代码;

1.打开工程中的IOC文件,首先将系统时钟改为160M,修改为160M主要是为了方便计算波特率;

2.使能CANFD通讯;

3.配置仲裁段和数据段的分频系数跳转位宽,使能FIFO模式;

波特率:500k = 160M/20/(1+10+5)

4.使能中断;

5.点击生成代码 ,打开Keil工程;

 

6. 定义RX和TX数据及中间变量;

7.配置RX和TX数据帧类型,RX接收的ID范围;TX ID和数据长度等参数;

 

 

 8.在it.c文件中,在FDCAN中断里面,接收上位机发送的数据;

 

9.增加math及string头文件; 

10.定义速度、模式及方向等需要上传的变量;

11.在while循环中增加获取当前电机速度、方向、控制模式等函数;并将实时参数上传至上位机;同时接收上位机下发的电机启动、速度等指令;

12.编译并下带代码;

4.1 实验现象

 按以下图片接线,并将USB转UART及USBCAN模块连接至电脑:

1.打开ST上位机及PCAN上位机,并连接,CAN通讯速率500kbits;

 

 2.在发送数据栏中,发送该条数据即可启动电机,其中第0位为1并且第四位为1即可启动电机;第1位为1代表正向启动;第2及第三位代表速度,RxData[2]*256 + RxData[3];

3.观察ST上位机的速度,与我们期望参考速度一致 

4.修改第2及3位数据即可修改电机参考转速;将第0位为1并且第四位为0即可停止电机;

 

  • 23
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Simulink中的FOC(Field Oriented Control)电机模型是一种通过矢量控制技术实现的电机控制模型。该模型基于电机的磁场定向原理,将电机控制转化为控制电机磁场矢量的方向和大小,以实现对电机速度和转矩的精确控制。 FOC电机模型的结构包括电机模型、控制器和信号处理器三个主要部分。在电机模型中,使用PMSM(Permanent Magnet Synchronous Motor)电机模型或者IM(Induction Motor)电机模型来表示电机的动态特性。控制器部分包括速度环和电流环控制器,其中速度环控制器用于控制电机的速度,而电流环控制器用于控制电机的电流。信号处理器主要负责处理输入信号和输出信号之间的转换。 FOC电机模型的工作原理是将电机的三相电压转换为两个矢量信号:一个用于产生旋转磁场的矢量信号,另一个用于控制电机输出转矩的矢量信号。通过对这两个矢量信号进行控制,实现对电机的精确控制。 Simulink提供了丰富的FOC电机模型库,可以根据实际需求选择适合的模型进行建模和仿真。同时,Simulink还提供了强大的仿真和分析工具,可以对FOC电机模型进行性能评估和参数调整,以实现最佳的控制效果。 总而言之,SimulinkFOC电机模型是一种模拟和设计电机控制系统的强大工具,可以帮助工程师快速实现对电机的精确控制,并提高电机系统的性能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值