完全搞懂 Clarke 与 Park 变换(附动图,仿真文件以及详细讲解数学推导过程)

本文目的:最终可以完整推算两种变换

网上对于 Clark 变换与 Park 变换的各种解释都是浅尝辄止,丝毫没有涉及到了其中的真实含义,对于前面的参数也只是几笔带过。真的是很令人抓狂。。。为了解决此类痛点,本人搜罗了网上可以找到的几乎所有资料,最终凑成集大成的一篇文章,本文包含了 Clark 变换和 Park 变换的所有详细数学推导过程,它将一步一步带你了解他们的含义是什么。

参考资料与书籍

  1. 《电机模型分析及拖动仿真 ——基于 MATLAB 的现代方法》 陈众 编著
  2. 电机控制中Clark变换等幅值和等功率有什么影响呢? - Longson的回答 - 知乎
  3. 【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术 - 稚晖的文章 - 知乎
  4. 4种派克(Park)变换、克拉克(Clark)变换与基于dq轴解耦的双闭环控制之间的关系(一) - 似鸥电气的文章 - 知乎
  5. 关于2/3 和sqrt(2/3)的理解? - 丁有爽的回答 - 知乎
  6. FOC中的Clarke变换和Park变换详解(动图+推导+仿真+附件代码)- 小麦大叔 - CSDN

Clarke 变换

首先先看我们需要用到的两种坐标系

1. 自然坐标系 a b c abc abc

我们知道,通过三相逆变电路,我们可以画出一个自然坐标系 a b c abc abc ,即三相电压的坐标系,通入的电流在这三轴坐标系中变化:

在这里插入图片描述

将三个矢量相加合并在一起就如下图所展现:

在这里插入图片描述

使用三个坐标轴来表示十分的麻烦与不直观,因为其是非正交的,于是乎我们想要将其转化成使用两个正交的坐标轴来表示,于是乎便有了 Clarke变换。

Clarke 变换的作用: 将基于三轴二维的定子静止坐标系的各物理量变换到二轴的定子静止坐标系中,简称 3 S / 2 S 3S/2S 3S/2S 变换,其中 S S S 表示静止(与之对应 R R R 表示旋转)。 可将原来的三相绕组上的电压回路方程式简化成两相绕组上的电压回路方程式。

2. α β \alpha\beta αβ 坐标系

我们最后变换出来后会变成 α β \alpha \beta αβ 坐标系,如下图所示:

在这里插入图片描述

在这个坐标系中,这个时候只有两个正交的坐标轴。

3. 具体数学推算过程(变换与反变换)

(1)等功率变换过程

将两个坐标系合并到一起:

在这里插入图片描述

通过合并图,我们可以做一个基变换将其正交化,其实就是一个坐标轴投影计算,就是 Clarke 变换的过程:

a a a 轴和 α \alpha α 轴重合。三相绕组每相有效匝数为 N 3 N_3 N3 ,两相绕组每相有效匝数为 N 2 N_2 N2 ,各相磁动势为有效匝数与电流的乘积,其空间矢量均位于有关相的坐标轴上,矢量坐标变换必须遵循以下两个原则:

  • 变换前后电流所产生的旋转磁场等效
  • 变换前后两系统的电动机功率不变

N 2 I α = N 3 I a − N 3 c o s ( π 3 ) I b − N 3 c o s ( 2 π 3 ) I c N 2 I β = 0 + N 3 s i n ( π 3 ) I b − N 3 s i n ( π 3 ) I c N_2I_{\alpha}=N_3I_a-N_3cos(\frac {\pi}3)I_b-N_3cos(\frac {2\pi}3)I_c \\ N_2I_{\beta}=0+N_3sin(\frac {\pi}3)I_b-N_3sin(\frac {\pi}3)I_c N2Iα=N3IaN3cos(3π)IbN3cos(32π)IcN2Iβ=0+N3sin(3π)IbN3sin(3π)Ic

我们可以写成矩阵形式:

