永磁同步电机的仿真模型Word文档下载推荐.docx

上传人:wj 文档编号:8700671 上传时间:2023-05-13 格式:DOCX 页数:12 大小:607.03KB
下载 相关 举报
永磁同步电机的仿真模型Word文档下载推荐.docx_第1页
第1页 / 共12页
永磁同步电机的仿真模型Word文档下载推荐.docx_第2页
第2页 / 共12页
永磁同步电机的仿真模型Word文档下载推荐.docx_第3页
第3页 / 共12页
永磁同步电机的仿真模型Word文档下载推荐.docx_第4页
第4页 / 共12页
永磁同步电机的仿真模型Word文档下载推荐.docx_第5页
第5页 / 共12页
永磁同步电机的仿真模型Word文档下载推荐.docx_第6页
第6页 / 共12页
永磁同步电机的仿真模型Word文档下载推荐.docx_第7页
第7页 / 共12页
永磁同步电机的仿真模型Word文档下载推荐.docx_第8页
第8页 / 共12页
永磁同步电机的仿真模型Word文档下载推荐.docx_第9页
第9页 / 共12页
永磁同步电机的仿真模型Word文档下载推荐.docx_第10页
第10页 / 共12页
永磁同步电机的仿真模型Word文档下载推荐.docx_第11页
第11页 / 共12页
永磁同步电机的仿真模型Word文档下载推荐.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

永磁同步电机的仿真模型Word文档下载推荐.docx

《永磁同步电机的仿真模型Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《永磁同步电机的仿真模型Word文档下载推荐.docx(12页珍藏版)》请在冰点文库上搜索。

永磁同步电机的仿真模型Word文档下载推荐.docx

FOC控制技术的原理:

原理图中涉及到双反馈,第一层反馈为转速反馈:

设定电机转速初始值作为给定值,然后与反馈的实际值(位置传感器采集到的位移微分得到)进行比较,得到的差值输入PI控制器进行控制,得到交轴电流iq。

同时三相绕组输出的电流iA,iB,iC经过clarke变换和park变化得到iq和id的实际值,分别与给定值进行比较,将比较后的值再进行park转换,得到的结果经过SVPWM技术调制之后输入到逆变器,继而可以驱动三相电机。

图2.1磁场定向矢量控制技术原理

3、基于FOC技术的永磁同步电机建模

在这里采用的是最简单的id=0的控制方法。

Id=0时,从电动机端口看,永磁同步电机相当于一台他励的直流电动机,定子电流中只有交轴分量,而且定子磁动势空间矢量与永磁体磁动势空间矢量正交,电动机转矩中只有永磁转矩分量。

因为电磁转矩仅仅依赖交轴电流,从而实现了转矩表达式中的交直轴电流解耦。

下图为建立的基于FOC控制技术的永磁同步电机SIMULINK仿真模型

图2.2基于FOC技术的永磁同步电机SIMULINK模型

控制模型主要包括转速给定部分,比例积分(PI)模块,坐标转换模块,逆变器控制模块,以及电动机模块。

下面进行一一介绍。

3.1转速给定部分

转速给定模块使用SIMULINK中的常数(constant)模块,单位为rpm。

给定的速度要输入到电角速度计算模块(Gain)中,以得到给定转速的电角速度(单位为rad/s)。

设定电动机极对数为4,则其参数为2*pi*4/60。

图2.3速度给定部分

图2.4电角速度计算模块的参数设定

3.2比例积分(PI)模块

调速系统实施转速闭环控制,转速比例积分调节器中的比例模块设置比例参数,积分模块设置积分参数。

调节器内同时设置了内限幅和外限幅模块(saturation)。

设定的PI参数如下图。

图2.5PI模块的参数设定

图2.6PI模块的内部结构

图2.7Saturation的参数设置

3.3坐标转换模块

在三相静止坐标系下分析永磁同步电机的数学模型存在着许多难以克服的困难,引入空间矢量坐标变换理论可以简化其数学模型,并能够很容易的分析永磁同步电机的动态特性,空间坐标变换矢量图如图2-4所示,图中fs为空间矢量,可为电压、电流、磁链等空间物理量,ωe为转子旋转角速度,θe为转子轴线与A相绕组轴线的夹角。

图2.8空间坐标变换矢量图

按照f不变的原则,可得到三相静止坐标系abc变换到两相静止坐标系αβ的clark变换矩阵为:

clark逆变换矩阵为:

同理若以转子磁链轴线方向为坐标系的横轴,称为直轴(d轴),以垂直转子磁链轴线方向90°

为纵轴,称为交轴(q轴),可建立与转子同步旋转的坐标系dq,简称同步旋转坐标系,将两相静止坐标系αβ变换到同步旋转坐标系dq的park变换矩阵为:

park逆变换矩阵为:

根据上述坐标转换原理,我们建立dq到abc坐标系和abc到dq坐标系的转换模块。

如下图:

图2.9dq坐标系到三相静止坐标系变换模块

图2.10dq坐标系到三相静止坐标系变换模块内部实现

图2.11三相静止坐标系到dq坐标系变换模块

图2.12三相静止坐标系到dq坐标系变换模块的内部实现

3.4逆变器控制模块

采用电流滞环脉冲宽度调制方法,该模块输入为三相相电流给定值和三相相电流实际值,输出为三相相电压。

其内部连接图如图所示:

图2.13CHBPWM逆变器模块内部连接图

三相比较模块相同,其中比较模块通过比较A相给定的电流值和A相实际电流得出逆变器输出的A相相电压值,其内部连接图如图所示:

图2.14比较模块内部连接图

其中,传递函数模块(transferfcn)对相电流进行滤波,可以滤去A相反馈电流中的高次谐波。

继电器(relay)模块实现的是电流滞环控制功能。

其输入为给定电路与实际电流的差值,输出为A相相电压。

其参数对话框如下图所示,主要有4个参数:

开通动作值(switchonpoint)、关断动作值(switchoffpoint)、开通时输出值(outputwhenon)、关断时输出值(outputwhenoff)。

实现的功能是:

当给定的电流值大于实际电流值的差达到开通动作值时,输出的A相相电压为155V,当给定的电流值小于实际电流值达到关断动作值时,输出A相电压为-155V。

图2.15继电器参数设置

3.5电动机模型

在SIMULINK中对永磁同步电机进行仿真建模通常采用以下三种方法:

(1)在SIMULINK中内部提供的PMSM模型,它包含在电力系统库的电动机库中。

这种方法简单,方便,适于快熟创建永磁同步电动机调速系统,但由于模型已经封装好,不能随意修改,同时也不方便研究PMWM内部的建模方法。

(2)使用SIMULINKlibrary库里已有的分离模块进行组合搭建电机模型,该方法思路清晰、简单、直观,但需要较多的模块,连线较多且不利于差错,油漆是复杂的数学模型。

因此,本方法适用于简单的、小规模系统的仿真系统建模。

(3)用s-函数模块构造模型。

该方法基于数学表达式,容易修改,方式灵活。

这种模型处理能力强,可以方便地构建复杂的动态系统,非常适合PMSM的访真分析。

我们采用第三种方法进行建模

S函数模块位于SIMULINK模块库的用户自定义函数子目录下,s函数可以用MATLAB语言编写,也可以用C,C++等语言编写。

它有特定的结构形式。

这里用MATLAB语言编写,此时S函数与MATLAB函数不同的只是其特定的结构模式。

具体的s函数见附件。

图2.16永磁同步电机模型

为使用方便,把整个模型建成子系统,同时为方便输入电动机的各项参数,使用风转子系统(masksubsystem)为电动机参数输入提供对话框。

图2.17S函数构建的PMSM模块内部连接图

子系统内部使用s函数模块,设置s函数模块调用s函数名为PMSMdq,s函数的参数设为电动机的参数。

点击edit可以进入s函数编写界面,进行修改。

需要注意的是,s函数的文件必须和PMSM仿真的模型放在同一文件夹下,否则会出现仿真错误的情况。

图2.18S函数参数对话框

仿真时,PMSM的电动机参数设为:

定子绕组R1为0.875欧;

直轴电感Ld为8.5mH;

交轴电感Lq为8.5mH;

转子永磁体在定子绕组中产生的磁链为0.175Wb;

极对数np为4.负载转矩初始值为1N.m,在0.04s时阶跃为5N.m。

转矩的输入为阶跃函数。

参数设置如下

图2.19PMSM参数设置对话框

4、永磁同步电机控制模型仿真

将仿真时间设为0.06s,然后进行仿真,得到的仿真结果如下

图4.1输入的阶跃扭矩信号

图4.2输出的转矩信号

图4.3输出的三相相电流

图4.4输出的电角速度信号

图4.5输出的电机转速

