16、基于MATLAB和Simulink的永磁同步电机线性化研究

基于MATLAB和Simulink的永磁同步电机线性化研究

1. 引言

永磁电机,尤其是低功率范围内的永磁电机,因其高效率在工业中得到广泛应用,在变频驱动应用中也颇受欢迎。它具有消除励磁铜损、功率密度高、转子惯量低和转子结构坚固等优点。

为设计永磁同步电机(PMSM)的有效控制器,通常会使用电机的动态模型。该模型本质上具有二次非线性,线性控制技术往往难以达到理想性能。反馈线性化技术可有效控制非线性系统,其中精确线性化技术虽能使系统线性化并应用线性控制方法,但要求系统分布具有对合性;而近似反馈线性化技术则基于泰勒级数展开,适用于非对合系统。不过,一些基于精确反馈线性化的控制器设计存在奇异性问题。

本文从PMSM的二次模型出发,应用基于坐标和状态反馈的二次线性化技术,该技术借鉴了Poincare的工作,由Kang和Krener提出,并经Devanathan进一步发展。此技术类似于Krener的近似线性化,且与某些精确线性化方法相比,不会引入奇异性。

使用MATLAB和SIMULINK进行仿真,以验证所提出的二次线性化技术的有效性,具体包括:
- 正弦永磁同步电机(PMSM)的动态模型仿真。
- 应用非线性坐标和状态反馈变换对PMSM模型进行线性化。
- 采用误差反向传播方法,针对处于Brunovsky形式的线性系统模型对变换进行调整。

2. PMSM动态模型的线性化
2.1 PMSM动态模型

在考虑磁链 $\lambda_f$ 为常数且忽略铁损的情况下,正弦永磁电机的动态模型可表示为:
[
\begin{cases}
\frac{d}{dt}i_d = \frac{1}{L_d}(v_d - Ri_d - p\omega_rL_q i_q) & (1)\
\frac{d}{dt}i_q = \frac{1}{L_q}(v_q - Ri_q + p\omega_rL_d i_d - p\omega_r\lambda_f) & (2)\
\frac{d}{dt}\omega_r = \frac{1.5p}{J}[\lambda_f i_q + (L_d - L_q)i_d i_q] & (3)
\end{cases}
]
其中,$L_d$ 和 $L_q$ 分别为d轴和q轴电感;$R$ 为定子绕组电阻;$i_d$ 和 $i_q$ 分别为d轴和q轴电流;$v_d$ 和 $v_q$ 分别为d轴和q轴电压;$\omega_r$ 为转子角速度;$\lambda_f$ 为转子永磁体在定子相绕组中感应的磁链幅值;$p$ 为极对数。

利用线性坐标和状态反馈变换,可将动态模型的线性部分转化为Brunovsky形式:
[
\dot{x} = Ax + Bu + f^{(2)}(x) \quad (4)
]
其中,$u = [u_1 \ u_2]^T = [v_d \ v_q]^T$;$x = [i_d \ i_q \ \omega_e]^T$;
[
A =
\begin{bmatrix}
0 & 1 & 0 \
0 & 0 & 1 \
0 & 0 & 0
\end{bmatrix}
]
[
B =
\begin{bmatrix}
0 & 0 \
0 & 1 \
1 & 0
\end{bmatrix}
]
[
f^{(2)}(x) =
\begin{bmatrix}
b_1 x_1 x_2 \
b_2 x_2 x_3 \
b_3 x_1 x_2
\end{bmatrix}
]
$b_1$、$b_2$ 和 $b_3$ 是由电机参数推导得出的常数。

2.2 动态模型的线性化

采用二次形式的坐标和状态反馈变换:
[
y = x + \varphi^{(2)}(x) \quad (5)
]
[
u = I + \beta^{(1)}(x)v + \alpha^{(2)}(x) \quad (6)
]
其中,$y = [y_1 \ y_2 \ y_3]^T$,$v = [v_1 \ v_2]^T$;$\varphi^{(2)}(x)$、$\alpha^{(2)}(x)$ 和 $\beta^{(1)}(x)$ 通过求解广义同调方程得出。应用这些变换后,式(4)可简化为:
[
\dot{y} = Ay + Bv + O^{(3)}(y, v)
]
其中,$O^{(3)}(y, v)$ 表示三阶及更高阶的非线性项。