[ I α I β ] = N 3 N 2 [ 1 − 1 2 − 1 2 0 3 2 − 3 2 ] [ I a I b I c ] \begin{bmatrix} I_{\alpha}\\ I_{\beta} \end{bmatrix}= {\frac{N_3}{N_2}} \begin{bmatrix} 1 & -{\frac 12} & -{\frac 12}\\ 0 & {\frac {\sqrt{3}}{2}} & -{\frac {\sqrt{3}}{2}} \end{bmatrix} \begin{bmatrix} I_a\\ I_b\\ I_c \end{bmatrix} [IαIβ]=N2N3[102123 2123 ]IaIbIc

我们可以发现,我们能从 I a , I b , I c I_a, I_b, I_c Ia,Ib,Ic 推算出 I α , I β I_{\alpha},I_{\beta} Iα,Iβ,却无法进行反推算,反推算意味着需要对矩阵求逆,而这个矩阵无法求逆,于是我们需要引进一个新变量零轴电流 i 0 i_0 i0 ,零轴是同时垂直于 α \alpha α β \beta β 轴的轴,因此形成 α , β , 0 \alpha,\beta,0 α,β,0 轴坐标系。在大多时候零轴并不重要,可以忽略,于是我们定义为( k k k 为待定系数):
N 2 I 0 = k N 3 I a + k N 3 I b + k N 3 I c N_2I_0=kN_3I_a+kN_3I_b+kN_3I_c N2I0=kN3Ia+kN3Ib+kN3Ic
于是
[ I α I β I 0 ] = N 3 N 2 [ 1 − 1 2 − 1 2 0 3 2 − 3 2 k k k ] [ I a I b I c ] \begin{bmatrix} I_{\alpha}\\ I_{\beta}\\ I_0 \end{bmatrix}={\frac {N_3}{N_2}} \begin{bmatrix} 1 & -{\frac 12} & -{\frac 12}\\ 0 & {\frac {\sqrt{3}}{2}} & -{\frac {\sqrt{3}}{2}}\\ k & k & k \end{bmatrix} \begin{bmatrix} I_a\\ I_b\\ I_c \end{bmatrix} IαIβI0=N2N310k2123 k2123 kIaIbIc
所以我们定义 C \bold{C} C 矩阵为:
C = N 3 N 2 [ 1 − 1 2 − 1 2 0 3 2 − 3 2 k k k ] \bold{C}= {\frac {N_3}{N_2}} \begin{bmatrix} 1 & -{\frac 12} & -{\frac 12}\\ 0 & {\frac {\sqrt{3}}{2}} & -{\frac {\sqrt{3}}{2}}\\ k & k & k \end{bmatrix} C=N2N310k2123 k2123 k
所以转置矩阵为:
C T = N 3 N 2 [ 1 0 k − 1 2 3 2 k − 1 2 − 3 2 k ] \bold{C}^T= {\frac {N_3}{N_2}} \begin{bmatrix} 1 & 0 & k\\ -{\frac 12} & {\frac {\sqrt{3}}{2}} & k\\ -{\frac 12} & -{\frac {\sqrt{3}}{2}} & k \end{bmatrix} CT=N2N312121023 23 kkk
逆矩阵为:
C − 1 = 2 N 2 3 N 3 [ 1 0 1 2 k − 1 2 3 2 1 2 k − 1 2 − 3 2 1 2 k ] \bold{C}^{-1}= {\frac {2N_2}{3N_3}} \begin{bmatrix} 1 & 0 & {\frac1{2k}}\\ -{\frac 12} & {\frac {\sqrt{3}}{2}} & {\frac1{2k}}\\ -{\frac 12} & -{\frac {\sqrt{3}}{2}} & {\frac1{2k}} \end{bmatrix} C1=3N32N212121023 23 2k12k12k1

