本文主要讨论了

  • 为什么通过clark park变换得到的DQ轴分量正负号出现了问题?
  • maxwell的真的是d轴对齐A相轴线吗?
  • 为什么maxwell中反电势会超前磁链?
  • maxwell采用的是电动机还是发电机惯例

1.问题的引出

1-1 pruis电机模型(通过id=-150A,iq=100A反推三相电流)

前段时间做毕业设计,其中一个任务是绘制pruis电机dq轴电感和磁链随dq轴电流变化的曲面图,我通过idq反推iabc给定三相电流激励,这样便于扫描电流,其公式为
ia=cos(Omega · Time) id-sin(Omega · Time) iq
ib=cos(Omega · Time) (-1/2 id+sqrt(3)/2 iq)+sin(Omega · Time) (sqrt(3)/2 id+1/2 iq)
ic=cos(Omega · Time) (-1/2 id-sqrt(3)/2 iq)+sin(Omega · Time) (-sqrt(3)/2 id+1/2 iq)
然后再通过clark和park变化得到dq磁链(id=-150A,iq=100A,下文不加说明默认都是扫描的这个状态)
ψd=2/3(cos(Omega · Time)(FluxLinkage(PhaseA)-1/2 FluxLinkage(PhaseB)-1/2 FluxLinkage(PhaseC))
+sin(Omega · Time) (sqrt(3)/2 FluxLinkage(PhaseB)-sqrt(3)/2 FluxLinkage(PhaseC)))
ψq=2/3 (sin(Omega · Time) (-FluxLinkage(PhaseA)+1/2 FluxLinkage(PhaseB)+1/2 FluxLinkage(PhaseC))
+cos(Omega · Time) (sqrt(3)/2 FluxLinkage(PhaseB)-sqrt(3)/2 FluxLinkage(PhaseC)))
但是这么做,不知什么原因,出现了一个问题,问题就是:id=iq=0时,计算d轴磁链得到的应该是正的,但是我算的平均值是负的,做的时候知识储备太少,没发现这个细节。仔细想想,电磁转矩公式前半部分的永磁转矩,永磁体磁链肯定应该是正的,不然转矩可能会小于0.

1-2 RMxprt生成的表贴式MAXWELL模型(空载 Imax=0)

因为上面的问题是后来学习UDO的时候发现的,我先用RMxprt建了个表贴式模型,一键生成MAXWELL,通的电流是基于三相电流公式,公式如下
ia=Imax sin(Omega · Time+Gamma)
ib=Imax sin(Omega · Time-2/3 pi+Gamma)
ic=Imax sin(Omega · Time+2/3 pi+Gamma)
Imax=0时,通过1-1里的clark和park变化得到dq磁链,果然还是负的,但是我使用User Defined Output 模块中的D-Q solution进行运算,得到的结果是d为正,q为0。我感觉这个结果才是正确的。

1-3 RMxprt生成的表贴式MAXWELL模型( Imax=100A)

还是基于刚刚RMxprt生成的模型,通的电流是基于三相电流公式,公式如下
ia=Imax sin(Omega · Time+Gamma)
ib=Imax sin(Omega · Time-2/3 pi+Gamma)
ic=Imax sin(Omega · Time+2/3 pi+Gamma)
在Imax=100A时,我对三相电流进行clark和park变换,公式如下:
id=2/3 (cos(Omega · Time) (InputCurrent(PhaseA)-1/2 InputCurrent(PhaseB)-1/2 InputCurrent(PhaseC))
+sin(Omega · Time) (sqrt(3)/2 InputCurrent(PhaseB)-sqrt(3)/2 InputCurrent(PhaseC)))
iq=2/3 (sin(Omega · Time) (-InputCurrent(PhaseA)+1/2 InputCurrent(PhaseB)+1/2 InputCurrent(PhaseC))
+cos(Omega · Time) (sqrt(3)/2 InputCurrent(PhaseB)-sqrt(3)/2 InputCurrent(PhaseC)))
因为根据RMxprt的初步仿真,在额定转速3600rpm下的电流控制角Gamma=28.53deg,通过计算id=-47A,iq=87A,和下图得到的结果正负号正好相反。

1-4

在pruis模型中,按1-1所示的方法给定三相电流,再用clark和park变换得到的dq轴电流也是正确的,这里怀疑变换公式有问题,但是一正一反的变换使得这个问题被抵消了。

