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开发实战

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

相关推荐
Waay11 小时前
面试口述版:个人对 Prometheus 完整理解
运维·学习·云原生·面试·职场和发展·kubernetes·prometheus
一楼的猫13 小时前
AI写作合规技术方案:平台检测机制分析与规避策略
人工智能·学习·机器学习·ai写作
wuyk55514 小时前
24. C 语言模块化:不是拆几个.c 文件那么简单
c语言·开发语言·stm32·单片机
四月天4314 小时前
web安全-SSTI(服务器模板注入)
笔记·学习·web安全·网络安全
☆cwlulu15 小时前
调试排查工具介绍(gdb、strace、Valgrind等)
开发语言·c++·嵌入式硬件·ubuntu
网络与设备以及操作系统学习使用者15 小时前
相对论核心原理详解
学习·深度优先
疯狂打码的少年15 小时前
【操作系统】虚拟存储管理(局部性原理、缺页中断)
笔记
NULL指向我16 小时前
TMS320F28379D笔记5:CAN通信多邮箱配置
笔记
lzqrzpt16 小时前
LED驱动电源选型标准与工程应用技术要点解析
python·单片机·嵌入式硬件·物联网