专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
DSP
park,clark和ipark浅析
2019-07-13 16:04
发布
生成海报
站内文章
/
DSP
14065
0
1401
http://blog.sina.com.cn/s/blog_531237a90101j7uw.html
相信做过电动机矢量控制或者直接转矩控制的朋友们肯定会对
park
,
clark
,
ipark
变换再熟悉不过了,肯定有人认为没有必要写这个东西。其实我写这个东西只是为了加深自己对上面三种变化的理解,因为今天我在调程序的时候,这三个变换把我弄糊涂了。
好,下面先来介绍这三个变换。
Clark变换。
为什么会有这三个变换呢,从宏观上来讲,三相异步电动机是三相对称的交流供电,那么既然三相对称,我们可以用两相交流电来产生和三相交流相同的磁场效应,这样一来,我们只剩下了两相。经过变换之后,以前三相对称,相隔
120
o
,而经过变换之后,变成了两相想间隔
90
o
的交流供电。计算过程如下:
变换过程如图
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
变换之间的关系,希望该文章能给大家带来帮助。
Ta的文章
更多
>>
park,clark和ipark浅析
0 个评论
op精密检波和绝对值电路分析
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