2.问题的探究(总结并提出新的问题)

2-1 RMxprt生成的表贴式MAXWELL模型( Imax=100A)

因为不明白用clark和park变换得到的结果问题出在哪,我就先考虑为啥UDO模块中的D-Q solution得到的结果是正确的。

上图的设置,极数6,绕组相序counter-clockwise,我理解的电机的绕组应该都是这么排列,才能保证转子逆时针旋转时,切割绕组轴线的顺序是ABC,而且这也是软件默认的选项。一开始不理解Alignment angle of the D-Q axis的意思,我就查看了ANSYS的Transient D-Q Solutions的Python源码,截取了一段,如下:

 # if WO == "CounterClockwise":        # thet =  Position[k]*Poles/2. + InitialPosition + pi# else:# thet =  Position[k]*Poles/2. + InitialPosition + pi/2

thet是坐标变换park变换中代入得数值,Position[k]存放了转子的位置数据,因为此电机给了10deg的初始位置角,因此实际上它是从10deg开始的,InitialPosition就是上面的Alignment angle of the D-Q axis,ANSYS的帮助文件意思是Alignment angle of the D-Q axis= - Poles/2*初始位置角= - 30deg,理解起来就是ANSYS无法像我们一样,通过转速得到一个Omega · Time,他只知道转子位置,然后减去那个偏移的初始位置(还得乘极对数)。
而且从RMxprt一键转换MAXWELL的时候,我发现ANSYS帮我们设置好了输出量,如下图,侧面验证了上面的想法

新的问题来了,为什么这两段的thet或是说pos都加了一个PI,众所周知,加了一个PI,会使sin和cos变为其相反数,而且我使用的不加PI的公式,确实和他dq轴电流和磁链的结果是相反数。

2-2 pruis电机模型(通过id=-150A,iq=100A反推三相电流)

为了探究刚刚的结论,将1-1中的公式+pi
ia=cos(Omega · Time +pi) id-sin(Omega · Time +pi) iq
ib=cos(Omega · Time +pi) (-1/2 id+sqrt(3)/2 iq)+sin(Omega · Time +pi) (sqrt(3)/2 id+1/2 iq)
ic=cos(Omega · Time +pi) (-1/2 id-sqrt(3)/2 iq)+sin(Omega · Time +pi) (-sqrt(3)/2 id+1/2 iq)
得到的三相电流如下图所示

因为id=-150A,iq=100A,可以得到电流控制角Gamma=arctan(150/100)=56.31°,即定子电流合成矢量超前了q轴56.31°
再来看得到的电流波形,分析A相,推测电流相位超前0时刻的度数,(4.22ms - 5ms)/ 5ms * 360° = -56.6°,和理论值差不多。
再来对比一下,按1-1里的公式给定电流的结果,如下图所示

这个结果是(1.72ms - 5ms)/ 5ms * 360° = -236.16°,因为没有+pi,所以得到的电流超前(或者滞后)了前者180°,1-1中的公式确实有问题。
不加PI,产生的三相电流和通过电流控制角得到的结论不一样,同时也可以说明1-4提出的问题,在pruis模型中,不加PI方法给定三相电流,变换公式有问题,但是一正一反的变换使得这个问题被抵消了。

3.尝试解决

3-1

现在的问题,就是为什么要在传统的clark和park变换的过程中+PI ????

从西莫论坛上看到有人这么说,他说软件默认S与A轴线对齐,计算时要手动转pi的电角度,好像也说得通,但是不知道为什么?
MAXWELL help:The rotor initial position is set to such a position that
the initial flux linkage of the phase-A winding is at its negative maximum value.

3-2 RMxprt生成的表贴式MAXWELL模型(空载 Imax=0)

验证一下3-1的结论,采用1-2中的RMxprt生成的模型(自动生成MAXWELL的时候,软件自己设定的,减少其他变量影响)初始位置角为10°,空载Imax=0A.
三相磁链的波形图如下,可以看到0时刻A相磁链达到最大值,而且为负,是不是就说明0时刻S极和A相轴线对齐了?
下图为pruis教程中的截图,这部的操作是将给转子一个初始位置角,将轴线对齐。ABC相轴线判断的方法,A代表流出,X代表流入,通过右手螺旋定则判断磁场方向,即A相轴线方向。可以看出,下图d轴轴线正方向和A相轴线的负方向对齐了,即S极和A相轴线对齐了。但是MAXWELL为什么要这样大费周折,还不清楚,并且RMxprt模块自动生成MAXWELL时,软件也是这么设定的。


