最近在做一些电机控制代码生成的相关学习,记录一些学习心得和成果

目录

模型简介

运行仿真

代码生成与集成

开发板运行演示


模型简介

1. 如图,模型分为离散和连续两部分,电机系统是连续域,控制算法部分是离散的,需要把变量转为离散变量,如下C/D模块需要把被控系统的数据类型和采样率进行连接,输入到控制算法模型

2.  如图为算法模型,不同的模块执行频率是不一样的,和我们在嵌入式开发的思想一样,有些运算不需要实时性很高,就放在不同的任务周期里面,如下: 功率计算和状态机放到10ms一次,速度环放到2ms一次,FOC和角度计算放到100us也就是PWM的开关周期,对就单片机就是放在ADC中断里面,而ADC又是以PWM的开关周期来触发的,这样就可以减少开关周期里面执行的代码。

3.  下图是脉振高频注入状态控制模块,关于脉振高频注入原理的文档和论文网上有很多,这里就不细说了。高频注入的启动过程为:初始位置检测(电机静止)>NS极检测(电机静止)>角度估算(电机运动)>高速无感控制,如下图通过stateflow来实现各个状态的切换分别为IPD,NS,HFI模块

4. 为了方便实际电机和板子角度估算的验证,同样也增加霍尔计算电机角度和速度的模块,如下

运行仿真

1.  设定目标转速1000RPM如下图,分别是电机的实际角度,相电流,速度响应

 2. 角度对比,如下蓝色是霍尔得到的角度,黄色是HFI得到的角度,电机设置的初始角度是0,可以看到初始角度是2Pi, 系统的角度是0-2pi,因此2pi等效是0,霍尔低速时估算角度不准,可以看到霍尔初始角不平滑,我们可以对比上图,得到的HFI的角度仿真和实际基本一致

代码生成与集成

1. 生成代码

生成代码的步骤有很多,这里我们生成嵌入式的C代码得到如下

自定义的观测量和标定量,在实际的调试中,我们需要去更改某些变量,达到我们的控制效果,我们可以生成如下所示的观测量和标定量。

2. 软件集成

这里我们已经配置好了相应的底层,主控芯片是STM32F401,集成好后如下:

开发板运行演示

这是一个24V的小电机,电机参数大致如下 ,运行效果:

脉振高频注入,STM32自动代码生成_哔哩哔哩_bilibili