要使得发电机的输出功率完全不会变化,我们可以用下列式子推导:
P = U a b c T ∗ I a b c = ( C − 1 U α β 0 ) T ∗ ( C − 1 I α β 0 ) = U α β 0 T [ ( C − 1 ) T ∗ C − 1 ] I α β 0 = U α β 0 T ( N 2 N 3 ) 2 [ 2 3 0 0 0 2 3 0 0 0 1 3 k 2 ] I α β 0 P = U_{abc}^T*I_{abc}=(\bold{C}^{-1}U_{\alpha\beta0})^T*(\bold{C}^{-1}I_{\alpha\beta0})=U_{\alpha\beta0}^T[(\bold{C}^{-1})^T*\bold{C}^{-1}]I_{\alpha\beta0}\\=U_{\alpha\beta0}^T({\frac{N_2}{N_3}})^2 \begin{bmatrix} {\frac23} & 0 & 0\\ 0 & {\frac23} & 0\\ 0 & 0 & {\frac1{3k^2}} \end{bmatrix}I_{\alpha\beta0} P=UabcTIabc=(C1Uαβ0)T(C1Iαβ0)=Uαβ0T[(C1)TC1]Iαβ0=Uαβ0T(N3N2)232000320003k21Iαβ0
因为要使得 U a b c T ∗ I a b c = U α β 0 T ∗ I α β 0 U_{abc}^T*I_{abc} = U_{\alpha\beta0}^T*I_{\alpha\beta0} UabcTIabc=Uαβ0TIαβ0

所以:
U α β 0 T ( N 2 N 3 ) 2 [ 2 3 0 0 0 2 3 0 0 0 1 3 k 2 ] I α β 0 = U α β 0 T ∗ I α β 0 U_{\alpha\beta0}^T({\frac{N_2}{N_3}})^2 \begin{bmatrix} {\frac23} & 0 & 0\\ 0 & {\frac23} & 0\\ 0 & 0 & {\frac1{3k^2}} \end{bmatrix}I_{\alpha\beta0}=U_{\alpha\beta0}^T*I_{\alpha\beta0} Uαβ0T(N3N2)232000320003k21Iαβ0=Uαβ0TIαβ0
所以要使得:

C C = ( N 2 N 3 ) 2 [ 2 3 0 0 0 2 3 0 0 0 1 3 k 2 ] = [ 1 0 0 0 1 0 0 0 1 ] \bold{CC}=({\frac{N_2}{N_3}})^2 \begin{bmatrix} {\frac23} & 0 & 0\\ 0 & {\frac23} & 0\\ 0 & 0 & {\frac1{3k^2}} \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1 \end{bmatrix} CC=(N3N2)232000320003k21=100010001

即:

( N 2 N 3 ) 2 = 3 2 k 2 = 1 2 (\frac {N_2}{N_3})^2=\frac 32\\ k^2 = \frac 12 (N3N2)2=23k2=21
的时候可以保持功率不变。

编写MATLAB文件,验证参数,代码如下:

syms N2 N3 k real;
C = N3/N2 * [1 -1/2 -1/2; 0 sqrt(3)/2 -sqrt(3)/2; k k k];
CInv = C^-1;
CC = CInv' * CInv;

最后 C C \bold{CC} CC 矩阵的输出如下:

CC =
 
[ (2*N2^2)/(3*N3^2),                 0,                 0]
[                 0, (2*N2^2)/(3*N3^2),                 0]
[                 0,                 0, N2^2/(3*N3^2*k^2)]

我们代入已经求出来的参数,就可以得到 C l a r k e Clarke Clarke 变换以及 C l a r k e Clarke Clarke 逆变换的矩阵

  • C l a r k e Clarke Clarke 变换

[ I α I β I 0 ] = C [ I a I b I c ] = 2 3 [ 1 − 1 2 − 1 2 0 3 2 − 3 2 1 2 1 2 1 2 ] [ I a I b I c ] \begin{bmatrix} I_{\alpha}\\ I_{\beta}\\ I_0 \end{bmatrix}={\bold C} \begin{bmatrix} I_a\\ I_b\\ I_c \end{bmatrix} =\sqrt{\frac23} \begin{bmatrix} 1 & -{\frac 12} & -{\frac 12}\\ 0 & {\frac {\sqrt{3}}{2}} & -{\frac {\sqrt{3}}{2}}\\ {\frac 1{\sqrt2}} & {\frac 1{\sqrt2}} & {\frac 1{\sqrt2}} \end{bmatrix} \begin{bmatrix} I_a\\ I_b\\ I_c \end{bmatrix} IαIβI0=CIaIbIc=32 102 12123 2 12123 2 1IaIbIc

  • C l a r k e Clarke Clarke 逆变换