2.3 使用MATLAB函数验证线性化

为验证动态模型(4)的二次线性化理论结果,选择MATLAB的ODE45函数求解动态方程。ODE45是一个用于求解常微分方程初值问题的函数,采用迭代Runge Kutta方法,不返回解析解,而是离散时间点上的解值。

使用方法如下:
- [t,Y] = ode45(odefun,tspan,y0) tspan = [t0 tf] 表示从时间 $t_0$ 到 $t_f$ 对微分方程组进行积分,初始条件为 $y_0$。 f = odefun(t,y) 定义了函数,其中 $t$ 是时间点的列向量,$y$ 是解数组。
- [t, Y] = ode45(odefun,tspan,y0,options) :可使用 options 中的属性值替换默认积分参数,常用属性包括相对误差容限 RelTol (默认值为 $1e - 3$)和绝对误差容限 AbsTol (所有分量默认值为 $1e - 6$)。

在应用线性化变换之前,对不同输入 $u_1$ 和 $u_2$ 的式(4)进行开环仿真,结果表明系统呈振荡状态。应用线性化变换后,系统对脉冲输入表现出稳定响应。通过绘制 $y_3$ 与 $v_1$ 的关系图,发现其近似线性,验证了线性化系统的有效性。

3. PMSM电机模型的线性化
3.1 PMSM模型的标准形式

四维永磁电机模型可表示为:
[
\dot{x} = Ax + Bu + f(x)
]
其中,$x = [i_d \ i_q \ \theta_e \ \omega_e]^T$,$u = [v_d \ v_q]^T$;
[
A =
\begin{bmatrix}
0 & 1 & 0 & 0 \
-\frac{R}{L_d} & 0 & 0 & -\frac{p\lambda}{L_d} \
0 & 0 & 0 & 1 \
\frac{1.5p\lambda}{J} & 0 & 0 & -\frac{B}{J}
\end{bmatrix}
]
[
B =
\begin{bmatrix}
0 & 0 \
\frac{1}{L_d} & 0 \
0 & 0 \
0 & \frac{1}{L_q}
\end{bmatrix}
]
[
f(x) =
\begin{bmatrix}
0 \
-\frac{1.5p(L_d - L_q)}{J}i_d i_q \
0 \
\frac{p}{J}(L_d - L_q)i_d i_q
\end{bmatrix}
]

通过以下变换可将模型转化为两个输入的标准形式(Brunovsky形式):
[
\begin{bmatrix}
y_1 \
y_2 \
y_3 \
y_4
\end{bmatrix} =
\begin{bmatrix}
a_1 & 0 & 0 & 0 \
0 & a_2 & 0 & 0 \
0 & 0 & a_3 & 0 \
0 & 0 & 0 & a_4
\end{bmatrix}
\begin{bmatrix}
x_1 \
x_2 \
x_3 \
x_4
\end{bmatrix}
]
[
\begin{bmatrix}
u_1’ \
u_2’
\end{bmatrix} =
\begin{bmatrix}
c_1 & 0 \
0 & c_2
\end{bmatrix}
\begin{bmatrix}
u_1 \
u_2
\end{bmatrix} +
\begin{bmatrix}
0 & 0 \
0 & 0
\end{bmatrix}
\begin{bmatrix}
y_1 \
y_2 \
y_3 \
y_4
\end{bmatrix}
]
其中,$a_1 = \frac{1.5p\lambda}{J}$,$a_2 = -\frac{R}{L_q}$,$a_3 = -\frac{R}{L_d}$,$a_4 = -\frac{B}{J}$;$c_1 = \frac{1}{L_d}$,$c_2 = \frac{1}{L_q}$。

Brunovsky形式为:
[
\dot{x} = Ax + Bu + f^{(2)}(x)
]
其中,
[
A =
\begin{bmatrix}
0 & 1 & 0 & 0 \
0 & 0 & 1 & 0 \
0 & 0 & 0 & 1 \
0 & 0 & 0 & 0
\end{bmatrix}
]
[
B =
\begin{bmatrix}
0 & 0 \
0 & 0 \
0 & 0 \
1 & 0
\end{bmatrix}
]
[
f^{(2)}(x) =
\begin{bmatrix}
k_1 x_1 x_3 \
k_2 x_2 x_4 \
k_3 x_3 x_2 \
0
\end{bmatrix}
]
$k_1$、$k_2$ 和 $k_3$ 由电机参数推导得出。

