【电机控制】无感控制_电机反电动势的获取


前言

本文从电机无感控制的输入信息入手,拆解电机反电动势计算的理论基础和具体实现方法。


1 电机模型

链接: 磁链Ψ、磁通φ、磁势F

链接: 开绕组永磁同步电机的数学模型

链接: 控制工程中的数学建模(8)——典型环节的数学模型(之四)

链接: 反电动势的几点理解

链接: 永磁同步电机矢量控制(八)——弱磁控制(超前角弱磁) 这一篇还看不懂

2 具体应用

链接: 彻底吃透滑模观测器(PMSM无感算法)(理论精讲+推导+算法+调参+硬件运行)

3 尝试写一下观测器

3.1 控制系统状态方程

在控制系统中,状态方程通常用于描述系统内部状态变量随时间的演化规律以及它们与外部输入之间的关系。

x ˙ ( t ) = A x ( t ) + B u ( t ) \begin{equation} \dot{\mathbf{x}}(t) = \mathbf{A}\mathbf{x}(t) + \mathbf{B}\mathbf{u}(t) \end{equation} x˙(t)=Ax(t)+Bu(t)

其中:

x ( t ) ∈ R n \mathbf{x}(t) \in \mathbb{R}^n x(t)Rn 是系统的 n n n维状态向量,表示系统在时间 t t t处的状态。各个元素可能代表不同物理量(如位置、速度、角度、角速度等)。

x ˙ ( t ) \dot{\mathbf{x}}(t) x˙(t) 表示状态向量对时间的导数,即状态向量的变化率,它刻画了系统状态随时间的动态变化。

A ∈ R n × n \mathbf{A} \in \mathbb{R}^{n \times n} ARn×n 是系统矩阵,其元素反映了系统内部各状态变量之间的耦合关系。当系统处于无外力输入时,状态变量按 A \mathbf{A} A矩阵所描述的规律演化。

u ( t ) ∈ R m \mathbf{u}(t) \in \mathbb{R}^m u(t)Rm m m m维控制输入向量,包含作用于系统的外部控制信号(如力、电压、转矩等)。

B ∈ R n × m \mathbf{B} \in \mathbb{R}^{n \times m} BRn×m 是输入矩阵,其元素描述了每个控制输入如何直接影响各状态变量的变化。

这个状态方程形式简洁而普适,适用于许多实际的线性控制系统。对于非线性系统,状态方程可以写作更一般的形式:
x ˙ ( t ) = f ( x ( t ) , u ( t ) , t ) \begin{equation} \dot{\mathbf{x}}(t) = f(\mathbf{x}(t), \mathbf{u}(t), t) \end{equation} x˙(t)=f(x(t),u(t),t)

其中 f : R n × R m × R → R n f: \mathbb{R}^n \times \mathbb{R}^m \times \mathbb{R} \rightarrow \mathbb{R}^n f:Rn×Rm×RRn 是一个非线性函数,描述了状态变量随时间和控制输入的非线性演化关系。

3.2 离散时间系统的状态方程

离散时间系统的状态方程描述的是系统状态变量在离散时间步长上的更新规则,而非连续时间的微分方程。以下是使用 LaTeX 格式编写的典型线性离散时间系统的状态方程:
x [ k + 1 ] = A x [ k ] + B u [ k ] \begin{equation} \mathbf{x}[k+1] = \mathbf{A}\mathbf{x}[k] + \mathbf{B}\mathbf{u}[k] \end{equation} x[k+1]=Ax[k]+Bu[k]

其中:

x [ k ] ∈ R n \mathbf{x}[k] \in \mathbb{R}^n x[k]Rn 是系统的 n n n维状态向量在第 k k k个采样时刻(离散时间步)的值。

x [ k + 1 ] \mathbf{x}[k+1] x[k+1] 表示下一个采样时刻的状态向量,它由当前状态 x [ k ] \mathbf{x}[k] x[k]和当前控制输入 u [ k ] \mathbf{u}[k] u[k]共同决定。

A ∈ R n × n \mathbf{A} \in \mathbb{R}^{n \times n} ARn×n 是离散时间系统的状态转移矩阵,其元素反映了系统内部各状态变量在相邻两个采样时刻之间的演变关系。

u [ k ] ∈ R m \mathbf{u}[k] \in \mathbb{R}^m u[k]Rm m m m维控制输入向量在第 k k k个采样时刻的值,它影响着系统状态的更新。