[ I a I b I c ] = C − 1 C [ I a I b I c ] = C − 1 [ I α I β I 0 ] = 2 3 [ 1 0 1 2 − 1 2 3 2 1 2 − 1 2 − 3 2 1 2 ] [ I α I β I 0 ] \begin{bmatrix} I_a\\ I_b\\ I_c \end{bmatrix} ={\bold C}^{-1}{\bold C} \begin{bmatrix} I_a\\ I_b\\ I_c \end{bmatrix} ={\bold C}^{-1} \begin{bmatrix} I_{\alpha}\\ I_{\beta}\\ I_0 \end{bmatrix}= \sqrt{\frac23} \begin{bmatrix} 1 & 0 & {\frac 1{\sqrt2}}\\ -{\frac 12} & {\frac {\sqrt{3}}{2}} & {\frac 1{\sqrt2}}\\ -{\frac 12} & -{\frac {\sqrt{3}}{2}} & {\frac 1{\sqrt2}} \end{bmatrix} \begin{bmatrix} I_{\alpha}\\ I_{\beta}\\ I_0 \end{bmatrix} IaIbIc=C1CIaIbIc=C1IαIβI0=32 12121023 23 2 12 12 1IαIβI0

(2)等幅值变换过程

当要使得幅值不会变化的时候

首先我们得明确空间矢量和时间矢量的区别:

在这里插入图片描述

空间矢量只表示空间位置与正向朝向,没有时间的概念,而时间矢量就表示矢量随着时间的变化

在上图中,abc三相电压给人的感觉就是,a相相位超前c相120度,且a相相位超前b相240度,而正常情况下,在abc三相电压中,a相相位超前b相120度,且a相相位超前c相240。其实,abc三相的相序并没有改变,产生上述两种不同情况的原因在于,前一种是通过时间矢量图描述abc三相的关系,而上图是通过空间矢量图描述abc三相的关系,SVPWM中会经常用到空间矢量图,而且我觉得这与物理中描述物体简谐运动的旋转矢量法类似。

于是我们可以写出三相电流关系:

有三相电流关系:
I a = I c o s ( ω t ) I b = I c o s ( ω t − 2 ∗ π / 3 ) I c = I c o s ( ω t + 2 ∗ π / 3 ) I_a = Icos(\omega t)\\ I_b = Icos(\omega t-2*\pi/3)\\ I_c = Icos(\omega t+2*\pi/3) Ia=Icos(ωt)Ib=Icos(ωt2π/3)Ic=Icos(ωt+2π/3)
因为要求等幅值, I α I_\alpha Iα I a I_a Ia 相位相同且 空间矢量 表示 α \alpha α 相相位超前 β \beta β 相相位 90° , 所以我们要求:
I α = I c o s ( ω t ) I β = I c o s ( ω t + π 2 ) = I s i n ( ω t ) I_\alpha = Icos(\omega t)\\ I_\beta = Icos(\omega t+\frac {\pi}2)=Isin(\omega t)\\ Iα=Icos(ωt)Iβ=Icos(ωt+2π)=Isin(ωt)
这样才使得: I α / I β 、 U α / U β I_\alpha/I_\beta、U_\alpha/U_\beta Iα/IβUα/Uβ I a / I b / I c 、 U a / U b / U c I_a/I_b/I_c、U_a/U_b/U_c Ia/Ib/IcUa/Ub/Uc 有着相同的幅值 。