也就是说,MAXWELL将S极和A相轴线对齐,很多书上讨论的park变换是默认将A相轴线和N极重合,因此在使用PARK变换公式时,需要我们手动的+或者-PI做修正,旋转180°电角度。

3-3 RMxprt生成的表贴式MAXWELL模型(空载 Imax=0)

解决了3-2中的问题,顺手仿真了一下空载反电动势,又发现了新的问题。
A相 反电动势 e=-dψ/dt,应该在0时刻为0. 接下来磁链的变化率为正,因此反电势应该为负,但是结果并不是这样,如下图所示。而且电机学里 感应电动势 滞后 磁链 90°,但是maxwell的结果为什么是超前?

反复看了几遍电机学的课本,还是没理解。浏览西莫论坛时,发现了一个大佬的评论。
https://bbs.simol.cn/thread-130302-1-1.html
反电势和磁链之间的相位关系是由法拉第电磁感应定律确定的,反电势总是滞后磁链的!但电磁感应定律:e=-dψ/dt是建立在各物理量的正方向必须按照特定的正方向规定的基础上的。也就是说,当电势的正方向与磁链的正方向符合右手螺旋定则的时候,这个公式才是正确的,电势才滞后磁链90°,如果不符合这个正方向规定,那么就必须去掉公式中那个负号!此时电势就超前磁链90°!同理我们说电感负载,电流的相位都是滞后电压,也是建立在电压和电流正方向规定是一致的情况下的!


也就是说,要满足e=-dψ/dt,正方向必须满足:电流和反电势方向一样,电流和磁通满足右手螺旋(即上文说的电势的正方向与磁链的正方向符合右手螺旋定则)。
变化的磁通产生出反电势,反电势要阻碍磁通的变化,因此产生了电流来阻碍。为了体现出阻碍,将反电动势的方向和电流标成一致,并且前面加了负号,才出现了e=-dψ/dt。可以想象,不加负号的话,反电动势将会超前磁链。

3-4

隐隐感觉到,3-3和3-1的问题有相互联系的地方。
在西莫论坛上看到,有人说maxwell采用电动机惯例,我就先去总结了一下,其实就是电流和电压的正方向定义问题,但是也可以归结成电流和反电动势的正方向定义不同。可以说MAXWELL确实采用了电动机惯例,因此电流和反电动势的正方向定义为相反的方向。

4.总结

  1. MAXWELL将S极和A相轴线对齐,很多书上讨论的park变换是默认将A相轴线和N极重合,因此在使用PARK变换公式时,需要我们手动的+或者-PI做修正,旋转180°电角度。
  2. MAXWELL采用了电动机惯例,电流和反电动势的正方向定义为相反的方向,不能用电磁感应定律得到的结论分析反电势和磁链的关系。
  3. 期待有人能讨论一下,或者指出我的错误。。。。

如果觉得还不错的话,求个点赞啊!!!