B ∈ R n × m \mathbf{B} \in \mathbb{R}^{n \times m} BRn×m 是离散时间系统的输入矩阵,其元素描述了每个控制输入在当前采样时刻如何直接影响下一时刻各状态变量的值。

对于非线性离散时间系统,状态方程可以写作:
x [ k + 1 ] = f ( x [ k ] , u [ k ] , k ) \begin{equation} \mathbf{x}[k+1] = f(\mathbf{x}[k], \mathbf{u}[k], k) \end{equation} x[k+1]=f(x[k],u[k],k)
其中 f : R n × R m × Z → R n f: \mathbb{R}^n \times \mathbb{R}^m \times \mathbb{Z} \rightarrow \mathbb{R}^n f:Rn×Rm×ZRn 是一个非线性函数,定义了状态变量在离散时间步 k k k根据当前状态 x [ k ] \mathbf{x}[k] x[k]、当前控制输入 u [ k ] \mathbf{u}[k] u[k]及时间索引 k k k的非线性更新规则。

这些离散时间状态方程为分析和设计数字控制器提供了数学模型基础,适用于计算机模拟、数字信号处理器(DSP)实现以及其他基于采样数据的控制系统。

3.3 龙伯格观测器

链接: 故障诊断4—龙伯格状态观测器设计
链接: 【现代控制理论】状态观测器——龙伯格观测器(Luenberger observer)
在这里插入图片描述
α β \alpha\beta αβ轴电压方程
[ d i α d t d i β d t d e α d t d e β d t ] = [ − R s L s 0 − 1 L s 0 0 − R s L s 0 − 1 L s 0 0 0 − p n ω r 0 0 p ω 0 ] [ i α i β e α e β ] + [ 1 L s 0 0 1 L s 0 0 0 0 ] [ u α u β ] \begin{equation} \left[\begin{array}{c} \frac{d i_\alpha}{d t} \\ \frac{d i_\beta}{d t} \\ \frac{d e_\alpha}{d t} \\ \frac{d e_\beta}{d t} \end{array}\right]=\left[\begin{array}{cccc} -\frac{R_s}{L_s} & 0 & -\frac{1}{L_s} & 0 \\ 0 & -\frac{R_s}{L_s} & 0 & -\frac{1}{L_s} \\ 0 & 0 & 0 & -p_n \omega_r \\ 0 & 0 & p_\omega & 0 \end{array}\right]\left[\begin{array}{l} i_\alpha \\ i_\beta \\ e_\alpha \\ e_\beta \end{array}\right]+\left[\begin{array}{cc} \frac{1}{L_s} & 0 \\ 0 & \frac{1}{L_s} \\ 0 & 0 \\ 0 & 0 \end{array}\right]\left[\begin{array}{l} u_\alpha \\ u_\beta \end{array}\right] \end{equation} dtdiαdtdiβdtdeαdtdeβ = LsRs0000LsRs00Ls100pω0Ls1pnωr0 iαiβeαeβ + Ls10000Ls100 [uαuβ]

② 从上述方程中归纳出A、B、C矩阵(略)
③ 龙伯格观测器模型
[ d i ^ α d t d i ^ β d t d e ^ α d t d e ^ β d t ] = [ − R s L s 0 − 1 L s 0 0 − R s L s 0 − 1 L s 0 0 0 − p n ω r 0 0 p n ω r 0 ] [ i ^ α i ^ β e ^ α e ^ β ] + [ 1 L s 0 0 1 L s 0 0 0 0 ] [ u α u β ] + K [ i ^ α − i α i ^ β − i β ] \begin{equation} \left[\begin{array}{c} \frac{d \hat{i}_\alpha}{d t} \\ \frac{d \hat{i}_\beta}{d t} \\ \frac{d \hat{e}_\alpha}{d t} \\ \frac{d \hat{e}_\beta}{d t} \end{array}\right]=\left[\begin{array}{cccc} -\frac{R_s}{L_s} & 0 & -\frac{1}{L_s} & 0 \\ 0 & -\frac{R_s}{L_s} & 0 & -\frac{1}{L_s} \\ 0 & 0 & 0 & -p_n \omega_r \\ 0 & 0 & p_n \omega_r & 0 \end{array}\right]\left[\begin{array}{c} \hat{i}_\alpha \\ \hat{i}_\beta \\ \hat{e}_\alpha \\ \hat{e}_\beta \end{array}\right]+\left[\begin{array}{cc} \frac{1}{L_s} & 0 \\ 0 & \frac{1}{L_s} \\ 0 & 0 \\ 0 & 0 \end{array}\right]\left[\begin{array}{l} u_\alpha \\ u_\beta \end{array}\right]+\mathbf{K}\left[\begin{array}{c} \hat{i}_\alpha-i_\alpha \\ \hat{i}_\beta-i_\beta \end{array}\right] \end{equation} dtdi^αdtdi^βdtde^αdtde^β = LsRs0000LsRs00Ls100pnωr0Ls1pnωr0 i^αi^βe^αe^β + Ls10000Ls100 [uαuβ]+K[i^αiαi^βiβ]
备注: p n p_n pn是极对数, w r w_r wr是机械角速度。

