模型预测控制专题(六)—— 基于ESO的无模型预测电流控制

0 前言

在前五小节中,我们系统阐述了多种基于模型的电流预测控制(DPCC)策略;本文自此开始,将探索基于超局部模型的电流预测控制策略。这两类方法最本质的区别在于所依托的模型不同:前者完全依赖永磁同步电机的精确数学模型实现控制,而后者则基于单输入单输出(SISO)的超局部模型完成电流的预测与控制。

本篇文章基于前面关于无模型预测控制的综述,进行一定关于无模型预测电流控制的探索。前文链接如下:
模型预测控制专题(五)------ Model-free 的一篇review论文_超局部模型(ulm)-CSDN博客

​文章标题:Model-free Predictive Control of Motor Drives: A Review

1 何为超局部模型?

超局部模型(Ultra-Local Model)是无模型控制中核心的建模方法,其核心思想是削弱对被控对象精确数学模型的依赖,将系统中所有未知的动态、耦合项、参数摄动和外部扰动归并为"总扰动",仅保留一阶线性简化形式。即:

输出导数 = 输入增益×输入 + 总扰动

对于我们电机控制而言,超局部模型不依赖电感、电阻、永磁磁链等精确电机参数,仅通过"电流导数"与"电压输入"的线性关系建模。其中电流为输出,电压为输出,其实这个就是单输入单输出模型,非要取个超局部模型的称谓。在得到超局部模型后,再通过观测器实时估计并补偿总扰动,实现鲁棒控制。

1.1 超局部模型推导步骤