当我们使用Clarke变换把三相坐标系变成两相坐标系的时候:
N 2 I α = N 3 I a − N 3 c o s ( π 3 ) I b − N 3 c o s ( 2 π 3 ) I c N 2 I β = 0 + N 3 s i n ( π 3 ) I b − N 3 s i n ( π 3 ) I c N_2I_{\alpha}=N_3I_a-N_3cos(\frac {\pi}3)I_b-N_3cos(\frac {2\pi}3)I_c \\ N_2I_{\beta}=0+N_3sin(\frac {\pi}3)I_b-N_3sin(\frac {\pi}3)I_c N2Iα=N3IaN3cos(3π)IbN3cos(32π)IcN2Iβ=0+N3sin(3π)IbN3sin(3π)Ic
如等功率所推算,我们引入一个零轴分量 I 0 I_0 I0
N 2 I 0 = k N 3 I a + k N 3 I b + k N 3 I c N_2I_0=kN_3I_a+kN_3I_b+kN_3I_c N2I0=kN3Ia+kN3Ib+kN3Ic
化成矩阵形式如下:
[ I α I β I 0 ] = N 3 N 2 [ 1 − 1 2 − 1 2 0 3 2 − 3 2 k k k ] [ I a I b I c ] \begin{bmatrix} I_{\alpha}\\ I_{\beta}\\ I_0 \end{bmatrix}={\frac {N_3}{N_2}} \begin{bmatrix} 1 & -{\frac 12} & -{\frac 12}\\ 0 & {\frac {\sqrt{3}}{2}} & -{\frac {\sqrt{3}}{2}}\\ k & k & k \end{bmatrix} \begin{bmatrix} I_a\\ I_b\\ I_c \end{bmatrix} IαIβI0=N2N310k2123 k2123 kIaIbIc

又我们设 N 3 N 2 \frac {N_3}{N_2} N2N3 为系数 m m m ,则我们可以把矩阵化为
I α = m I a − m 1 2 I b − m 1 2 I c I β = m 3 2 I b − m 3 2 I c I 0 = m k ( I a + I b + I c ) I_\alpha = mI_a-m\frac 12I_b-m\frac 12I_c\\ I_\beta = m\frac {\sqrt 3}2I_b-m\frac {\sqrt 3}2I_c\\ I_0=mk(I_a+I_b+I_c) Iα=mIam21Ibm21IcIβ=m23 Ibm23 IcI0=mk(Ia+Ib+Ic)
代入电流关系式到方程组 I β I_\beta Iβ 中:
I s i n ( ω t ) = m 3 2 I [ c o s ( ω t − 2 ∗ π / 3 ) − c o s ( ω t + 2 ∗ π / 3 ) ] Isin(\omega t)=m\frac {\sqrt 3}2I[cos(\omega t-2*\pi/3)-cos(\omega t+2*\pi/3)] Isin(ωt)=m23 I[cos(ωt2π/3)cos(ωt+2π/3)]
化简得:
m = 2 3 m=\frac 23 m=32
同理代入到 I 0 = m k ( I a + I b + I c ) I_0=mk(I_a+I_b+I_c) I0=mk(Ia+Ib+Ic) 得到:
k = 1 2 k = \frac 12 k=21
所以等幅值 Clarke 变换矩阵为:
[ I α I β I 0 ] = 2 3 [ 1 − 1 2 − 1 2 0 3 2 − 3 2 1 2 1 2 1 2 ] [ I a I b I c ] \begin{bmatrix} I_{\alpha}\\ I_{\beta}\\ I_0 \end{bmatrix}={\frac 23} \begin{bmatrix} 1 & -{\frac 12} & -{\frac 12}\\ 0 & {\frac {\sqrt{3}}{2}} & -{\frac {\sqrt{3}}{2}}\\ \frac 12 & \frac 12 & \frac 12 \end{bmatrix} \begin{bmatrix} I_a\\ I_b\\ I_c \end{bmatrix} IαIβI0=3210212123 212123 21IaIbIc
同理求逆矩阵可以得到等幅值的 Clarke 逆变换矩阵。

当等幅值的时候,功率就不等了,下面是具体分析:

使用 MATLAB进行分析:

syms U I w t;
%-------三相电流方程-----------
ia = I * sin(w*t);
ib = I * sin(w*t + 2*pi/3);
ic = I * sin(w*t - 2*pi/3);
%-------三相电压方程-----------
ua = U * sin(w*t);
ub = U * sin(w*t + 2*pi/3);
uc = U * sin(w*t - 2*pi/3);
%---------功率方程-------------
P = ua*ia + ub*ib + uc*ic;

