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

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

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=[LsR00LsR],将其拆成两个式子为:
在这里插入图片描述
  将其离散化得:
在这里插入图片描述
  其中 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/LsTs),B=(1A)/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

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猫爪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值