资讯详情

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

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

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

1 前言

??在前面的文章中,已经SMO所有的架构都建成了,接下来是使用Matlab将其实现。

2 仿真搭建

2.1 观测器

??首先列出以前构建的模拟器模型如下: 在这里插入图片描述 ??其中 A = [ ? R L s 0 0 ? R L s ] A=[\begin{matrix} -\frac{R}{L_s} & 0 \\ 0 & -\frac{R}{L_s} \\ \end{matrix}] A=[?LsR00?Ls​R​​],将其拆成两个式子为:   将其离散化得:   其中 A = e x p ( − R / L s T s ) , B = ( 1 − A ) / R A=exp(-R/L_sT_s), B=(1-A)/R A=exp(−R/Ls​Ts​),B=(1−A)/R, T s T_s Ts​为采样周期。

  离散化后的SMO的本质其实是这样的:   将其搭建成仿真后其中 i α i_\alpha iα​部分如下:

2.2 反正切

   E α E_\alpha Eα​和 E β E_\beta Eβ​得到后就可以使用反正切求得 θ \theta θ了,但是这里存在一个问题,之前就说过 E α E_\alpha Eα​和 E β E_\beta Eβ​其实就是 z α z_\alpha zα​和 z β z_\beta zβ​进行滤波得到得,所以会存在一个相位延迟,而这个延迟会很大程度上影响估算 θ \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

标签: 02ts传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司