最后解得:

P =
 
I*U*sin(t*w)^2 + I*U*sin((2*pi)/3 + t*w)^2 + I*U*sin((2*pi)/3 - t*w)^2

对上式进行化简最后可得:
P = u a i a + u b i b + u c i c = 3 2 U I P = u_ai_a+u_bi_b+u_ci_c=\frac 32UI P=uaia+ubib+ucic=23UI
可以看到,如果采用了等幅值变换,计算功率时需要乘以系数3/2才能做到与变换前一致。即:
P = 3 2 ( U α I α + U β I β ) = 3 2 U I P=\frac 32(U_\alpha I_\alpha +U_\beta I_\beta)=\frac 32UI P=23(UαIα+UβIβ)=23UI

(3)总结

在这里插入图片描述

另附:第二种推算方法

https://blog.csdn.net/jaysur/article/details/100673823

4. Simulink 仿真

幅值不变情况

我们只仿真幅值不变情况,功率不变就是变化系数而已。

本人仿真:搭建出仿真模型如下:(采用了Sine Wave, Mux, Demux, MATLAB Function 以及 Scope 模块)

在这里插入图片描述

abcToAlphabeta 模块代码如下:

function y = fcn(a,b,c)

alpha = a - b/2 - c/2;
beta = sqrt(3)/2 * (b - c);
y = (2/3)*[alpha;beta];

alphabataToABC 模块代码如下:

function y = fcn(alpha,beta)

a = alpha;
b = -1/2 * alpha + sqrt(3)/2 * beta;
c = -1/2 * alpha - sqrt(3)/2 * beta;
 
y = [a;b;c];