STM32 Simulink 自动代码生成电机控制——脉振高频注入相关推荐

  1. STM32 Simulink 自动代码生成电机控制——DTC控制仿真到代码生成

    目录 传统DTC控制仿真 1. DTC简单介绍 2. 传统DTC仿真模型 3. DTC仿真效果 改进DTC SVPWM控制仿真 1. SVPWM替换查表 2. 无传感磁链估算 改进后的DTC控制仿真 ...

  2. STM32 Simulink 自动代码生成电机控制:基于反电动势观测器的锁相环设计

    目录 锁相环设计 参数设计 总结 锁相环设计 全阶滑模的锁相环和前面的非线性磁链观测器锁相环原理类似,同样反正切函数计算方法包含除法运算,尤其是当反电动势观测值过零时,转子位置观测误差会进一步放大,这 ...

  3. Simulink 自动代码生成电机控制:非线性磁链观测器

    目录 电机方程 电压方程 磁链方程 定义状态变量和输出变量 非线性观测器方程 电角度的计算--锁相环 锁相环调参 电机方程 电压方程 磁链方程 定义状态变量和输出变量 非线性观测器方程 在对反电势进行 ...

  4. Simulink 自动代码生成电机控制:自动定点化Fixed-Point Tool 使用

    目录 1. 定点化前模型准备及注意事项 2.定点化步骤 3.生成代码 1. 定点化前模型准备及注意事项 1)模型参数设置 创建两组完全一样的电机参数,一组是浮点数放到电机模型里面,一组是算法的参数,由 ...

  5. 改进型脉振高频注入源码 stm32工程 脉振高频注入是一种通过在d轴注入正弦电压

    改进型脉振高频注入源码 stm32工程 脉振高频注入是一种通过在d轴注入正弦电压,通过电机的凸极效应(饱和凸极效应)估算同步电机转子位置的方法. 不需要电机旋转即可获得电机转子位置,能够实现0速带载. ...

  6. 该模型为PMSM的脉振高频注入法识别电机在低速下的位置,注入d轴,信号进在q轴进行幅值调制经LPF得到转子误差信号

    该模型为PMSM的脉振高频注入法识别电机在低速下的位置,注入d轴,信号进在q轴进行幅值调制经LPF得到转子误差信号,经过PLL得到电机的转子位置. 附带参考文献. ID:691786767712953 ...

  7. 磁同步电机(pmsm,无位置传感器控制(扩张状态观测器,超螺旋滑模,扩展卡尔曼滤波) 脉振高频注入(有方波和正弦两种)仿真模型。

    永磁同步电机参数辨识模型,在线辨识,离线辨 机械参数在线离线,电气参数在线离线. 永磁同步电机模型预测控制仿真模型,有三矢量,双矢量,占空比矢量三种,效果不错 算法采用定步长实现,效果很好,三矢量效果 ...

  8. 永磁同步电机无速度传感器控制(二)——脉振高频注入法(一)【位置估计原理】

    1.高频注入法 前面已经讲过了一种无速度传感器实现方法--滑模观测器法.在开始一个新的位置估计策略之前,我们先聊一聊这个方法本身的特点.从前面对滑模的讲述可知,滑模观测器法是通过构造一个滑模面,然后设 ...

  9. 一文弄通STM32F103基于simulink自动代码生成CAN/USART/GPIO/TIM(stm32cubemx+stm32target+matlab2018b)

    一文弄通STM32F103基于simulink自动代码生成CAN/USART/GPIO/TIM(stm32cubemx+stm32target+matlab2018b) 写在前面 1.stm32cub ...

  10. Simulink自动代码生成:生成代码的基本设置

      Simulink自动代码生成也被称作基于模型开发(BMD),相比于传统的手写代码方式能够尽量减少人为错误.模型本身可以用于仿真,单元测试等,更便于提前发现逻辑错误.同时只要约定好模型接口,就可以多 ...

最新文章

  1. linux ip rcv处理,linux ip选项处理(二)
  2. Unity -- 入门教程三
  3. 前端:JS字符串操作函数类库
  4. 2020年书法落款_快来排排2020鼠年书法落款时间表,收!
  5. 使用过滤器实现网站访问计数器的功能
  6. Java fluent风格
  7. 03.SpringBoot入门案例及详解
  8. 机器学习的1000+篇文章总结
  9. 《统计学习方法》python代码资料
  10. android启用hdcp_如何在Android Auto上启用开发人员设置
  11. stm32毕业设计 单片机指纹识别考勤系统
  12. SpringDataRedis事务 专题------转载
  13. Symbol类型详解
  14. Python爬虫随笔
  15. java二进制保存图片_Java中如何把图片转换成二进制流
  16. 大一新生必看,自学必看,里昂详解数据结构之队列
  17. SQL Prompt 4试用
  18. 计算机网络——物理层和信道复用(频分、时分、码分)技术
  19. Docker容器化技术
  20. C++经验:做题技巧、思路

热门文章

  1. 概率论考点之排列与组合
  2. 数字转为人民币大写汉字输出(大力看了都喊nb的详细教程)
  3. mysql表名大小写设置
  4. 【论文阅读】Are We Ready For Learned Cardinality Estimation?
  5. 喜欢是可以培养的,学习也是
  6. AI从零开始之我们为什么要为了那个虚无缥缈的f而奋斗
  7. 千姿百态项目经理2——“缥缈”项目经理
  8. 健全营销体制是打造营销生态系统的命脉
  9. python——t检验和ks检验
  10. DC-DC隔离电源模块与非隔离电源模块有什么区别?