【永磁同步电机(PMSM)】 4. 坐标变换的 Matlab 仿真
- 1. Clarke 变换的模型与仿真
- 1.1 Clarke 变换
- 1.2 Clarke 变换的仿真模型
- 2. Park 变换的模型与仿真
- 2.1 Park 变换
- 2.2 Park 变换的仿真模型
- 3. Simscape标准库变换模块
- 3.1 abc to Alpha-Beta-Zero 模块
- 3.2 abc to dq0 模块
- 3. 基于 S函数的仿真模型
由于电机处于高速旋转运动状态,在 abc 三相静止坐标系(自然坐标系)所建立的 PMSM 数学模型,存在复杂的变量耦合,难以分析和求解。
通过数学变换将 abc 三相静止坐标系转换到 αβ两相静止坐标系 和 dq 同步旋转坐标系,可以对模型进行解耦和简化。本节讨论坐标系变换的模型与仿真。
1. Clarke 变换的模型与仿真
1.1 Clarke 变换
通过Clarke变换(有些文献也写作 Clark 变换)将 abc 三相静止坐标系转换到 αβ两相静止坐标系,记为 T 3 s / 2 s T_{3s/2s} T3s/2s。
两相静止坐标系中的信号相互正交,更容易分离基波分量和谐波分量。对于 PMSM,假设虚拟电机有两个虚拟绕组,呈90°轴距分布,在定子槽中呈正弦分布,这两个绕组分别为直轴绕组和交轴绕组,即α,β轴。为简化分析过程,可以在建立αβ静止坐标系时将α轴与abc静止坐标系的a相轴重合。
Clarke 变换公式如下。通过 Clarke 变换,将abc三相静止坐标系下的 fa,fb,fc 分别映射到α-β轴上,得到αβ两相静止坐标系下的虚拟物理量 fα, fβ。
[ f α , f β , f 0 ] T = T 3 s / 2 s [ f a , f b , f c ] T [f_{\alpha}, f_{\beta}, f_0]^T = T_{3s/2s} [f_a, f_b,f_c]^T [fα,fβ,f0]T=T3s/2s[fa,fb,fc]T
T 3 s / 2 s = 2 3 [ 1 − 1 2 − 1 2 0 3 2 − 3 2 2 2 2 2 2 2 ] T_{3s/2s} =\frac{2}{3} \begin{bmatrix} 1 & -\frac{1}{2} & -\frac{1}{2}\\ 0 & \frac{\sqrt{3}}{2} & -\frac{\sqrt{3}}{2}\\ \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} \end{bmatrix} T3s/2s=32 1022−212322−21−2322
f f f 表示电压 u u u,电流 i i i,磁链 ψ \psi ψ等时变变量,例如:
[ i α i β i o ] = T 3 s / 2 s [ i a i b i c ] = 2 3 [ 1 − 1 / 2 − 1 / 2 0 3 / 2 − 3 / 2 2 / 2 2 / 2 2 / 2 ] [ i a i b i c ] \begin{bmatrix}i_{\alpha} \\i_{\beta}\\i_o\end{bmatrix} = T_{3s/2s} \begin{bmatrix}i_a \\i_b \\ i_c\end{bmatrix}= \frac{2}{3} \begin{bmatrix} 1 & -1/2 & -1/2\\ 0 & \sqrt{3}/2 & -\sqrt{3}/2\\ \sqrt{2}/2 & \sqrt{2}/2 & \sqrt{2}/2 \end{bmatrix} \begin{bmatrix}i_a \\i_b \\ i_c\end{bmatrix} iαiβio =T3s/2s iaibic =32 102/2−1/23/22/2−1/2−3/22/2 iaibic
式中, i 0 i_0 i0 为零序分量。
Clarke变换的逆变换,称为反Clarke变换(用T2s/3s表示)。
[ u a u b u c ] = T 2 s / 3 s [ u α u β u o ] = 2 3 [ 1 0 2 / 2 − 1 / 2 3 / 2 2 / 2 − 1 / 2 − 3 / 2 2 / 2 ] [ u α u β u o ] \begin{bmatrix}u_a \\u_b\\u_c\end{bmatrix} = T_{2s/3s} \begin{bmatrix}u_{\alpha}\\u_{\beta}\\u_o\end{bmatrix} =\frac{2}{3} \begin{bmatrix} 1 & 0 & \sqrt{2}/2\\ -1/2 & \sqrt{3} /2 & \sqrt{2}/2\\ -1/2 & -\sqrt{3} /2 & \sqrt{2}/2 \end{bmatrix} \begin{bmatrix}u_{\alpha} \\u_{\beta} \\u_o\end{bmatrix} uaubuc =T2s/3s uαuβuo =32 1−1/2−1/203/2−3/22/22/22/2 uαuβuo
1.2 Clarke 变换的仿真模型
根据 Clarke 变换的数学公式,使用Matlab/Simulink建立 Clarke 变换的仿真模型。
(1)新建模型:打开Matlab软件,在Simulink模型编辑界面中新建“空白模型”。
(2)添加模块:打开库浏览器,从Simulink、Simscape\Electrical\Specialized Power Systems等标准库中依次选取模块。按照设计计算结果设置模块参数。用户也可以直接在模型编辑界面中,双击鼠标左键调出“搜索模块”弹窗,输入模块名称,直接选择和添加模块。
(3)搭建模型:按照电路原理图连接各模块,搭建Buck变换电路的仿真模型。
(4)信号监测:使用信号标记模块goto、信号分解模块Demux、总线选择模块Bus Select,提取和选择需要观测的信号,作为示波器的输入信号。
(5)模型设置:选择“模型配置参数”,在求解器中选择仿真算法ode23tb(stiff/TR-BDF2),仿真时间为0.02s。
按照以上步骤,建立 Clarke 变换和反变换的仿真模型(Clarke01.slx),如下图所示。
仿真结果如下图所示。
2. Park 变换的模型与仿真
2.1 Park 变换
通过 Park 变换将 αβ两相静止坐标系 转换到 dq 同步旋转坐标系,记为 T 2 s / 2 r T_{2s/2r} T2s/2r。
Park 变换公式如下。通过 Park 变换,将αβ两相静止坐标系fα, fβ 分别映射到d-q轴上,得到 dq 同步旋转坐标系下的虚拟物理量 fd, fq。
[ f d , f q ] T = T 2 s / 2 r [ f α , f β ] T [f_d, f_q]^T = T_{2s/2r} [f_{\alpha}, f_{\beta}]^T [fd,fq]T=T2s/2r[fα,fβ]T
T 2 s / 2 r = [ c o s ( θ ) s i n ( θ ) − s i n ( θ ) c o s ( θ ) ] T_{2s/2r} = \begin{bmatrix} cos(\theta)&sin(\theta)\\ -sin(\theta)&cos(\theta)\\ \end{bmatrix} T2s/2r=[cos(θ)−sin(θ)sin(θ)cos(θ)]
f f f 表示电压 u u u,电流 i i i,磁链 ψ \psi ψ等时变变量,例如:
[ u d u q ] = T 2 s / 2 r [ u α u β ] = [ c o s ( θ ) s i n ( θ ) − s i n ( θ ) c o s ( θ ) ] [ u α u β ] \begin{bmatrix}u_d\\u_q\end{bmatrix} = T_{2s/2r} \begin{bmatrix}u_{\alpha} \\u_{\beta}\end{bmatrix} = \begin{bmatrix} cos(\theta)&sin(\theta)\\ -sin(\theta)&cos(\theta)\\ \end{bmatrix} \begin{bmatrix}u_{\alpha}\\u_{\beta}\end{bmatrix} [uduq]=T2s/2r[uαuβ]=[cos(θ)−sin(θ)sin(θ)cos(θ)][uαuβ]
式中, i 0 i_0 i0 为零序分量。
Park 变换的逆变换,称为反Park 变换(用T2r/2s表示)。
[ u α u β ] = T 2 r / 2 s [ u d u q ] = [ c o s ( θ ) − s i n ( θ ) s i n ( θ ) c o s ( θ ) ] [ u d u q ] \begin{bmatrix}u_{\alpha}\\u_{\beta}\end{bmatrix} = T_{2r/2s} \begin{bmatrix}u_d\\u_q\end{bmatrix} = \begin{bmatrix} cos(\theta) & -sin(\theta)\\ sin(\theta) & cos(\theta) \end{bmatrix} \begin{bmatrix}u_d\\u_q\end{bmatrix} [uαuβ]=T2r/2s[uduq]=[cos(θ)sin(θ)−sin(θ)cos(θ)][uduq]
2.2 Park 变换的仿真模型
根据 Clarke 变换的数学公式,使用Matlab/Simulink建立 Clarke 变换的仿真模型。
仿真结果如下图所示。
由仿真结果可见,经过坐标变换,在dq 同步旋转坐标系中的 Vd, Vq 成为解耦的直流量,便于进行控制。
3. Simscape标准库变换模块
Simscape标准库提供了 abc to Alpha-Beta-Zero模块和 abc to dq0 模块。
3.1 abc to Alpha-Beta-Zero 模块
abc to Alpha-Beta-Zero 模块对三相abc信号进行 Clarke 变换。Alpha-Beta-Zero to abc 模块对 αβ0 分量执行 Clarke 逆变换。
假设ua、ub、uc量表示三个正弦平衡电压:
[ u a u b u c ] = U [ c o s ( ω t ) c o s ( ω t − 2 π / 3 ) c o s ( ω t + 2 π / 3 ) ] \begin{bmatrix}u_a\\u_b\\u_c\end{bmatrix} = U \begin{bmatrix}cos{(\omega t)}\\cos{(\omega t-2\pi/3)}\\cos{(\omega t+2\pi/3)}\end{bmatrix} uaubuc =U cos(ωt)cos(ωt−2π/3)cos(ωt+2π/3)
则 iα和iβ分量表示旋转空间矢量Is在α轴与相位a轴对齐的固定参考系中的坐标。振幅与三个电流产生的旋转磁动势成正比。
3.2 abc to dq0 模块
abc to dq0 模块 使用Park变换将三相(abc)信号变换为dq0旋转参考系。旋转框架的角位置由输入 wt 给出,单位为rad。
dq0 to abc 模块 使用逆Park变换将dq0旋转参考系变换为三相(abc)信号。旋转框架的角位置由输入 wt 给出,单位为rad。
当wt=0处的旋转帧对齐在相位A轴后90度时,Mag=1且phase=0度的正序信号产生以下dq值:d=1,q=0。
该模块支持用于 Park 变换:
- 当旋转框架在t=0时与相位A轴对齐时,即t=0时,d轴与A轴对齐。这种类型的Park变换也称为余弦型Park变换。
- 当旋转框架在相位A轴后对齐90度时,即t=0时,q轴与A轴对齐。这种类型的公园改造也被称为正弦型Park 变换。在具有三相同步和异步电机的Simscape™Electrical™专用电力系统模型中使用此转换。
通过在三相静止参考系中执行abc到αβ0-Clarke变换,从abc信号中推导出dq0分量。然后在旋转参考系中执行αβ0到dq0的变换,即通过对空间向量Us=uα+j·uβ执行−ωt旋转。
abc-to-dq0变换取决于t=0时的dq帧对齐。旋转坐标系的位置由ω.t给出,其中ω表示dq坐标系的旋转速度。
3. 基于 S函数的仿真模型
Matlab/Simulink在Simscape标准库中提供了多种坐标转换模块,使用abc_to_dq0模块可以完成从abc三相静止坐标系到dq旋转参考系的转换。
基于abc_to_dq0模块直接建立的仿真模型更加简洁。对于复杂算法也可以使用Simulink中的S函数建立仿真模型,如下图所示。
参考文献:袁雷等,现代永磁同步电机控制原理及MATLAB仿真,北京航空航天大学出版社,2016