为了便于查看,我们选择函数波形频率为10Hz。三个信号的相位分别为0+pi/2, pi/2-2/3*pi 和 pi/2+2/3*pi(因为要变成 cos ,所以每个相位要加上 π / 2 \pi/2 π/2

最后得出仿真波形:

在这里插入图片描述

可以观察到,这是幅值不变的情况下的波形。具体内容可以结合数学推算自行分析加深理解。

Park 变换

我们还可以接着变换:虽然坐标系下少了一维变量,但是新的变量还是非线性的(正弦),有没有办法把它们线性化呢?Park变换就是做这个工作的。

在我们学电机学的时候我们曾经听说过直轴与交轴这两个名词。在直轴和交轴上面各存在一个定值,则我们可以引出一个坐标系。

d 轴方向与转子磁链方向重合,又叫直轴;直轴的气隙最小,磁阻最小,相应的电抗最大;

q 轴方向与转子磁链方向垂直,又叫交轴;交轴的气隙最大,磁阻最大,相应的电抗最小;

如下图所示:

在这里插入图片描述

1. d q dq dq 坐标系

d q dq dq 坐标系相对于定子来说是旋转的坐标系,转动的角速度与转子旋转的角速度相同,所以相对于转子, d q dq dq 坐标系就是静止的坐标系;而 I d I_d Id I q I_q Iq 是恒定不变的两个值。如下图所示, q q q 轴超前 d d d π / 2 \pi/2 π/2

在这里插入图片描述

2. 具体数学推算过程

P a r k Park Park 变换的本质,就是把静止的 α β \alpha \beta αβ 坐标系变换到旋转的 d q dq dq 坐标系之中,这样子的目的就是可以响控制直流电机那样控制交流电机了,如何变换到旋转呢,我们引入旋转矩阵:
R = [ c o s θ s i n θ − s i n θ c o s θ ] \bold R= \begin{bmatrix} cos\theta & sin\theta\\ -sin\theta & cos\theta\\ \end{bmatrix} R=[cosθsinθsinθcosθ]
静止坐标轴与旋转矩阵相乘便是 P a r k Park Park 变换:
[ I d I q ] = [ c o s θ s i n θ − s i n θ c o s θ ] [ I α I β ] \begin{bmatrix} I_d\\ I_q\\ \end{bmatrix}= \begin{bmatrix} cos\theta & sin\theta\\ -sin\theta & cos\theta\\ \end{bmatrix} \begin{bmatrix} I_{\alpha}\\ I_{\beta} \end{bmatrix} [IdIq]=[cosθsinθsinθcosθ][IαIβ]
P a r k Park Park 反变换与变换的区别就是旋转矩阵的不同,即旋转矩阵的逆

我们使用 MATLAB 计算此矩阵的逆,代码如下:

syms w;
R = [cos(w) sin(w); -sin(w) cos(w)];
RInv = R^-1

得到如下结果:

RInv =
 
[ cos(w)/(cos(w)^2 + sin(w)^2), -sin(w)/(cos(w)^2 + sin(w)^2)]
[ sin(w)/(cos(w)^2 + sin(w)^2),  cos(w)/(cos(w)^2 + sin(w)^2)]

因为 cos(w)^2 + sin(w)^2=1

所以:
R − 1 = [ c o s θ − s i n θ s i n θ c o s θ ] \bold R ^{-1}= \begin{bmatrix} cos\theta & -sin\theta\\ sin\theta & cos\theta\\ \end{bmatrix} R1=[cosθsinθsinθcosθ]
所以 P a r k Park Park 逆变换为:
[ I α I β ] = [ c o s θ − s i n θ s i n θ c o s θ ] [ I d I q ] \begin{bmatrix} I_{\alpha}\\ I_{\beta} \end{bmatrix}= \begin{bmatrix} cos\theta & -sin\theta\\ sin\theta & cos\theta\\ \end{bmatrix} \begin{bmatrix} I_d\\ I_q\\ \end{bmatrix} [IαIβ]=[cosθsinθsinθcosθ][IdIq]

我们通过编码器输入转子的实时旋转角度,所以这个角度始终是一个已知数。经过这一步的变换,我们会发现,一个匀速旋转向量在这个坐标系下变成了一个定值(因为参考系相对于该向量静止了),这个坐标系下两个控制变量都被线性化了。

所以我们把
I α = I c o s ( ω t ) I β = I s i n ( ω t ) I_\alpha = Icos(\omega t)\\ I_\beta = Isin(\omega t)\\ Iα=Icos(ωt)Iβ=Isin(ωt)
代入 P a r k Park Park 变换式(其中 ω t = θ \omega t=\theta ωt=θ),最终得到结果如下:
I d = c o s θ I α + s i n θ I β = I ( c o s 2 θ + s i n 2 θ ) = I I q = − s i n θ I α + c o s θ I β = I ( − s i n θ c o s θ + s i n θ c o s θ ) = 0 I_d = cos\theta I_\alpha+sin\theta I_\beta=I(cos^2\theta+sin^2\theta)=I\\ I_q=-sin\theta I_\alpha+cos\theta I_\beta=I(-sin\theta cos\theta+sin\theta cos\theta)=0 Id=cosθIα+sinθIβ=I(cos2θ+sin2θ)=IIq=sinθIα+cosθIβ=I(sinθcosθ+sinθcosθ)=0
所以我们可以看到 Park 变换将其变成两个直流分量!!!推算完毕!!!

3. Simulink 仿真

下为本人搭建出的仿真模块

在这里插入图片描述

我增加了一个 P a r k Park Park 变换模块 alphabetaTodq ,内部模块代码如下:

function y = fcn(alpha,beta,t)

w = 10; % 保持 θ = wt
d =  alpha*cos(w*t) + beta*sin(w*t);
q = -alpha*sin(w*t) + beta*cos(w*t);
 
y = [d;q];

其中 t t t 为时间变量,我采用斜坡信号等同。最后仿真结果如下:

在这里插入图片描述

可以看到,已经变成两条直流分量。

附录

附上仿真文件下载链接,有mdl和slx文件,其中slx文件需高版本matlab才可打开:
https://github.com/WilsonHHX/FOC_Project/tree/main/MATLAB%20Files

猜你喜欢

转载自blog.csdn.net/weixin_43229030/article/details/115190315