日期:20200211
作者:LJL
参考文档:DMC MATH
(文档地址:C:\ti\controlSUITE\libs\app_libs\motor_control\math_blocks\v4.1~Docs)
参考源码:smopos.h,smopos_const.h
(代码地址:C:\ti\controlSUITE\libs\app_libs\motor_control\math_blocks\v4.1)
1、 技术背景
永磁同步电机与直流无刷电机的区别在于两者的反电动势。无刷直流电机通常情况下转子磁极采用瓦型磁钢,经过磁路设计,可以获得梯形波的气隙磁密,定子绕组多采用集中整距绕组,因此感应反电动势也是梯形波的;通常说的永磁同步电动机具有定子三相分布绕组和永磁转子,在磁路结构和绕组分布上保证感应电动势波形为正弦,外加的定子电压和电流也应为正弦波,一般靠交流变压变频器提供。
对于永磁同步电机的控制,为了获得最大转矩,提高效率,目前主流的控制方法是采用空间矢量控制方法,产生三相正弦电流。在没有位置传感器的情况下,需要设计一种观测方法获得电机转子的位置。经过研究发现,现阶段常用的一种位置观测方法是,根据电机运行时的电流反馈和电机αβ的反电动势估计,估算出电机转子的当前角度位置,也就是滑模观测器。
假设电机模型如下图所示。

首先在两相静止坐标系下重写电机电压方程。

对电压方程进行改写,将微分项移到左边,得到如下表达式:

其中s表示αβ的向量,A为-R/L I,B为-1/L I,其中I为22的单位矩阵。*
设计滑模控制器,采用一种bang-bang控制,也就是根据αβ的电流估计值与实际电流在αβ坐标系下的解算值之间的误差量,计算控制量输出。滑膜观测器的数学表达式可以写为如下形式。

上式中,除Z(控制器输出的控制量)之外,所有变量均为估计值,输出量就是判断电流估计误差值得符号,确定输出控制量的正负号,也就是在两个模态之间滑动的状态。将上面式子求解微分方程并进行离散化,可以得到如下的表示结果。

其中,F与G的结果分别为:

注:e^(-R/L Ts)是根据严格的微分方程求解的得到的结果值,当采样时间间隔足够小时,可以对求解结果采用迈克劳林展开的形式,得到简化结果1-R/L Ts,其中Ts为采样时间间隔。在TI源代码中,这部分采用的是指数函数形式,在初始化时执行一遍,以后计算利用初始化计算的结果值。
滑模观测器的输出包含高频谐波信号,直接采用该信号会导致计算结果偏差较大,因此对该信号设计低通滤波器,采用滤波结果计算电机转子位置估算值。
考虑一阶低通滤波器如下图所示。


输入电压与输出电压之间的关系可以表示为:
e_x=RC (de_y)/dt+e_y
将上式写成差分方程的形式,则可以表示为:
y(n+1)=y(n)+k*(x(n)-y(n))
其中k为Ts/RC
将反电动势与滑模观测器输出带入上式,可以得到滤波后的反电动势,带入反正切函数,即可得到电机转子位置的估计值。
θ=arctan⁡(e_α/e_β )
将上述计算电角度值带入闭环控制系统,计算电压矢量。
2、 程序解析
了解上述技术背景知识后,分析TI源代码无感电机控制程序。
在程序初始化时,首先计算滑模观测器的两个固定参数F和G,代码如下:

```   v.Fsmopos = exp((-v.Rs/v.Ls)*(v.Ts));              \v.Gsmopos = (v.Vb/v.Ib)*(1/v.Rs)*(1-v.Fsmopos);

v.Vb为电压基准值,在这里可以设置为母线电压,v.Ib为电流基准值,可以设置为电流环的输出最大值。
然后进入定时控制中断,首先使用开环的方式驱使电机运行,同时估算电机转子位置。

 /*  Sliding mode current observer   */                                                              \v.EstIalpha = _IQmpy(v.Fsmopos,v.EstIalpha) + _IQmpy(v.Gsmopos,(v.Valpha-v.Ealpha-v.Zalpha));        \v.EstIbeta  = _IQmpy(v.Fsmopos,v.EstIbeta)  + _IQmpy(v.Gsmopos,(v.Vbeta -v.Ebeta -v.Zbeta ));        \\/*    Current errors  */                                                                              \v.IalphaError = v.EstIalpha - v.Ialpha;                                                               \v.IbetaError  = v.EstIbeta  - v.Ibeta;                                                                \\/*  Sliding control calculator    */                                                                  \/* v.Zalpha=v.IalphaError*v.Kslide/v.E0) where E0=0.5 here*/                                     \v.Zalpha = _IQmpy(_IQsat(v.IalphaError,v.E0,-v.E0),_IQmpy2(v.Kslide));                                \v.Zbeta  = _IQmpy(_IQsat(v.IbetaError ,v.E0,-v.E0),_IQmpy2(v.Kslide));                                \\/*    Sliding control filter -> back EMF calculator    */                                              \v.Ealpha = v.Ealpha + _IQmpy(v.Kslf,(v.Zalpha-v.Ealpha));                                            \v.Ebeta  = v.Ebeta  + _IQmpy(v.Kslf,(v.Zbeta -v.Ebeta));                                         \\/*    Rotor angle calculator -> Theta = atan(-Ealpha,Ebeta)   */                                      \v.Theta = _IQatan2PU(-v.Ealpha,v.Ebeta);

第42、43行计算两相静止坐标系下的电流估计值,参考公式

第46与47行计算电流的估计误差,采用电流估计值与电流实际值作差计算。
第51行与52行为滑模观测器控制量计算。其中v.E0为bang-bang控制的上下边界值,v.Kslide为滑模控制增益值。
第55和56行对控制量进行滤波处理,参考上述一阶低通滤波的差分方程,v.Kslf为滤波方程的增益系数。。
第59行为对滤波输出结果经过反正切求解,得到电机电角度估算值。
注意:_IQtan2PU为IQmath库的反正切求解函数,其输出结果为0-1,表示角度为0-2pi。atan2函数,即所谓的四象限反正切函数,其本质就是运用极坐标来实现对角度的计算,相比于atan函数的取值范围(-pi/2, pi/2),atan2函数的取值范围为(-pi, pi],该函数之所以称之为四象限反正切函数,是因为它能够区分四个象限,而atan函数是无法区分象限的。
由于反电动势经过低通滤波,角度估算结果必然存在相位差,需要认为进行相位补偿。根据低通滤波相位滞后特性,相位值为:
θ=arctan⁡(ω_e/ω_c )
其中,ω_e为电机运行估算电角度转速,ω_c为低通滤波器的截止频率。
将上述计算结果与滑模观测器反正切计算结果相加,即为滑模观测器的角度估算值。

三相永磁同步电机无感滑模观测控制TI源代码解析相关推荐

  1. 全阶滑模观测器程序_基于扩张状态观测器的永磁同步电机全阶滑模变结构位置伺服控制方法...

    基于扩张状态观测器的永磁同步电机全阶滑模变结构位置伺服控制方法 [技术领域] [0001] 本发明涉及一种永磁同步电机全阶滑模变结构位置伺服控制方法,特别是系统部 分状态和非线性不确定项上界均未知的永 ...

  2. 基于脉振高频电流注入的永磁同步电机无感FOC

    基于脉振高频电流注入的永磁同步电机无感FOC 1.采用脉振高频电流注入法实现零低速下无感起动运行,相比电压注入法可以省去电流反馈中的两个低通滤波器: 2.相比高频电压注入,估计系统的稳定性不受电机定子 ...

  3. 基于脉振高频电压注入的永磁同步电机无感FOC

    基于脉振高频电压注入的永磁同步电机无感FOC 1.带转子初始位置检测,包括极性判断,可实现任意初始位置下的无感起动运行: 2.可实现带载起动和突加负载运行: 提供算法对应的参考文献和仿真模型,支持技术 ...

  4. 基于ESO的永磁同步电机无感FOC 采用线性扩张状态观测器(LESO)估计电机反电势,利用锁相环从反电势中提取位置和转速信息

    基于ESO的永磁同步电机无感FOC 1.采用线性扩张状态观测器(LESO)估计电机反电势,利用锁相环从反电势中提取位置和转速信息,从而实现无位置传感器控制: 2.提供算法对应的参考文献和仿真模型. 购 ...

  5. 基于高频方波电压注入的永磁同步电机无感FOC 采用方波电压注入,减少了提取dq轴基频电流时LPF的使用

    基于高频方波电压注入的永磁同步电机无感FOC 1.采用方波电压注入,减少了提取dq轴基频电流时LPF的使用,提高了系统的动态性能: 2.可实现带载起动和突加负载运行: 提供算法对应的参考文献和仿真模型 ...

  6. 永磁同步电机无感foc 磁链观测器 位置估算源码 正弦波控制方案

    永磁同步电机无感foc 磁链观测器 位置估算源码 正弦波控制方案 直流无刷电机无感foc源码,无感foc算法源码 1. 速度估算位置估算的代码所使用变量全部用实际值单位,能非常直观的了解无感控制电机模 ...

  7. 电机马达带负载转矩前馈补偿的永磁同步电机无感FOC 采用龙伯格负载转矩观测器,可快速准确观测到负载转矩

    电机马达带负载转矩前馈补偿的永磁同步电机无感FOC 1.采用龙伯格负载转矩观测器,可快速准确观测到负载转矩: 2.将观测到的负载转矩用作前馈补偿,可提高系统抗负载扰动能力: 提供算法对应的参考文献和仿 ...

  8. 基于龙贝格观测器的永磁同步电机无感FOC 采用龙伯格观测器提取电机反电势,使用PLL从反电势中获得转子位置和速度信息

    基于龙贝格观测器的永磁同步电机无感FOC 1.采用龙伯格观测器提取电机反电势,使用PLL从反电势中获得转子位置和速度信息. 2.提供算法对应的参考文献和仿真模型,支持技术解答. 仿真模型纯手工搭建. ...

  9. PMSM永磁同步电机控制类仿真 三相永磁同步电机模型 1、直接转矩控制DTC 2、矢量控制FOC

    PMSM永磁同步电机控制类仿真 三相永磁同步电机模型 1.直接转矩控制DTC 2.矢量控制FOC 3.无位置控制 4.滑膜控制 #Matlab/simulink ID:7510067799948960 ...

最新文章

  1. [译] ASP.NET 生命周期 – ASP.NET 上下文对象(六)
  2. 30秒的PHP代码片段(2)数学 - Math
  3. linux下挂载windows目录
  4. python输出数据到excel-使用python将大量数据导出到Excel中的小技巧分享
  5. 用JS解决图片太大,把网站撑变形的问题
  6. 斯坦福大学深度学习与自然语言处理第一讲:引言
  7. 轻松搞懂sscanf和sprintf
  8. C++之‘malloc’ was not declared in this scope和invalid conversion from ‘void*’ to ‘char*’
  9. [css] 使用css如何设置背景虚化?
  10. kodi android 目录,Kodi添加本机和电脑上的电影视频、音乐、图片目录教程
  11. 微信小程序地图生态概述
  12. ubuntu 查找opencv安装路径_ubuntu 查找opencv安装路径_Ubuntu安装opencv详细步骤
  13. 一定是h的方式不对阅读_41章_[黑篮]一定是H的方式不对!_七零小说网
  14. PT1000 电桥测温
  15. 常用文件的mime和mimetype的对应关系
  16. 人工智能编程语言介绍
  17. 计算机硬件设备介绍 ppt,计算机硬件设备的认识课件.ppt
  18. 什么是 FOUC(无样式内容闪烁)?你如何来避免 FOUC?
  19. 大疆创新 java面试_如何成功应聘大疆创新科技?
  20. java javaw javaws MC_java和 javaw 及 javaws的区别解析

热门文章

  1. user agent查询(iPhone/ Android/ iPad/ Windows Phone/ Macintosh)
  2. 解救人质 DFS简单模板
  3. java 面试 sql_sql 面试问题
  4. 6230实现调频收音机录音设置为手机铃声
  5. 旺宏指控东芝闪存专利侵权 或影响东芝出售半导体事业
  6. 工作回报如何影响人的生产力_如何在家工作时保持生产力
  7. CAP三缺一:不能同时存在
  8. win10记事本编写html没反应,Win10记事本编辑时无响应假死怎么办
  9. 应急管理厅- 应急通讯指挥车通讯链路测试解决方案
  10. 武器装备自动测试(ATE)系统设计要点