⑤系统增益K矩阵
K = [ K 1 0 0 K 1 K 2 0 0 K 2 ] \begin{equation} \mathbf{K}= \left[\begin{array}{cc} K_1 & 0 \\ 0 & K_1 \\ K_2 & 0 \\ 0 & K_2 \end{array}\right] \end{equation} K= K10K200K10K2
[ d i ^ α d t d i ^ β d t d e ^ α d t d e ^ β d t ] = [ − R s L s 0 − 1 L s 0 0 − R s L s 0 − 1 L s 0 0 0 − p n ω r 0 0 p n ω r 0 ] [ i ^ α i ^ β e ^ α e ^ β ] + [ 1 L s 0 0 1 L s 0 0 0 0 ] [ u α u β ] + [ K 1 0 0 K 1 K 2 0 0 K 2 ] [ 1 0 0 0 0 1 0 0 ] [ i ^ α − i α i ^ β − i β e ^ α − e α e ^ β − e β ] \begin{equation} \left[\begin{array}{c} \frac{d \hat{i}_\alpha}{d t} \\ \frac{d \hat{i}_\beta}{d t} \\ \frac{d \hat{e}_\alpha}{d t} \\ \frac{d \hat{e}_\beta}{d t} \end{array}\right]=\left[\begin{array}{cccc} -\frac{R_s}{L_s} & 0 & -\frac{1}{L_s} & 0 \\ 0 & -\frac{R_s}{L_s} & 0 & -\frac{1}{L_s} \\ 0 & 0 & 0 & -p_n \omega_r \\ 0 & 0 & p_n \omega_r & 0 \end{array}\right]\left[\begin{array}{c} \hat{i}_\alpha \\ \hat{i}_\beta \\ \hat{e}_\alpha \\ \hat{e}_\beta \end{array}\right]+\left[\begin{array}{cc} \frac{1}{L_s} & 0 \\ 0 & \frac{1}{L_s} \\ 0 & 0 \\ 0 & 0 \end{array}\right]\left[\begin{array}{l} u_\alpha \\ u_\beta \end{array}\right]+\left[\begin{array}{cc} K_1 & 0 \\ 0 & K_1 \\ K_2 & 0 \\ 0 & K_2 \end{array}\right] \left[\begin{array}{cc} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 \end{array}\right]\left[\begin{array}{c} \hat{i}_\alpha-i_\alpha \\ \hat{i}_\beta-i_\beta\\ \hat{e}_\alpha-e_\alpha\\ \hat{e}_\beta-e_\beta \end{array}\right] \end{equation} dtdi^αdtdi^βdtde^αdtde^β = LsRs0000LsRs00Ls100pnωr0Ls1pnωr0 i^αi^βe^αe^β + Ls10000Ls100 [uαuβ]+ K10K200K10K2 [10010000] i^αiαi^βiβe^αeαe^βeβ
注意 K 1 , K 2 K_1,K_2 K1K2作用于 ( i ^ α − i α ) , ( i ^ β − i β ) (\hat{i}_\alpha-i_\alpha),(\hat{i}_\beta-i_\beta) (i^αiα)(i^βiβ)