3.2 PMSM标准形式模型的线性化

对于四维的PMSM模型,可使用以下变换进行线性化:
[
y = x + \varphi^{(2)}(x)
]
[
u = I + \beta^{(1)}(x)v + \alpha^{(2)}(x)
]
其中,$\varphi^{(2)}(x)$、$\alpha^{(2)}(x)$ 和 $\beta^{(1)}(x)$ 具有特定形式,系统经变换后可简化为包含三阶及更高阶非线性项的形式。

4. 使用SIMULINK对PMSM模型进行线性化
4.1 PMSM模型的构建

由于标准库中的模型仅适用于特殊情况,因此需要使用MATLAB/SIMULINK工具对PMSM电机模型进行定制。通过构建q轴电路、d轴电路、转矩模块和速度模块,逐步完成永磁电机驱动仿真模型的搭建。
- q轴电路 :根据方程 $v_q = R i_q + \omega_r L_d i_d + \lambda_f + \rho$ 构建。
- d轴电路 :依据方程 $v_d = R i_d + \omega_r L_q i_q + \rho \lambda_f$ 构建。
- 转矩模块 :由转矩方程 $T_e = \frac{3}{2}p(\lambda_f i_q - (L_d - L_q)i_d i_q)$ 构建。
- 速度模块 :根据方程 $\frac{d}{dt}\omega_m = \frac{1}{J}(T_e - T_l - B\omega_m)$ 和 $\omega_r = p\omega_m$ 构建。

将上述模块组合,可得到以 $V_q$ 和 $V_d$ 为输入的PMSM模型。

4.2 PMSM SIMULINK模型的线性化

首先,使用变换(8)将PMSM模型转换为线性部分的控制器标准形式(9),然后使用二次坐标和状态反馈(10)和(11)对模型进行线性化。线性化模块通过函数块实现。

4.3 线性化验证 - 仿真结果

对于内置式PMSM,选取以下参数:
|参数|数值|
| ---- | ---- |
|定子电阻 $R$|$2.875\Omega$|
|q轴电感 $L_q$|$9mH$|
|d轴电感 $L_d$|$7mH$|
|磁链 $\lambda_f$|$0.175wb$|
|转动惯量 $J$|$0.0008kg.m^2$|
|摩擦系数 $B$|$1N.m.s$|
|极对数 $p$|$4$|

在开环状态下,线性化前 $e\omega$ 与 $q_v$ 的稳态增益如表1所示,可见其增益并非恒定,体现了系统的非线性。线性化后,$2y$ 与 $1v$ 的稳态增益如表2所示,增益近乎恒定,验证了线性化的有效性。

$q_v$ $e\omega$ $K = \frac{d e\omega}{d qv}$
5 2.55 -
10 4.7709 0.44418
15 6.4706 0.33994
20 7.6082 0.22752
25 8.2567 0.1297
30 8.5326 0.05518

表1. 线性化前系统开环状态下 $e\omega$ 与 $q_v$ 的稳态增益

$1v$ $2y \times 10^{-6}$ $K = \frac{d 2y}{d 1v} \times 10^{-6}$
5 2.176 -
10 4.366 0.438
15 6.585 0.4438
20 8.845 0.452
25 11.162 0.4634
30 13.55 0.4776

表2. 线性化后系统开环状态下 $2y$ 与 $1v$ 的稳态增益

在闭环状态下,线性化前 $q_v$ 取不同值时,系统的动态响应不同;线性化后,当参考值变化时,系统能获得均匀的输出响应,这是因为线性化后系统的静态增益近乎均匀,从而使环路增益在工作范围内的极值点处也近乎恒定。

以下是PMSM模型构建与线性化的流程:

graph LR
    A[PMSM模型构建] --> B[q轴电路构建]
    A --> C[d轴电路构建]
    A --> D[转矩模块构建]
    A --> E[速度模块构建]
    B --> F[组合模块得到PMSM模型]
    C --> F
    D --> F
    E --> F
    F --> G[转换为标准形式]
    G --> H[线性化处理]
    H --> I[线性化验证]
