STM32G4 速度环开环,电流环闭环 IF模式建模

目录

一、STM32G4 速度环开环,电流环闭环 IF模式建模

1 IF模式建模

  • IF模式是速度环开环,电流环闭环的模式来启动电机,在上一章电流环仿真的模型中我们已经建立起了电流环的闭环模型,而模型中的theta角度来自电机输出的角度,然而在实际的电机系统中没有这样的角度可以输出,故在IF模式下我们需要自己来生成这样的角度。
  1. 增加点击角度生成模块;电机的角度等于速度的积分,电机的速度来自于加速度的积分;加速度等于开环速度除以开环时间;

  2. 将该部分算法封装为子系统,并命名为ThetaGenerator;

  3. 在模块中增加q轴的输入和输出参考电流

  4. 由于IF启动需要从0速度慢慢拉起,其存在几个启动状态的切换,故需要使用simulink中的Chart(stateflow)模块;

  5. IF启动分为转子初定位,开环拉起,且速度闭环几个状态,由于目前没有学到速度环,再切速度闭环状态过程中给一个开环固定速度让电机旋转;在Chart模块中插入状态和默认转移模块,搭建如下状态机;

    其中各状态之间的切换条件在默认转移线上有定义;Motor_Onoff为状态机输入的启动电机命令,Motor_State为状态机输出的状态,一共四个状态;[Motor_OnOff ==1]表示当 Motor_OnOff 为1时,切换到下一个状态;[after(1000,tick)]表示当该状态在 1000 个计数周期后切换至下一个状态;

  6. 使用 Switch Case 以及 If Action Subsystem 模块来判断在不同状态下执行对应的内容,状态

    机输出4个状态,则需要建立对应的4种状态下的执行系统;

  7. 状态一为空闲状态,此时输出的电机角度和q轴参考电流应该为0,在case1中建立如下部分

  8. 状态二为转子角度对齐阶段,我们需要将转子角度对齐到0度,此时输出的theta角度需要为0,q轴的参考电流有给一个能够驱动电机转动的电流,此处给1;

  9. 状态三为电机开环拉起状态,我们将之前建立的ThetaGenerator模块内部的内容复制到case3中;

  10. 在状态四我们只要将电机的转速进行积分就可以获得电机的转子角度,在case4中建立以下部分;

  11. 整个状态机模型建立完毕之后,将开环速度设置为800rpm/min;开环时间为3s,与状态机的[after(30000,tick)]相对应(30000*1e-4);开环拉起阶段以及运行阶段的参考电流设置为1,使用Merge模块,将四个状态的theta和q轴电流组合输出;

  12. 将状态机输出的theta和q轴电流参考值作为电流环的输入,外部增加MotorOnOff的输入为1

    13.电机仿真按钮,查看电机的速度值和三相电流值

  • 通过上图可以看出转速从0上升到800后,在800上下波动,三相电流也存在波动,这是由于给定的q轴电流参考值与实际负载不匹配导致
  • 总体上看,电机从开环被拉到期望的开环转速,实现了这个实验的目的。

附学习参考网址

  1. STM32G4 FOC开发实战

欢迎大家有问题评论交流 (* ^ ω ^)

相关推荐
范纹杉想快点毕业5 分钟前
STM32百问百答:从硬件到软件全面解析
单片机·嵌入式硬件
笨鸟笃行32 分钟前
百日挑战——单词篇(第十六天)
学习
三品吉他手会点灯1 小时前
STM32F103学习笔记-16-RCC(第3节)-使用HSE配置系统时钟并使用MCO输出监控系统时钟
c语言·笔记·stm32·单片机·嵌入式硬件·学习
摇滚侠1 小时前
Vue 项目实战《尚医通》,医院详情菜单与子路由,笔记17
前端·vue.js·笔记
CarmenHu1 小时前
IBM RAG挑战赛冠军方案学习笔记
笔记·学习
赶飞机偏偏下雨1 小时前
【MySQL笔记】索引 (非常重要)
笔记
朱嘉鼎1 小时前
GPIO中断编程
单片机·嵌入式硬件
小叮当⇔1 小时前
树莓派4B使用指南
学习·树莓派
straw_hat.1 小时前
32HAL——万年历
stm32·单片机·学习
snakecy2 小时前
二叉树、动态规划与链表学习
学习·链表·动态规划