⑥将龙伯格观测器离散化(系数:G取代K)
d x d t → x ( k + 1 ) − x ( k ) T \frac{dx}{dt}\rightarrow\frac{x(k+1)-x(k)}{T} dtdxTx(k+1)x(k)
i ^ α ( k + 1 ) = ( 1 − R s L s T ) i ^ α ( k ) − T L s e ^ α ( k ) + T L s u α ( k ) + T G 1 ( i ^ α − i α ) \hat{i}_\alpha(k+1)=(1-\frac{R_s}{L_s}T)\hat{i}_\alpha(k)-\frac{T}{L_s}\hat{e}_\alpha(k)+\frac{T}{L_s}u_\alpha(k)+TG_1(\hat{i}_\alpha-i_\alpha) i^α(k+1)=(1LsRsT)i^α(k)LsTe^α(k)+LsTuα(k)+TG1(i^αiα)
i ^ β ( k + 1 ) = ( 1 − R s L s T ) i ^ β ( k ) − T L s e ^ β ( k ) + T L s u β ( k ) + T G 1 ( i ^ β − i β ) \hat{i}_\beta(k+1)=(1-\frac{R_s}{L_s}T)\hat{i}_\beta(k)-\frac{T}{L_s}\hat{e}_\beta(k)+\frac{T}{L_s}u_\beta(k)+TG_1(\hat{i}_\beta-i_\beta) i^β(k+1)=(1LsRsT)i^β(k)LsTe^β(k)+LsTuβ(k)+TG1(i^βiβ)
e ^ α ( k + 1 ) = e ^ α ( k ) − ω e T e ^ β ( k ) + T G 2 ( i ^ α − i α ) \hat{e}_\alpha(k+1)=\hat{e}_\alpha(k)-\omega_eT\hat{e}_\beta(k)+TG_2(\hat{i}_\alpha-i_\alpha) e^α(k+1)=e^α(k)ωeTe^β(k)+TG2(i^αiα)
e ^ β ( k + 1 ) = e ^ β ( k ) + ω e T e ^ α ( k ) + T G 2 ( i ^ β − i β ) \hat{e}_\beta(k+1)=\hat{e}_\beta(k)+\omega_eT\hat{e}_\alpha(k)+TG_2(\hat{i}_\beta-i_\beta) e^β(k+1)=e^β(k)+ωeTe^α(k)+TG2(i^βiβ)

⑦计算电角度,进行位置或转速控制
PLL方法:
链接:锁相环(PLL)基本原理
链接:锁相环PLL在有感无刷直流电机速度估算中的应用

反正切方法:(直接计算或查表)
θ = a r c t a n ( − e α e β ) \theta=arctan(-\frac{e_\alpha}{e_\beta}) θ=arctan(eβeα)

3.4 滑膜观测器

相比于龙伯格观测器,其主要差异在于增益部分。
K = [ K 0 0 K M 0 0 M ] [ 1 0 0 0 0 1 0 0 ] [ s i g n ( i ^ α − i α ) s i g n ( i ^ β − i β ) s i g n ( e ^ α − e α ) s i g n ( e ^ β − e β ) ] \begin{equation} \mathbf{K}= \left[\begin{array}{cc} K & 0 \\ 0 & K \\ M & 0 \\ 0 & M \end{array}\right] \left[\begin{array}{cc} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 \end{array}\right]\left[\begin{array}{c} sign(\hat{i}_\alpha-i_\alpha) \\ sign(\hat{i}_\beta-i_\beta)\\ sign(\hat{e}_\alpha-e_\alpha)\\ sign(\hat{e}_\beta-e_\beta) \end{array}\right] \end{equation} K= K0M00K0M [10010000] sign(i^αiα)sign(i^βiβ)sign(e^αeα)sign(e^βeβ)
s i g n sign sign正数取1,负数取-1。
滑模观测自带高频抖动,一般需要配合LPF(低通滤波器)使用。
此外,还有改进的滑膜观测,见下图,懂的秒懂。
链接:滑模观测器(SMO)关键点解析和调参指导
在这里插入图片描述

多说一句,这个符号函数在大数据神经网络学习中也经常用到,是一种逼近目标常见的方法。


总结

龙伯格观测器本身并不难理解,难点是建立控制对象的数学模型,对于PMSM来说,电、磁、机械方面的物理关系比较复杂,比较难理解。
现代控制理论要具体落地,离不开离散化的处理,其微分处理和简化是固定套路,需要掌握。
控制系统的优劣取决于模型精确程度和控制系统稳定性。要取得良好的系统控制效果,需要在这两方面进行计算调试(当然硬件本身别掉链子)。
计算量是控制系统绕不开的一个话题,有机会写一篇关于Q值(浮点数定点化)计算的帖子。

  • 18
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

真·Wild·攻城狮

小手一抖,写作加油

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

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

打赏作者

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

抵扣说明:

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

余额充值