park,clark和ipark浅析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

原文地址:park,clark和ipark浅析作者:温暖小屋
相信做过电动机矢量控制或者直接转矩控制的朋友们肯定会对park,clark,ipark变换再熟悉不过了,肯定有人认为没有必要写这个东西。

其实我写这个东西只是为了加深自己对上面三种变化的理解,因为今天我在调程序的时候,这三个变换把我弄糊涂了。

好,下面先来介绍这三个变换。

Clark变换。

为什么会有这三个变换呢,从宏观上来讲,三相异步电动机是三相对称的交流供电,那么既然三相对称,我们可以用两相交流电来产生和三相交流相同的磁场效应,这样一来,我们只剩下了两相。

经过变换之后,以前三相对称,相隔120o,而经过变换之后,变成了两相想间隔90o的交流供电。

计算过程如下:
变换过程如图1.1所示。

图1.1 clark变换过程
我们看到Ia,Ib和Ic都三相对称的交流,而Iq和Id是两相间隔90°的交流电。

那么变换之后的效果如下图1.2所示。

图1.2 clark变换后效果
在控制电动的过程中,clark变换的输入输出为图1.3所示。

图1.3 clark变换模块图
这里As和Bs是想间隔120°的输入正弦信号,而Alpha和Beta是想间隔90°的输出
正弦信号。

所以这的As和Bs分别对应上面的Ia和Ib,而Alpha和Beta分别对应上面
的Id和Iq。

Park变换。

我们知道,我们现在讨论的坐标都是在定子角度来看的,也就是静止坐标。

我们知道,三相异步电动机是高耦合,非线性,多变量的系统,控制起来非常困难。

矢量
控制的思想就是要实现三相电动机的解耦控制,什么意思呢,就是要像控制直流电动机那
样去控制三相电动机,可以分别对励磁电流和转矩电流分别控制,有人问,怎么实现,我
回答:马上就可以实现。

我们上面说了,clark变换就是将三相变成两相,但这时候还是静止的,但是相对转子是旋转的,我们要实现解耦控制,就要实现坐标相对转子静止,park
变换这个时候可以派上用场了。

Park变换的输入输出如图1.4所示。

图1.4 park变换模块图
上面Alpha和Beta是相对定子静止的两相正弦信号,想间隔90°,而Angle是转子相
对定子的角度。

通过这三个变量,可以将相对定子静止的坐标变成相对转子静止的坐标。

变换过程如图1.5所示。

图1.5 park变换过程
上图中,Id和Iq分别对应输入的Alpha和 Beta,而ID和IQ分别对应Ds和Qs,经过
这个变换之后,输出的变量就变成了相对转子静止的两个变量了,这两个变量,ID对应
励磁电流,IQ对应转矩电流,注意,这两个变量不再是正弦信号,而是直流分量了,因为
要想直流电动机那样控制嘛。

这样我们可以通过改变这两个变量来分别控制电动机的励磁
和转矩,就是控制直流电动机那样。

从上图可以退出Park变化公式如下:
其实话说回来了,这是从三相(相对定子静止)—>两相(相对定子静止)—>两相(相对转子静止)这个推导过程,那么我们在控制电动机的时候,肯定是倒着来的,也就是先设定励磁电
流和转矩电流,然后变换到相对定子静止的两相,然后变换到相对定子静止的三相。

我们
来看逆推过程。

Ipark变换。

从相对转子静止两相到相对定子静止的两相的变换就是ipark变换。

该模块
的输入输出如图1.6所示。

图1.6 ipark变换模块
大家看,上上面的park变换多么相似,其实就是park的逆变换。

这里我就不想多说了。

Ipark的变换公式如下:
再次看出和park变换之间的关系。

上面的Ds和Qs分别是设定的励磁电流和转矩电流,
是直流分量,而输出的是相间隔90°的正弦信号。

那么怎么使相隔90°的信号变成相间
隔120°的信号呢,这里要利用AVGEN_DQ模块,该模块的输入输出模型如图1.6所示。

图1.6 SVGEN_DQ 模块
经过变换之后,生成Ta,Tb和Tc,这三个变量时PWM全比较单元的开关比例,说道这
里应该很明白了吧,即使这三个数值乘上定时器的周期,就可以得出每个比较单元的比较
数值了。

今天做了一个实验来验证这几个变换之间的关系,发现了很多问题,来和大家分享一下。

既然clark变换是将三相正弦信号变成两相信号,那么我们给它一个间隔120°的信号,输出应该是一个相间隔为90°的信号。

我加上的相隔120°的信号时这样的:
clark1.As = _IQmpy(_IQcosPU(rampgen1.Out),_IQ(0.5)); //clark 变换
clark1.Bs =
_IQmpy(_IQdiv(clark1.As,_IQcosPU(rampgen1.Out)),_IQcosPU(rampgen1.Out -
_IQdiv(_IQ(1.0),_IQ(3.0))));
上面是IQ格式,比较难理解,我们直观的写成如下格式:
Clark1.As = cos(ɵ)
Clark1.Bs = cos(ɵ + 2pi/3)
这两个相间隔120°问谁都说没错。

我们加上这个信号后,clark输出信号如图1.7所示。

图1.7 clark变换输出
输出相间隔90°的信号没错。

那么我们加到park变换上,输出应该是两个直流分量了。

但是不是我想象中的那样子。

如图1.8所示。

图1.8 park变换输出
这是什么原因呢?为什么不是想我输入的那样子呢,为什么一个分量的数值几乎为零,另一个分量的数值却很大。

为了验证程序的正确定,我直接将ipark变换的输出,加到park的输入,这样,又反变换回去,应该输出的是我之前设定的Ds和Qs的数值。

加入park信号和park输出信号如图1.9和1.10所示。

图1.9 加入park信号
图1.10 park输出信号
这和我之前设定的Ds和Qs的数值几乎一样,我就纳闷了,为什么两次输入到park变换
的波形一模一样,为什么会有不同的输出呢,后来我就用公式来推导导致这种结果的原因。

推导如下:我加入的信号是这样的:
Clark1.As = cos(ɵ)
Clark1.Bs = cos(ɵ + 2pi/3);
参照上面的clark变换公式,我的clark输出的两个信号为:
Clark1.Alpha = cos(ɵ)
Clark1.Beta = sin(ɵ)
上面两个信号要输入到park中,在经过park变换之后,park的输出为:
Ds = 0.5(之前设定的幅值就是 0.5)
Qs = 0
我明白了为什么我的park输出为零了。

那在看看从ipark中输出的信号为什么可以转变成之前设定的Ds和Qs,这两次信号的差异到底在哪里?直流分量经过ipark变换之后的输
出为:
Ipark1.Alpha = 0.2cos(ɵ) – 0.3sin(ɵ) = Acos(ɵ + B)
Ipark1.Beta = 0.2sin(ɵ) + 0.3cos(ɵ) = Asin(ɵ + B)
上面两个信号要输入到park中,注意,这里和我自己设定的信号有一个不同的地方,那
就是相位不同,这里有一个差值B,这个差值也许就是导致park输出不同的原因吧。

经过park变换,输出为:
Ds = 0.2
Qs = 0.3
我这之后突然明白,其实Ds和Qs的数值不只是决定了正弦信号的幅值,也同时决定了正弦信号的相位偏移,而我输入的信号,默认相位偏移为0,所以就得出,一个数值为0.5,而另一个为0。

这样我把信号增加了一个偏移后,得出的信号如图1.11.
图1.11增加偏移后park输出
经过这两个实验,我深刻理解了park,clark和ipark变换之间的关系,希望该文章能给大家带来帮助。

相关文档
最新文档