相信做过电动机矢量控制或者直接转矩控制的朋友们肯定会对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变换之间的关系,希望该文章能给大家带来帮助。

matlab park clark,[转载]park,clark和ipark浅析相关推荐

  1. park,clark和ipark浅析

     http://blog.sina.com.cn/s/blog_531237a90101j7uw.html https://blog.csdn.net/qq_27158179/article/de ...

  2. 手撕永磁同步电机:foc(clark、park、ipark)变换、电机数学模型解耦过程推导

    文章目录 前言 一.建立数学模型的作用? 二.数学模型 1.三相坐标系下数学模型 2.复平面的数学模型(两相坐标) 3.dq轴坐标数学模型(旋转坐标) 4.clark.park推导 总结 前言 此文是 ...

  3. BLDC-坐标变换(Clark,Park,反Park)

    坐标变换(Clark,Park,反Park) Q15格式 电流为Ia,Ib,Ic,角度θ Clark: struct_Clark Clarke(struct_Curr_abc Iphase) { st ...

  4. 1、【转载】Python yield 使用浅析

    1.[转载]Python yield 使用浅析 [注:此文转载自https://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/ ...

  5. 并网逆变器的clark、park变换的C语言实现技巧

    坐标变换,及c语言实现的讲解多如牛毛. 在此也做点整理,加入一根牛毛.偏重用什么样的C语言语法技巧实现这些变换来做双环控制的. 此处用到了C语言在嵌入式领域非常常用的一个语法:函数指针. 指针是个变量 ...

  6. FOC:在MCU上检验Clark和Park坐标变换是否正确

    文章目录 前言 程序 头文件 clark 变换 C实现 park c 变换实现 仿真 前言 仿真简单,可以参考仿真的结果,但是实际中将代码移植到MCU,会出现一些新的问题,所以需要对坐标变换部分算法进 ...

  7. Clark与Park变换推导

    1.beta轴超前alpha轴90度 2. beta轴滞后alpha轴90度 参考资料:(124条消息) 电机FOC中的坐标变换(CLARK+PARK+公式推导+仿真+C语言实现)_qq_271581 ...

  8. PMSM FOC控制 Matlab/Simulink仿真之Park变换

    1.Park变换的原理 上一节,我们说过,PMSM foc 控制需要坐标变换,说到了Clark变换,其实在Clark变换后还需要Park变换,把静止的2相坐标转换到2相的移动坐标,即2s->2r ...

  9. matlab text固定,[转载] 控制text位置-[Matlab]

    [转载] 控制text位置-[Matlab] Sample code: old_units = get(gca,'units'); set(gca,'units','inches'); ax_pos ...

最新文章

  1. MVC、MVP和MVVM的优缺点
  2. Centos下Yum安装PHP5.5,5.6,7.0
  3. 黑马程序员pink老师前端入门教程,零基础必看的JavaScript基础语法视频教程(jQuery1)
  4. Windows环境下使用 Caffe在ImageNet上训练网络
  5. 用JADE创建多agent系统
  6. linux命令总结----转载
  7. Codeforces Round #631 (Div. 2) D. Dreamoon Likes Sequences 思维 + 组合数学
  8. 整洁架构之道--三种经典的编程范式
  9. 微型计算机原理与接口电子教案,《微型计算机原理与接口技术》电子教案研讨.ppt...
  10. mysql在centos下用命令批量导入报错_Variable ‘character_set_client‘ can‘t be set to the value of ‘---linux工作笔记042
  11. 20211028:DC综合时的内部时钟处理
  12. 成功要掌握人生的每一次机会
  13. boost::serialization 用基类指针转存派生类(错误多多,一波三折)
  14. dubbo 自定义filter
  15. 安装LuaRocks
  16. Swagger怎么下载文件
  17. Android实现通话呼叫转移与监听通话录音功能
  18. [matlab]简单的线性拟合以及作图
  19. 倒在转“码”路上的文科生
  20. 考研807程序设计C语言教程,中央财经大学

热门文章

  1. 初创企业数据体系建设
  2. 辗转相除法的时间复杂度
  3. PostgreSQL学习篇9.5 货币类型
  4. IOException: Sharing violation on path 异常
  5. 【C语言】猜随机数小游戏(知识点:如何产生一个随机值)
  6. CSS样式书写顺序 与 浏览器内部加载原理
  7. 在 Windows 中打开蓝牙设备
  8. 信用评分卡 (part 5 of 7)
  9. Windchill介绍
  10. webpack+vue的项目模块分分合合