基于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[最终线性化验证]
整个过程涵盖了从理论模型到实际仿真,再到参数调整的完整流程,为永磁同步电机的线性化控制提供了有效的方法和验证手段。
超级会员免费看
1070

被折叠的 条评论
为什么被折叠?