Maxwell软件的学习总结相关推荐

  1. 三代组装软件canu学习笔记

    三代组装软件canu学习笔记 (2017-08-07 14:17:43) 转载▼   分类: 三代 1:这个组装软件起源于PBcR包含在Celera Assembler中(http://wgs-ass ...

  2. 软件调试学习笔记(七)—— 单步步入单步步过

    软件调试学习笔记(七)-- 单步步入&单步步过 单步步入 设置单步异常 处理单步异常 实验1:单步异常的设置与处理 单步步过 实现思路 实验2:实现单步步过 单步步入 描述: 单步步入的实现依 ...

  3. 软件调试学习笔记(六)—— 硬件断点

    软件调试学习笔记(六)-- 硬件断点 硬件断点 设置硬件断点 触发硬件断点 处理硬件断点 实验:硬件断点的设置与处理 硬件断点 描述: 与软件断点与内存断点不同,硬件断点不依赖被调试程序,而是依赖于C ...

  4. 软件调试学习笔记(五)—— 软件断点内存断点

    软件调试学习笔记(五)-- 软件断点&内存断点 调试的本质 软件断点 软件断点的执行流程 分析INT 3执行流程 实验:处理软件断点 内存断点 内存断点的执行流程 实验:处理内存断点 调试的本 ...

  5. 软件调试学习笔记(四)—— 异常的处理流程

    软件调试学习笔记(四)-- 异常的处理流程 要点回顾 异常的处理流程 实验1:理解调试器与异常的关系 未处理异常:最后一道防线 实验2:理解UnhandledExceptionFilter执行流程 实 ...

  6. 软件调试学习笔记(三)—— 调试事件的处理

    软件调试学习笔记(三)-- 调试事件的处理 要点回顾 调试事件的处理 实验一:实现简单调试器(创建进程) 实验二:分析异常来源 实验三:实现简单调试器(附加进程) 实验四:分析NtDebugActiv ...

  7. 软件调试学习笔记(二)—— 调试事件的采集

    软件调试学习笔记(二)-- 调试事件的采集 要点回顾 调试事件的种类 调试事件采集函数 例:分析PspUserThreadStartup 例:分析PspExitThread 总结 要点回顾 调试器与被 ...

  8. 软件调试学习笔记(一)—— 调试对象

    软件调试学习笔记(一)-- 调试对象 准备工作 调试器与被调试程序 DebugActiveProcess 连接调试器 分析kernel32!DebugActiveProcess 分析ntdll!Dbg ...

  9. Ubuntu16.04 ROS 深度学习_传智播客 智能机器人软件开发 学习路线图出炉!首发优惠!!...

    黑马程序员 微信号:heiniu526 传智播客旗下互联网资讯,学习资源免费分享平台 智能机器人软件工程师学习计划 很多朋友对机器人软件开发和人工智能感兴趣,不知道怎么学习,传智播客武汉校区在今年3月 ...

  10. 软件开发学习的5大技巧,你知道吗?

    众所多周知,软件开发技术是IT技术的核心技术,也是从事IT职业的技术学习首选.软件工程专业更是多年荣登国内10大高薪专业排行榜,软件工程师更是前程无 忧.智联招聘和中华英才网等国内大型招聘网站发布招聘 ...

最新文章

  1. JavaScript中函数作为另一个函数的参数的时候它存在于哪个作用域
  2. linux下kodi没有声音的解决
  3. C#线程使用(二)全面总结
  4. php 中断输出,PHP捕捉异常中断的方法
  5. MongoDB 副本集的相关概念【转】
  6. 一个Camel Multicast组件聚合策略问题的解决过程
  7. PIL image.convert('RGB')在数据生成中真的比较好吗?
  8. erlang连接数据库mysql_[原]Erlang连接mysql问题解决
  9. 摄像头录像软件测试初学者,几款好用的摄像头视频捕获工具推荐
  10. matlab 多项式画图,matlab多项式画图
  11. 小乔皮肤分析-缤纷独角兽/青蛇皮肤
  12. 手机版kali Linux教程(质量高)
  13. 拉格朗日插值的优缺点_如何直观地理解拉格朗日插值法?
  14. 211大学计算机找工作,华为最青睐的5所大学,每年招聘大量毕业生,第一所只是211院校...
  15. 今日芯声 | 四大运营商之一居然不支持华为?假的!
  16. APS供应链计划管理有何功能?其目的和意义又是什么?
  17. Windows 10 修改桌面图标一(系统图标)
  18. 步进电机的抖动和噪音从何而来 如何使步进电机完全静音
  19. QCC3040/QCC3046 ANC(主动降噪)调测
  20. css 设置背景图一半_img只显示图片一部分 或 css设置背景图片只显示图片指定区域...

热门文章

  1. swf是什么文件以及与fla格式的区别
  2. 计算机病毒是软攻击,计算机病毒攻击战是指将什么植入_常见问题解析
  3. Structs2-基础
  4. 南天PR2、PR2E驱动下载,xp,win7,win8,win8.1,win10 32位64位驱动下载安装教程
  5. 国家语言文字工作委员会3500个常用字
  6. mkcert在windows系统上制作SSL证书
  7. 这篇文章,自带背景音乐。因为它来自1993年!
  8. STM32——RTC实现毫秒级计时
  9. 十字消除 - Cocos2d-x 2.0.1
  10. Layui select 的动态添加