5. 线性化变换的调整

由于二次线性化引入了未建模动态以及三阶和更高阶的非线性项,因此需要对变换进行调整以提高系统的线性度。调整的方法是参照实际永磁电机,对变换参数进行调整,类似于Narendra提出的方法。

5.1 误差计算

误差 $E$ 可以通过以下公式计算:
[
E = \sqrt{\varepsilon^T \varepsilon} = \sqrt{(y - \hat{y})^T (y - \hat{y})}
]
其中,$\varepsilon = [\varepsilon_1 \ \varepsilon_2 \ \varepsilon_3 \ \varepsilon_4]^T$,$\varepsilon_i = y_i - \hat{y}_i$,$i = 1, 2, 3, 4$。误差也可以表示为:
[
E = \sqrt{\varepsilon_1^2 + \varepsilon_2^2 + \varepsilon_3^2 + \varepsilon_4^2}
]

因为 $\varphi^{(2)}(x)$ 和 $\beta^{(1)}(x)$ 都是 $k_1$ 的函数,所以重新定义:
[
\varphi^{(2)}(x) =
\begin{bmatrix}
0 \
0 \
k_1 x_3 x_4 \
0
\end{bmatrix}
]
[
\beta^{(1)}(x) =
\begin{bmatrix}
-k_1’ x_3 \
-k_1’ x_4 \
0 \
0
\end{bmatrix}
]
这样就可以分别通过调整 $k_1$ 和 $k_1’$ 来独立调整 $\varphi^{(2)}(x)$ 和 $\beta^{(1)}(x)$,而 $\alpha^{(2)}(x)$ 保持不变。

5.2 $N_2$ 变换系数的更新

调整 $N_2$ 变换意味着调整 $\varphi^{(2)}(x)$。由于 $\varphi^{(2)}(x)$ 仅与 $k_1 x_3 x_4$ 有关,因此需要根据二次线性化系统和标准形式输出之间的误差来更新系数 $k_1$。更新规则如下:
[
\Delta k_1 = \frac{\partial E}{\partial k_1} = \frac{\partial E}{\partial y} \frac{\partial y}{\partial k_1}
]
从误差公式可知,$\frac{\partial E}{\partial y_i} = \frac{\varepsilon_i}{E}$,$i = 1, 2, 3, 4$。因此:
[
\Delta k_1 =
\begin{bmatrix}
\frac{\varepsilon_1}{E} \
\frac{\varepsilon_2}{E} \
\frac{\varepsilon_3}{E} \
\frac{\varepsilon_4}{E}
\end{bmatrix}^T
\begin{bmatrix}
0 \
0 \
x_3 x_4 \
0
\end{bmatrix}
]
$\varphi^{(2)}(x)$ 的更新公式为:
[
k_1(m) = k_1(m - 1) - \rho \Delta k_1
]
其中,$m$ 表示更新步骤,$0 < \rho < 1$ 是加速因子。

5.3 $N_1$ 变换系数的更新

调整 $N_1$ 变换通过调整 $\beta^{(1)}(x)$ 来实现。由于 $\beta^{(1)}(x)$ 与 $k_1’ x_3$ 和 $k_1’ x_4$ 有关,因此需要根据二次线性化系统和标准形式输出之间的误差来更新系数 $k_1’$。更新规则如下:
[
\Delta k_1’ = \frac{\partial E}{\partial k_1’} = \frac{\partial E}{\partial y} \frac{\partial y}{\partial x} \frac{\partial x}{\partial u} \frac{\partial u}{\partial k_1’}
]
假设在调整期间Simulink模型达到稳态,则:
[
\Delta k_1’ = \frac{(v_1 x_4 - v_2 x_3)k_1’ + \varepsilon_2 x_2 k_2 + \varepsilon_3 x_3 k_3}{k_2 x_2 + k_3 x_3}
]

5.4 控制器调整模块的构建

使用公式(14)更新 $\varphi^{(2)}(x)$,$\Delta k_1$ 可从公式(13)获得。调整过程使用Memory模块,在Simulink中构建。图15展示了 $\Delta k_1$ 模块的构建,$\Delta k_1’$ 模块的构建类似。

