【stm32无感FOC理论与实践:滑模观测器】【02 PLL】

目录

继续阅读前需要具备该文章基础:永磁同步电机无感FOC思路建立

上节推导得到了 α β \alpha\beta αβ轴反电动势,滑模观测器的任务实际上已经到此结束。本节的内容为如何从反电动势计算得到估计转子角度。

理解反电动势

反电动势是电机相线完全从电路中断开后,让电机被动拖动转起来,拿个万用表之类的仪器,测量得到两个电机线之间的电压。在同一个电机中,反电动势是完全与电路无关的,只和转子有关的量 ,得到反电动势就可以放心计算转子角度,我们上节推导得到的就是反电动势的估计值。体现在 α β \alpha\beta αβ轴坐标系的数学模型上,反电动势 e α e β = ω ψ f − sin ⁡ θ cos ⁡ θ \begin{bmatrix} e_\alpha \\ e_\beta \end{bmatrix} = \omega \psi_f \begin{bmatrix} -\sin\theta \\ \cos\theta \end{bmatrix} eαeβ=ωψf−sinθcosθ。体现在 d q dq dq轴坐标系的数学模型上, e d e q = 0 ω ψ f \begin{bmatrix} e_d \\ e_q \end{bmatrix} = \begin{bmatrix} 0 \\ \omega \psi_f \end{bmatrix} edeq=0ωψf

arctan

从 α β \alpha\beta αβ轴反电动势表达式可以看到,上节推导得到的反电动势真是太好用了,直接 α β \alpha\beta αβ轴做除法:
e α e β = − ω ψ f sin ⁡ θ ω ψ f cos ⁡ θ = − tan ⁡ θ \frac{e_\alpha}{e_\beta}=\frac{- \omega \psi_f\sin\theta}{ \omega \psi_f\cos\theta}=-\tan\theta eβeα=ωψfcosθ−ωψfsinθ=−tanθ

然后再做个arctan,转子角度 θ \theta θ就得到了。但是呢,这个方法本质属于开环方法, tan ⁡ θ \tan\theta tanθ非常容易受到分母 e β e_\beta eβ的噪声影响, 特别是 e β e_\beta eβ比较小的时候。实际代码工程实践中,其实不使用arctan方法。

PLL

在 d q dq dq轴坐标系的数学模型上, e d e q = 0 ω ψ f \begin{bmatrix} e_d \\ e_q \end{bmatrix} = \begin{bmatrix} 0 \\ \omega \psi_f \end{bmatrix} edeq=0ωψf,可以看到理想情况下,d轴反电动势应当是0,d轴反电动势不为0就说明估计转子角度不对,要提高或降低估计转速,让估计转子角度跟上或者慢一些。由此可以设计一个闭环控制环路,把 e d e_d ed作为环路误差输入,经过pid控制器(实际是pi控制器),把转速 ω \omega ω作为环路输出。

为啥环路不直接输出转子角度? 你可能会这样想:d轴反电动势不为0就说明估计转子角度不对,那直接增减估计转子角度不就可以了?这个想法不是错的,而是输出转速再进行积分得到转子角度是更好的方法。因为1:直接增减估计转子角度会慢半拍,可以认为增减转速积分得到的转子角度自带转速带来的惯性。2:直接输出速度,避免了角度求导带来的噪声问题。3:转子角度是0~360度,如果处理输出转子角度,要考虑周期性,而转速是线性值,更适合pid输出。

可以将 α β \alpha\beta αβ轴反电动势进行park变换得到 d q dq dq轴反电动势,此时使用估计转子角度进行park变换:

e d \^ e q \^ \] = \[ cos ⁡ θ \^ sin ⁡ θ \^ − sin ⁡ θ \^ cos ⁡ θ \^ \] \[ e α \^ e β \^ \] \\begin{bmatrix} \\hat{e_d} \\\\ \\hat{e_q} \\end{bmatrix}=\\begin{bmatrix} \\cos\\hat{\\theta} \& \\sin\\hat{\\theta} \\\\ -\\sin\\hat{\\theta} \& \\cos\\hat{\\theta} \\end{bmatrix}\\begin{bmatrix} \\hat{e_\\alpha} \\\\ \\hat{e_\\beta} \\end{bmatrix} \[ed\^eq\^\]=\[cosθ\^−sinθ\^sinθ\^cosθ\^\]\[eα\^eβ\^

上式右侧都是计算过程中得到估计值了,环路误差输入 e d ^ \hat{e_d} ed^已经得到,环路的输出 ω ^ \hat{\omega} ω^,以及积分后估计转子角度 θ ^ \hat{\theta} θ^也就得到了。

不过此处还有一个点可以关注一下,如果说右侧的估计值 e α ^ , e β ^ \hat{e_\alpha},\hat{e_\beta} eα^,eβ^已经很接近真实的 e α , e β e_\alpha,e_\beta eα,eβ了,我们代入真实 e α , e β e_\alpha,e_\beta eα,eβ展开看下:

e d \^ e q \^ \] = \[ cos ⁡ θ \^ sin ⁡ θ \^ − sin ⁡ θ \^ cos ⁡ θ \^ \] \[ e α e β \] = \[ cos ⁡ θ \^ sin ⁡ θ \^ − sin ⁡ θ \^ cos ⁡ θ \^ \] ∗ ω ψ f \[ − sin ⁡ θ cos ⁡ θ \] \\begin{bmatrix} \\hat{e_d} \\\\ \\hat{e_q} \\end{bmatrix}=\\begin{bmatrix} \\cos\\hat{\\theta} \& \\sin\\hat{\\theta} \\\\ -\\sin\\hat{\\theta} \& \\cos\\hat{\\theta} \\end{bmatrix}\\begin{bmatrix} e_\\alpha \\\\ e_\\beta \\end{bmatrix}=\\begin{bmatrix} \\cos\\hat{\\theta} \& \\sin\\hat{\\theta} \\\\ -\\sin\\hat{\\theta} \& \\cos\\hat{\\theta} \\end{bmatrix}\*\\omega \\psi_f \\begin{bmatrix} -\\sin\\theta \\\\ \\cos\\theta \\end{bmatrix} \[ed\^eq\^\]=\[cosθ\^−sinθ\^sinθ\^cosθ\^\]\[eαeβ\]=\[cosθ\^−sinθ\^sinθ\^cosθ\^\]∗ωψf\[−sinθcosθ

可以得到:
e d ^ = ω ψ f ( sin ⁡ θ ^ cos ⁡ θ − cos ⁡ θ ^ sin ⁡ θ ) = ω ψ f sin ⁡ ( θ ^ − θ ) \hat{e_d} = \omega \psi_f (\sin\hat{\theta} \cos\theta - \cos\hat{\theta} \sin\theta) = \omega \psi_f \sin(\hat{\theta} - \theta) ed^=ωψf(sinθ^cosθ−cosθ^sinθ)=ωψfsin(θ^−θ)

可以从上式看到, e d ^ \hat{e_d} ed^的幅值会随着转速变化,作为环路输入,可以进行归一化保持幅值稳定(实际工程里可以不需要),即:
e r r = e d ^ ω ψ f = sin ⁡ ( θ ^ − θ ) = sin ⁡ ( θ ~ ) err=\frac{\hat{e_d}}{\omega \psi_f}=\sin(\hat{\theta} - \theta)=\sin(\tilde{\theta}) err=ωψfed^=sin(θ^−θ)=sin(θ~)

要知道当x很小时, sin ⁡ ( x ) ≈ x \sin(x)\approx x sin(x)≈x,因此 e r r err err可以看作 θ ~ \tilde{\theta} θ~,此时会发现,环路误差输入竟然变成了 θ ~ \tilde{\theta} θ~,这是非常舒服的一个现象,估计转子角度和真实转子角度的误差作为环路误差输入是非常合理的。

那么以上这些步骤,就叫做锁相环PLL (P hase L ocked L oop),目标设计一个控制环路,锁住相位( θ \theta θ),是来自通信领域的一种方法。PLL的控制框图为:


总结,PLL的作用是从上节得到的估计反电动势计算得到估计转速和估计转子角度,相对于arctan直接计算方法,是一种闭环计算的方法,能够较好地抵抗噪声。

相关推荐
✎ ﹏梦醒͜ღ҉繁华落℘2 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
牛根生同志2 天前
SPI数据收发的时候 TXE与RXNE标志位置位的时机
stm32·spi·transfer
goldenrolan2 天前
学习型红外控制系统稳定性挂测工装专项总结
软件测试·python·stm32·嵌入式·红外
CC城子2 天前
STM32H7_FDCAN 驱动笔记
stm32·can·canfd
意法半导体STM322 天前
【官方原创】如何为STM32CubeMX2配置Visual Studio Code配置方案
vscode·stm32·单片机·嵌入式硬件·策略模式·stm32cubemx·嵌入式开发
雾削木2 天前
B语言经典教程现代化重构
java·前端·stm32·单片机·嵌入式硬件
Digitally2 天前
如何快速将文件从电脑传输到平板电脑
stm32·嵌入式硬件·电脑
项目題供诗2 天前
STM32-USART串口协议(二十二)
stm32·单片机·嵌入式硬件
欢乐熊嵌入式编程2 天前
选型避坑:ESP32 vs STM32+模组 vs NB-IoT,不同场景怎么选
stm32·单片机·嵌入式硬件·物联网·esp32·嵌入式iot
振南的单片机世界2 天前
ARM中断比51快在哪?硬件压栈+NVIC集中管理
arm开发·stm32·单片机·嵌入式硬件