小猫爪:PMSM之FOC控制11-基于SMO实现FOC无传感器双闭环

  • 1 前言
  • 2 仿真搭建
    • 2.1 观测器
    • 2.2 反正切
    • 2.3 仿真结果
  • 3 移植验证
  • END

1 前言

  在前面的文章中,已经将SMO的架构全部搭建起来了,接下来就是使用Matlab将其实现。

2 仿真搭建

2.1 观测器

  首先列出之前搭建的仿真器模型如下:

  其中A=[−RLs00−RLs]A=[\begin{matrix} -\frac{R}{L_s} & 0 \\ 0 & -\frac{R}{L_s} \\ \end{matrix}]A=[−Ls​R​0​0−Ls​R​​],将其拆成两个式子为:

  将其离散化得:

  其中A=exp(−R/LsTs),B=(1−A)/RA=exp(-R/L_sT_s), B=(1-A)/RA=exp(−R/Ls​Ts​),B=(1−A)/R,TsT_sTs​为采样周期。注:别问怎么算出来的,问就是不知道

  离散化后的SMO的本质其实是这样的:

  将其搭建成仿真后其中iαi_\alphaiα​部分如下:

2.2 反正切

  EαE_\alphaEα​和EβE_\betaEβ​得到后就可以使用反正切求得θ\thetaθ了,但是这里存在一个问题,之前就说过EαE_\alphaEα​和EβE_\betaEβ​其实就是zαz_\alphazα​和zβz_\betazβ​进行滤波得到得,所以会存在一个相位延迟,而这个延迟会很大程度上影响估算θ\thetaθ的准确性,所以需要在反正切的结果上加上一个角度补偿来弥补这个相位延迟,即:

  其中ωc\omega_cωc​为低通滤波器截至频率。为了获取转速信息,则可以对上式的θ\thetaθ进行微分,或者如果表贴士PMSM,则可以使用如下式子计算:

  根据上面的描述,最后搭建的反正切模型如下:

2.3 仿真结果

  foc_control如下:

  让电机系统处于有传感器的双闭环状态下,然后使用SMO观测在旁边观测,最后对比一下电机转子的真实θ\thetaθ和SMO估算出来θ\thetaθ,如下:

  可以发现估算出来的θ\thetaθ与电机真实θ\thetaθ非常接近,这代表算法成功了。

3 移植验证

  将算法移植到MCU中,首先让电机运行在电流闭环下,然后用SMO预测电机角度,如下:

  可以看到估算出的θ\thetaθ非常不好,这里只要有两个原因,第一就是现在还没有实现速度闭环,所以目前的电流很不稳定,再加上现在的电流也和目前电机的速度不匹配,预估的结果非常不好。接下来我们就要加上速度环,实现双闭环,再看看SMO的表现。

  下图则是加入速度环的SMO的波形,此时FOC的θ\thetaθ已经是由SMO估算出来的。

  再来看看调速性能:

  至此,使用SMO已经可以让电机转起来了。

  下面贴上我的测试代码:

END

