admin管理员组

文章数量:1642344

simulink电机仿真笔记一

  • 开场白
  • 电机模型

开场白

最近有点闲,于是尝试用simulink自带的电气库做一个电机控制仿真模型,将现有的工程代码用S-function嵌入到模型中。由于自己对这些库也不是很熟悉,中间走了很多弯路,网上搜索,找讨论群等等,最后发现最靠谱的方法就是自己摸索,靠谱的指导是一种缘分,得知,我幸!没有,自己活该。从来没有在网上写文章,这是第一篇,目的就是找靠谱的人一起讨论学习,抛砖引玉,如果有幸解答了同在泥潭里挣扎的小白同志们的一些初期疑问,那不甚荣幸!下面进入正题

电机模型

基本参数看help文档就行,这里不啰嗦。拉出电机模型以后先看了下内部,就是基于数学模型的一个模块,然后自己推导了一下(直接贴自己的笔记)

上图是simulink 的Permanent Magnet Synchronous Machine模型内部
1.SPS说是电气转信号,这个部分不懂,也看不了,那位大师有比较好的介绍请求分享一下
2.Electrical model
这个模块其实就是通过输入线电压,计算、变换,最后在旋转坐标系下根据电机方程计算相关的输出信号,下面一步步分解

首先是abc2qd模块,输入是电机模块相连的逆变模块的三相输出(不贴图了),看这个过程就知道里面包括相电压计算、clark变换、park变换部分。
先计算三相电压

得到通过线电压计算相电压的变换矩阵

然后就是我们熟悉的clark和park

模型是有fcn模块一气呵成的,所以我们就把这些变换矩阵放在一起来保持队形


打开模型的fcn,带入参数,发现不一样!我错了吗!这点计算会出错,这是打击我的自信吗!忽然想起看help时有个park坐标问题

simulink的park坐标和国内的不太一样(和ST的park坐标类似,但是两相静止坐标的β轴还是向上的),于是改为了“Rotor flux position when theta = 0”
这下妥妥的了,保存,然后屁颠屁颠的打开模型!what!!!!
没有丝毫变化,哪里出了问题呢,于是按照默认的ST类似的park变换矩阵带入

把上面步骤重复了一遍,发现和模型中fcn模块的等式一致,至此,我有点懵,如果不能改park坐标你搞这个选项干什么,改个寂寞吗,于是找了几个QQ群,问了一圈,几乎没人理,想起了《影响力》书中说的社会认同现象,我直接@了一个群里级别比较高,前面还在给别人指点问题的牛人!果然读书是有用的,大牛回复了我,我阐述了我的疑问,贴了那些推导过程,然后感慨世上还是好人多,等待大牛解救,结果几个回合之后大牛说是不知道我的问题是什么,╮(╯▽╰)╭,心死,人还是要靠自己,于是我手动改了模型。。。
但是后面发现我错了!(其实一直知道是自己的错,因为simulink的权威影响力肯定不是我这个菜鸟三两下能挑出问题的,只是没有深究原因)。
这个其实在后面引入park计算时候补了90°,把正常坐标下的park变换矩阵经过一个逆时针旋转矩阵,或者把simulik的park变换角度加上90°都可以相互转换

然后是iq,id模块
这个就是dq坐标下的电机方程,没什么好说的,贴一基本的电机宣传坐标系下的方程式

然后是qd2abc
这个就是abc2qd反变换,乘上逆矩阵就出来了

然后是Te,再贴一个基本的电机方程

Hall effect sensor
这个是根据当前的电角度输出三相hall信号,由于很多低成本应用位置传感器都是用三个hall原件采集,所以这里的角度对应信号的定义根据对象电机特性实现。(电控中又hall信号计算角度信息是一个非常重要的部分,角度的处理直接影响整个控制器效果~)
3 mechanical model
这个模块其实也可以上个基本方程的

在we积分为the时候,积分模块初始值这里


除了初始化的tho,还有加了一个PM.thOffest,而在MUX里转子角度输出时候减掉了这个值,这个应该就是用来调整park变换那个90度
但是关于PM这个结构体在哪里呢,我还没有找到,知道的大师请指点迷津~

Measurements
这个就是总线输出,打开看很直观!

本文标签: 电机笔记Simulink