通过图15、图16和图17的仿真图,可以对 $\varphi^{(2)}(x)$ 和 $\beta^{(1)}(x)$ 进行更新仿真。完整的仿真图(包括转换为Brunovsky形式、线性化和调整)如图18所示,调整后的误差降低到0.01。

表3展示了线性化系统在调整变换参数后,$2y$ 与 $1v$ 的稳态增益的改善情况。与表2相比,系统的增益更加恒定,验证了通过调整齐次线性化变换,系统的线性度得到了提高。

$1v$ $2y \times 10^{-6}$ $K = \frac{d 2y}{d 1v} \times 10^{-6}$
106 7.142 -
108 7.38 0.048
110 7.334 0.048
112 7.43 0.048
114 7.525 0.0475
116 7.62 0.0475
118 7.714 0.047

表3. 调整后线性化系统开环状态下 $2y$ 与 $1v$ 的稳态增益

6. 结论

本文探讨了使用MATLAB和SIMULINK工具验证永磁同步电机线性化的方法。通过对PMSM动态模型进行线性化,应用非线性坐标和状态反馈变换到定制的SIMULINK模型,并使用误差反向传播方法对变换进行调整,以考虑未建模动态。

  • 首先,使用PMSM的动态模型验证了线性化。通过MATLAB对具有二次非线性的永磁同步电机动态模型进行线性化和仿真,利用MATLAB函数ODE45根据电机参数和状态及输入变换进行动态仿真。
  • 其次,专门开发了内置式永磁电机的SIMULINK模型,通过集成各个模块实现。使用SIMULINK对PMSM电机模型和状态及输入变换进行仿真,结果表明线性化变换有效地使系统线性化,支持了理论分析。
  • 最后,为考虑未建模动态和高阶非线性项,通过比较线性化系统和标准形式的输出对变换参数进行调整。调整变换函数 $\varphi^{(2)}(x)$ 和 $\beta^{(1)}(x)$ 进一步提高了系统的线性度。

综上所述,MATLAB和SIMULINK工具在永磁同步电机线性化验证中具有重要作用,通过一系列的建模、线性化和调整步骤,可以有效提高系统的线性度和控制性能。

以下是整个永磁同步电机线性化验证的流程总结:

graph LR
    A[PMSM动态模型] --> B[线性化处理(MATLAB)]
    B --> C[SIMULINK模型构建]
    C --> D[线性化处理(SIMULINK)]
    D --> E[线性化验证]
    E --> F[变换参数调整]
    F --> G[最终线性化验证]

整个过程涵盖了从理论模型到实际仿真,再到参数调整的完整流程,为永磁同步电机的线性化控制提供了有效的方法和验证手段。

【电能质量扰动】基于MLDWT的电能质量扰动分类方法研究Matlab实现)内容概要:本文研究了一种基于机器学习(ML)离散小波变换(DWT)的电能质量扰动分类方法,并提供了Matlab实现方案。首先利用DWT对电能质量信号进行多尺度分解,提取信号的时频域特征,有效捕捉电压暂降、暂升、中断、谐波、闪变等常见扰动的关键信息;随后结合机器学习分类器(如SVM、BP神经网络等)对提取的特征进行训练与分类,实现对不同类型扰动的自动识别与准确区分。该方法充分发挥DWT在信号去噪与特征提取方面的优势,结合ML强大的模式识别能力,提升了分类精度与鲁棒性,具有较强的实用价值。; 适合人群:电气工程、自动化、电力系统及其自动化等相关专业的研究生、科研人员及从事电能质量监测与分析的工程技术人员;具备一定的信号处理基础Matlab编程能力者更佳。; 使用场景及目标:①应用于智能电网中的电能质量在线监测系统,实现扰动类型的自动识别;②作为高校或科研机构在信号处理、模式识别、电力系统分析等课程的教学案例或科研实验平台;③目标是提高电能质量扰动分类的准确性与效率,为后续的电能治理与设备保护提供决策依据。; 阅读建议:建议读者结合Matlab代码深入理解DWT的实现过程与特征提取步骤,重点关注小波基选择、分解层数设定及特征向量构造对分类性能的影响,并尝试对比不同机器学习模型的分类效果,以全面掌握该方法的核心技术要点。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值