永磁同步电机在dq旋转坐标系下的原始电压方程 (工业应用核心形式)为:
{ u d = R s i d + L d d i d d t − ω e L q i q u q = R s i q + L q d i q d t + ω e ( L d i d + ψ f ) \begin{cases} u_d = R_s i_d + L_d \frac{di_d}{dt} - \omega_e L_q i_q \\ u_q = R_s i_q + L_q \frac{di_q}{dt} + \omega_e (L_d i_d + \psi_f) \end{cases} {ud=Rsid+Lddtdid−ωeLqiquq=Rsiq+Lqdtdiq+ωe(Ldid+ψf)

步骤1:解出电流导数项

将原始电压方程变形为"电流导数 = 电压项 - 所有非电压相关项"的形式,单独分离 d i d d t \frac{di_d}{dt} dtdid和 d i q d t \frac{di_q}{dt} dtdiq:
(1)d轴电流导数推导

对d轴电压方程移项,将 L d d i d d t L_d \frac{di_d}{dt} Lddtdid单独置于左侧:
L d d i d d t = u d − R s i d + ω e L q i q L_d \frac{di_d}{dt} = u_d - R_s i_d + \omega_e L_q i_q Lddtdid=ud−Rsid+ωeLqiq

两边除以 L d L_d Ld,得到d轴电流导数的显式表达式:
d i d d t = 1 L d u d − R s L d i d + ω e L q L d i q (1) \frac{di_d}{dt} = \frac{1}{L_d} u_d - \frac{R_s}{L_d} i_d + \frac{\omega_e L_q}{L_d} i_q \tag{1} dtdid=Ld1ud−LdRsid+LdωeLqiq(1)
(2)q轴电流导数推导

对q轴电压方程展开并移项,将 L q d i q d t L_q \frac{di_q}{dt} Lqdtdiq单独置于左侧:
L q d i q d t = u q − R s i q − ω e L d i d − ω e ψ f L_q \frac{di_q}{dt} = u_q - R_s i_q - \omega_e L_d i_d - \omega_e \psi_f Lqdtdiq=uq−Rsiq−ωeLdid−ωeψf

两边除以 L q L_q Lq,得到q轴电流导数的显式表达式:
d i q d t = 1 L q u q − R s L q i q − ω e L d L q i d − ω e ψ f L q (2) \frac{di_q}{dt} = \frac{1}{L_q} u_q - \frac{R_s}{L_q} i_q - \frac{\omega_e L_d}{L_q} i_d - \frac{\omega_e \psi_f}{L_q} \tag{2} dtdiq=Lq1uq−LqRsiq−LqωeLdid−Lqωeψf(2)

步骤2:定义总扰动项

超局部模型的关键是将所有未知/耦合项归并为总扰动,这一点非常关键需要着重理解,此时令:

  • d轴总扰动 f d f_d fd:包含电阻压降、dq轴耦合项等所有非电压输入的扰动
    f d = − R s L d i d + ω e L q L d i q f_d = - \frac{R_s}{L_d} i_d + \frac{\omega_e L_q}{L_d} i_q fd=−LdRsid+LdωeLqiq
  • q轴总扰动 f q f_q fq:包含电阻压降、dq轴耦合项、永磁反电动势等所有非电压输入的扰动
    f q = − R s L q i q − ω e L d L q i d − ω e ψ f L q f_q = - \frac{R_s}{L_q} i_q - \frac{\omega_e L_d}{L_q} i_d - \frac{\omega_e \psi_f}{L_q} fq=−LqRsiq−LqωeLdid−Lqωeψf
步骤3:超局部模型标准形式

将总扰动项代入式(1)、(2),得到PMSM超局部模型的基础形式
{ d i d d t = 1 L d u d + f d d i q d t = 1 L q u q + f q \begin{cases} \frac{di_d}{dt} = \frac{1}{L_d} u_d + f_d \\ \frac{di_q}{dt} = \frac{1}{L_q} u_q + f_q \end{cases} {dtdid=Ld1ud+fddtdiq=Lq1uq+fq

步骤4:整理换参

实际控制中,为进一步降低对电感参数 L d 、 L q L_d、L_q Ld、Lq的依赖,将 1 L d 、 1 L q \frac{1}{L_d}、\frac{1}{L_q} Ld1、Lq1定义为标称增益 α d 、 α q \alpha_d、\alpha_q αd、αq,得到工程中最常用的超局部模型简化形式:
{ d i d d t = α d u d + f d d i q d t = α q u q + f q \begin{cases} \frac{di_d}{dt} = \alpha_d u_d + f_d \\ \frac{di_q}{dt} = \alpha_q u_q + f_q \end{cases} {dtdid=αdud+fddtdiq=αquq+fq

其中 α d ≈ 1 L d \alpha_d \approx \frac{1}{L_d} αd≈Ld1, α q ≈ 1 L q \alpha_q \approx \frac{1}{L_q} αq≈Lq1, f d 、 f q f_d、f_q fd、fq包含所有未建模动态、参数误差、外部扰动和耦合项。

所以何为超局部呢?如果做一个形象的比喻就是本来电机是个复杂、耦合性强的系统模型,但是我仅仅去看电流-电压这个模型,那么大的系统模型我不看了。这个"只看"相对于"全看"的区别,可能就是局部这个单词的由来。这种取名还是越高大上约有吸引力。值得学习。


2 扩展状态观测器如何构建? Extended State Observer (ESO)

在得到了电机超局部模型后,下一步就是最关键的一步:集总扰动的观测。观测器的效果决定了整体控制策略的性能。我们参照2021年的一篇比较典型的基于ESO的无模型预测模型方法进行探究。(这里跟它不完全一样,文章内是基于亮相静止坐标系进行的建模。本文是基于旋转坐标系进行的建模。)

文章标题 :Model-Free Predictive Current Control of PMSM Drives Based on Extended State Observer Using Ultralocal Model

2.1 回顾超局部模型

首先,我们回顾从之前推导得到的PMSM dq轴超局部模型出发:
{ d i d d t = α d u d + f d d i q d t = α q u q + f q \begin{cases} \frac{di_d}{dt} = \alpha_d u_d + f_d \\ \frac{di_q}{dt} = \alpha_q u_q + f_q \end{cases} {dtdid=αdud+fddtdiq=αquq+fq
由于dq轴的超局部模型结构完全对称,我们以d轴为例单独推导ESO,q轴的推导过程完全一致

2.2 将总扰动定义为扩展状态 Extended State

ESO的核心思想是:将不可直接测量的"总扰动"扩展为一个新的状态变量 ,从而将原一阶系统转化为一个扩展的二阶系统,通过观测器同时估计原状态即电流 i d i_d id 和 扩展状态即总扰动 f d f_d fd。

步骤1:写出d轴原系统的状态方程

令原状态变量为 x 1 = i d x_1 = i_d x1=id,则d轴超局部模型可写为:
x ˙ 1 = α d u d + f d \dot{x}_1 = \alpha_d u_d + f_d x˙1=αdud+fd

其中 x ˙ 1 = d i d d t \dot{x}_1 = \frac{di_d}{dt} x˙1=dtdid 表示状态的时间导数。

步骤2:定义扩展状态变量

将总扰动 f d f_d fd 定义为第二个状态变量 x 2 x_2 x2,即:
x 2 = f d x_2 = f_d x2=fd

同时,假设总扰动的变化率为 h d ( t ) h_d(t) hd(t),则扩展后的二阶系统状态方程为:
{ x ˙ 1 = x 2 + α d u d x ˙ 2 = h d ( t ) \begin{cases} \dot{x}_1 = x_2 + \alpha_d u_d \\ \dot{x}_2 = h_d(t) \end{cases} {x˙1=x2+αdudx˙2=hd(t)

系统的输出方程为(电流可直接测量):
y = x 1 = i d y = x_1 = i_d y=x1=id

2.3 构建线性扩展状态观测器(LESO)

针对上述扩展的二阶系统,我们设计线性扩展状态观测器 来同时估计 x 1 = i d x_1=i_d x1=id 和 x 2 = f d x_2=f_d x2=fd。记状态的估计值为 x ^ 1 , x ^ 2 \hat{x}_1, \hat{x}_2 x^1,x^2,则LESO的结构如下:

{ x ^ ˙ 1 = x ^ 2 + α d u d − β 1 ( x ^ 1 − y ) x ^ ˙ 2 = − β 2 ( x ^ 1 − y ) \begin{cases} \dot{\hat{x}}_1 = \hat{x}_2 + \alpha_d u_d - \beta_1 (\hat{x}_1 - y) \\ \dot{\hat{x}}_2 = - \beta_2 (\hat{x}_1 - y) \end{cases} {x^˙1=x^2+αdud−β1(x^1−y)x^˙2=−β2(x^1−y)

其中, x ^ 1 − y = i ^ d − i d \hat{x}_1 - y = \hat{i}_d - i_d x^1−y=i^d−id是电流估计值与实际值的误差; x ^ 1 \hat{x}_1 x^1是d轴电流的估计值 i ^ d \hat{i}_d i^d; x ^ 2 \hat{x}_2 x^2是d轴总扰动的估计值 f ^ d \hat{f}_d f^d; β 1 , β 2 \beta_1, \beta_2 β1,β2是观测器的增益矩阵。

2.4 观测器增益的参数化(带宽法)

为了简化增益调整,通常采用带宽法 设计 β 1 , β 2 \beta_1, \beta_2 β1,β2:将观测器的极点配置在同一个期望的带宽 ω o \omega_o ωo 处,从而将增益转化为单一参数观测器带宽 ω o \omega_o ωo的函数。对于二阶LESO,若将观测器的两个极点都配置在 s = − ω o s = -\omega_o s=−ωo 处,则增益可直接取为:
{ β 1 = 2 ω o β 2 = ω o 2 \begin{cases} \beta_1 = 2 \omega_o \\ \beta_2 = \omega_o^2 \end{cases} {β1=2ωoβ2=ωo2

其中 ω o \omega_o ωo 是观测器带宽,需根据实际系统调整:

  • ω o \omega_o ωo 越大,观测器跟踪速度越快,但对测量噪声越敏感;
  • 通常取 ω o \omega_o ωo 为控制带宽的3~10倍。

2.5 离散化实现(适合数字控制)

在实际的PMSM数字控制器中,需要将上述连续时间的LESO离散化。假设控制周期为 T s c T_{sc} Tsc,采用欧拉前向差分法 近似微分( x ^ ˙ ≈ x ^ ( k + 1 ) − x ^ ( k ) T s c \dot{\hat{x}} \approx \frac{\hat{x}(k+1) - \hat{x}(k)}{T_{sc}} x^˙≈Tscx^(k+1)−x^(k)),则离散化后的LESO为:

d轴离散LESO:

{ i ^ d ( k + 1 ) = i ^ d ( k ) + T s c [ f ^ d ( k ) + α d u d ( k ) − β 1 ( i ^ d ( k ) − i d ( k ) ) ] f ^ d ( k + 1 ) = f ^ d ( k ) − T s c β 2 ( i ^ d ( k ) − i d ( k ) ) \begin{cases} \hat{i}_d(k+1) = \hat{i}d(k) + T{sc} \left[ \hat{f}_d(k) + \alpha_d u_d(k) - \beta_1 (\hat{i}_d(k) - i_d(k)) \right] \\ \hat{f}_d(k+1) = \hat{f}d(k) - T{sc} \beta_2 (\hat{i}_d(k) - i_d(k)) \end{cases} {i^d(k+1)=i^d(k)+Tsc[f^d(k)+αdud(k)−β1(i^d(k)−id(k))]f^d(k+1)=f^d(k)−Tscβ2(i^d(k)−id(k))

q轴离散LESO(结构完全一致):

{ i ^ q ( k + 1 ) = i ^ q ( k ) + T s c [ f ^ q ( k ) + α q u q ( k ) − β 1 ( i ^ q ( k ) − i q ( k ) ) ] f ^ q ( k + 1 ) = f ^ q ( k ) − T s c β 2 ( i ^ q ( k ) − i q ( k ) ) \begin{cases} \hat{i}_q(k+1) = \hat{i}q(k) + T{sc} \left[ \hat{f}_q(k) + \alpha_q u_q(k) - \beta_1 (\hat{i}_q(k) - i_q(k)) \right] \\ \hat{f}_q(k+1) = \hat{f}q(k) - T{sc} \beta_2 (\hat{i}_q(k) - i_q(k)) \end{cases} {i^q(k+1)=i^q(k)+Tsc[f^q(k)+αquq(k)−β1(i^q(k)−iq(k))]f^q(k+1)=f^q(k)−Tscβ2(i^q(k)−iq(k))

2.6 线性扩展状态观测器(LESO)实现代码

这里直接附上观测器部分的代码:

复制代码
    % ====================== ESO核心控制逻辑 ======================
    w0 = 4000;                        % 观测器带宽
    alphad = alpha;                   % d轴标称增益
    alphaq = alpha;                   % q轴标称增益
    beta1 = 2 * w0;                   % 观测器参数1
    beta2 = w0 * w0;                  % 观测器参数2
    
 	% d轴扰动观测与电流估计
    erro_id = id_est_k - id;
    id_est_k1 = id_est_k + Tsc * (Fdk + alphad * Udk - beta1 * erro_id);
    Fdk1 = Fdk - Tsc * beta2 * erro_id;

    % q轴扰动观测与电流估计
    erro_iq = iq_est_k - iq;
    iq_est_k1 = iq_est_k + Tsc * (Fqk + alphaq * Uqk - beta1 * erro_iq);
    Fqk1 = Fqk - Tsc * beta2 * erro_iq;

3 仿真结果分析

3.1 仿真工况

(1)电机空载零速启动加速至2000rpm;

(2)0.2s突加4Nm负载;

(3)0.3s带负载降速至1000rpm;
注:文章中的图像图例存在一定的错误,每张图的最后一个波形为MF-ESO方法。

3.2 标称参数仿真结果

依据超局部模型中的推导, α \alpha α取得电感值的倒数为标称参数。按照所提论文中阐述,在10kHz开关频率下选择观测器带宽为6000-8000 r a d / s rad/s rad/s合适,因此选择 ω o = 6000 r a d / s \omega_o=6000 rad/s ωo=6000rad/s为标称参数。仿真结果如下所示,其中第一行为转速,第二行为idiq波形,第三行为A相相电流波形。此阶段是粗略的看,可以看到系统能够实现较好的电流指令跟踪。

3.3 与DPCC的对比结果

(1)参数准确的情况

对比在电感参数准确情况下的PI控制器、DPCC、MF-ESO控制结果;

在参数完全准确时,启动过程的电流跟踪 DPCC是优于MF-ESO的;稳态跟踪效果基本一致。(这两者动态性能当然是优于PI的,这点毋庸置疑,不然预测就没意义了。)

(2)参数不准确的情况

对比在磁链参数准确情况下的PI控制器、DPCC、MF-ESO控制结果;此时磁链参数设置为标准值的两倍;可以看到DPCC的电流无法跟随给定值,出现了较大的偏差,而MF-ESO则运行过程中无静态误差跟踪。


3.4 标称参属下电流THD与传统PI的对比

ESO这种观测器不仅能够观测上文中推导的已知扰动,还能对频谱范围内的未知扰动例如死区导致的非线性干扰进行已知。在此对比不同策略的THD大小。对比结果如下FFT分析所示。

**(1)PI电流THD = 6.13% **

(2)DPCC电流THD = 5.72%

(3) MF-ESO 电流THD = 5.41% 在基波幅值一致的情况下,5次和7次谐波幅值相对明显较低。

以上仿真结果验证了MF-ESO的参数鲁棒性以及对扰动的抑制效果。

从动态性能的角度考虑,DPCC实际实验绝对无法做到参数完全准确,因此动态性能上在参数准确时效果与DPCC基本一致,在参数不准确时MF-ESO优于DPCC,且优于PI。

从稳态跟踪的角度考虑,参数准确的情况下三者基本一致。但是在参数不准确的情况下,DPCC效果最差,PI与MF-ESO基本一致。

从稳态电流谐波的角度考虑,MF-ESO具备最小电流THD。

从目前的仿真结果整体来看这个控制策略还是具备明显优势的。

下一节内容

在下一节内容中,我们将讨论具体的MF-ESO内部参数对性能的影响。

相关推荐
沉沙丶11 小时前
模型预测控制专题(七)—— 无模型电流预测参数影响分析
simulink·电机控制·foc·永磁同步电机·无模型预测·电流预测控制·电流预测
小白zlm1 天前
基于指数趋近律的永磁同步电机速度环传统滑模控制
单片机·嵌入式硬件·数学建模·电机控制·smc·pmsm
GreenGoblin1 天前
无传感器控制之非线性磁链观测器(全速域)
电机控制·foc·控制理论
Lester_110117 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
Lester_110117 天前
STM32 电机控制应用中,ICxFilter,ICxPSC以及高级定时器的采样时钟分频CKD区别是什么
单片机·嵌入式硬件·嵌入式软件·电机控制
youcans_1 个月前
【STM32-MBD】(17)基于 ADC 同步采样的 PWM 闭环控制链路
stm32·单片机·嵌入式硬件·matlab·电机控制·foc
youcans_1 个月前
【STM32G4-FOC】(5)DAC 受控输出闭环链路
stm32·单片机·嵌入式硬件·电机控制·foc
江鸟的坚持2 个月前
FOC电机控制
电机控制·foc·foc电机控制
GreenGoblin2 个月前
11.DSP学习记录之eQEP
dsp开发·电机控制