可以看出在起动过程中,电动机转矩上升到最大值以后保持在限幅值,此过程中电动机的转速迅速上升。

加速结束后,电动机进入稳态运行,电动机的电磁转矩与负载转矩平衡。

在负载突加的时候,电动机转矩迅速上升并与负载相平衡,然后迪纳冬季又重新进入稳态运行。

电气传动系统的响应很快,这是因为控制系统中的电流闭环控制响应比较快,动态性能好。

附件

function[sys,x0,str,ts]=PMSMdq(t,x,u,flag,parameters,x0_in)

%PMSMmodel.

%parameters;

%ld,lq:

inductanceindpreferenceofframe

%r:

staterresistance

%psi_f:

fluxinwebersbyPMonrotor

%p:

numberofpolepairs

%j:

inertiaofmotorandload

%mu_f:

viscousfriction

%inputs:

%ud,uq:

voltagesindpreferenceofframe

%tl:

torqueofload

%innervariants:

%id,iqcurrentsindpreferenceofframe

voltageintdpreferenceofframe

%wr:

angularvelocityoftherotor

%te:

electronmagnetictorque

%theta:

positionofrotor

%outputs:

%theta:

positionofrotor

%----------------------------

%u(123)=

%uduqtl

%parameters(1234567)=

%ldlqrpsi_fpjmu_f

%sys(12345)=

%wrteidiqtheta

%x(1234)=

%idiqwrtheta

switchflag

case0

[sysx0strts]=mdlInitializeSizes(x0_in);

%iniatialization

case1

%calculatethederivatives

sys=mdlDerivatives(x,u,parameters);

case3

%output

sys=mdlOutputs(x,u,parameters);

case{2,4,9}

%unusedflags

sys=[];

otherwise

%Errorhandling

error(['

Unhandledflag='

num2str(flag)]);

end

%endofPMSMdq

%-----------------------------------

%mdlInitializeSizes

%----------------------------------

function[sys,x0,str,ts]=mdlInitializeSizes(x0_in)

%-------------------------------------

%uduqtl

%parameters(1234567)=

%x(1234)=

%idiqwrtheta

sizes=simsizes;

sizes.NumContStates=4;

sizes.NumDiscStates=0;

sizes.NumOutputs=5;

sizes.NumInputs=3;

sizes.DirFeedthrough=0;

sizes.NumSampleTimes=1;

sys=simsizes(sizes);

x0=x0_in;

str=[];

ts=[00];

%EndofmdlInitializeSizes.

%---------------------------

%mdlDerivatives

%Returnthederivativesforthecontinuousstates

%-----------------------------

function[sys]=mdlDerivatives(x,u,parameters)

%u(123)=

%parameters(1234567)=

%ldlqrpsi_fpjmu_f

%sys(12345)=

%wrteidiqtheta

%x(1234)=

%id'

=ud/ld-r*iq/lq+lq*p*wr*iq/ld

sys

(1)=u

(1)/parameters

(1)-parameters(3)*x

(1)/parameters

(1)+parameters

(2)*parameters(5)*x(3)*x

(2)/parameters

(1);

%iq'

=uq/lq-r*iq/lq-ld*p*wr*id/lq-psi_f*p*wr/lq

sys

(2)=u

(2)/parameters

(2)-parameters(3)*x

(2)/parameters

(2)-parameters

(1)*parameters(5)*x(3)*x

(1)/parameters

(2)-parameters(4)*parameters(5)*x(3)/parameters

(2);

%te=1.5*p*[psi_f*iq+(ld-lq)*id*iq]

te=1.5*parameters(5)*(parameters(4)*x

(2)+(parameters

(1)-parameters

(2))*x

(1)*x

(2));

%wr'

=(te-mu_f*wr-tl)/j

sys(3)=(te-parameters(7)*x(3)-u(3))/parameters(6);

%theta'

=p*wr

sys(4)=parameters(5)*x(3);

%EndofmdlDerivatives

%-------------------------------------------

%mdlOutputs

%Returntheblockoutputs.

%-----------------------------------------

functionsys=mdlOutputs(x,u,parameters,te)

%------------------------------------------

%ldlqrpsi_fpjmu_f

%idiqwrtheta

%outputwr

sys

(1)=x(3);

%outputte

sys

(2)=te;

%outputidq

sys(3)=x

(1);

%id

sys(4)=x

(2);

%iq

%outtheta

sys(5)=x(4);

%EndofmdlOutputs

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2