小猫爪:PMSM之FOC控制11-基于SMO实现FOC无传感器双闭环相关推荐

  1. 小猫爪:PMSM之FOC控制14-基于EKF实现FOC无传感器双闭环

    小猫爪:PMSM之FOC控制14-基于EKF实现FOC无传感器双闭环 1 前言 2 仿真搭建 3 移植 END 1 前言   前面文章中,已经将扩展卡尔曼观测器搭建起来了,这一节就是将扩展卡尔曼实现. ...

  2. 基于stm32的位置和速度双闭环PID直流电机控制

    基于stm32的位置和速度双闭环PID直流电机控制 为什么要用双闭环PID算法? 如何将位置环和速度环一起使用? 程序部分代码 为什么要用双闭环PID算法? 在PID算法中,我们如果只是使用单个闭环P ...

  3. PMSM无感foc控制(传统SMO)学习笔记

    永磁同步电机无感控制学习 一.永磁同步电机无感控制主要方法概述 (一)基于永磁同步电机基本磁链关系的转速和位置估算方法 1.直接计算方法 可直接检测的量是定了三相电压和电流,利用它们计算出转了位置角和 ...

  4. 小猫爪:PMSM之FOC控制00-专题简介

    小猫爪:PMSM之FOC控制00-专题简介 1. 前言 2. 内容目录 END 1. 前言   大家好,思虑再三,在下准备把自己对FOC的毕生所学整理一下,然后以笔记的形式分享给大家.本专题适合那种对 ...

  5. dsp28335电机控制板资料 永磁同步电机有传感器三闭环foc控制

    dsp28335电机控制板资料 1.永磁同步电机有传感器三闭环foc控制 2.永磁同步电机无传感器双闭环foc控制 3.无刷直流电机有传感器方波控制 4.异步电机V/F变频调速控制 5.电机状态量曲线 ...

  6. 无传感器BLDC和FOC堵转检测方法

    基于S12ZVM的车用无传感器BLDC堵转检测方法探讨 介绍了车用无传感器BLDC堵转检测的重要性以及实现的方法,分别讲述了六步方波堵转检测以及FOC正弦波堵转检测的方法.重点介绍了基于S12ZVM的 ...

  7. matlab证明系统可逆性,基于MATLAB的双闭环可逆直流调速系统的仿真研究_李威震...

    收稿日期:2004-03-18 第21卷第11期计算机仿真2004年11月 文章编号:1006-9348(2004)11-0042-03 基于MATLAB的双闭环可逆直流调速系统 的仿真研究 李威震, ...

  8. 小猫爪:PMSM之FOC控制15-MRAS法

    小猫爪:PMSM之FOC控制15-MRAS法 1 前言 2 MRAS简介 3 可调模型和自适应机构 4 仿真搭建 END 1 前言   这篇文章来简单的介绍一下模型自适应法(Model Referen ...

  9. 小猫爪:PMSM之FOC控制08-状态观测器的引入

    小猫爪:PMSM之FOC控制08-状态观测器的引入 1 前言 2 状态观测器的原理 2 状态观测器的完善 END 1 前言   在前面已经实现了电机的双闭环了,不过唯一美中不足的就是需要使用传感器去获 ...

最新文章

  1. Mac 上使用 Clion 阅读C++源码的一些操作
  2. 转录组测序和RNA-seq
  3. mysql 数据文件压缩,压缩MySQL数据文件的妙招
  4. Visual C++ 2010中更换MFC对话框默认图标
  5. python工程师薪资坑吗-6年Python开发工程师精心总结学习思路,再不看看就凉了...
  6. Python: generator, yield, yield from 详解
  7. VScode PowerShell运行脚本报错禁止运行脚本解决方式图文
  8. MyFlash——美团点评的开源MySQL闪回工具
  9. 开发黑名单功能demo_中台实践:通用化黑名单平台
  10. Arturia V Collection 8 for mac - Arturia系列合成器插件大合集
  11. 后缀树后缀数组LCP
  12. 量化投资学习——多因子权重组合优化问题
  13. BZOJ3689: 异或之
  14. epoll的LT模式(水平触发)和ET模式(边沿触发)
  15. 易班开发者大会总结;
  16. 【万恶之源~10大经典表情包出处】
  17. java duplicate key_java.lang.IllegalStateException: Duplicate key 1
  18. Win10镜像下载之后怎么安装系统
  19. 智能暖风机——2.嵌入式系统创建
  20. 问题与解决_IDEA-> Project Structure -> Artifacts-> ‘项目名‘ module: ‘Web‘ facet resources 显示红色

热门文章

  1. 【Linux脚本-sed命令在文本首行和尾行插入空行】
  2. 两个地址之间的距离测量(使用高德API)
  3. java单例模式_无名小仙男
  4. ZIGBEE学习之---ZSTACK1.4.3修改密钥(CC2430)
  5. QML窗口最大化、最小化、无边框
  6. CTFshow_终极考核_个人WP
  7. Trx-address和交易的address
  8. 正则化最小二乘法——神经网络与机器学习笔记2
  9. java: 找不到符号或者包 (eg.程序包org.neo4j.ogm.annotation不存在)
  10. CreateJS 入门小记