无刷直流电机数学模型完整版.docx

上传人:b****8 文档编号:28762071 上传时间:2023-07-19 格式:DOCX 页数:18 大小:348.23KB
下载 相关 举报
无刷直流电机数学模型完整版.docx_第1页
第1页 / 共18页
无刷直流电机数学模型完整版.docx_第2页
第2页 / 共18页
无刷直流电机数学模型完整版.docx_第3页
第3页 / 共18页
无刷直流电机数学模型完整版.docx_第4页
第4页 / 共18页
无刷直流电机数学模型完整版.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

无刷直流电机数学模型完整版.docx

《无刷直流电机数学模型完整版.docx》由会员分享,可在线阅读,更多相关《无刷直流电机数学模型完整版.docx(18页珍藏版)》请在冰豆网上搜索。

无刷直流电机数学模型完整版.docx

无刷直流电机数学模型完整版

电机数学模型

以二相导通星形三相六状态为例,分析BLDC的数学模型及电磁转矩等特性。

为了便于分析,假定:

a)三相绕组完全对称,气隙磁场为方波,定子电流、转子磁场分布皆对称;b)忽略齿槽、换相过程和电枢反应等的影响;

c)电枢绕组在定子内表面均匀连续分布;

d)磁路不饱和,不计涡流和磁滞损耗。

则三相绕组的电压平衡方程可表示为:

(1)

式中:

为定子相绕组电压(V);

为定子相绕组电流(A);

为定子相绕组电动势(V);L为每相绕组的自感(H);M为每相绕组间的互感(H);p为微分算子p=d/dt。

三相绕组为星形连接,且没有中线,则有

(2)

(3)

得到最终电压方程:

(4)

r

L-M

i

a

r

L-M

e

b

e

a

e

c

i

b

r

L-M

i

c

图.无刷直流电机的等效电路

无刷直流电机的电磁转矩方程与普通直流电动机相似,其电磁转矩大小与磁通和电流幅值成正比

(5)

所以控制逆变器输出方波电流的幅值即可以控制BLDC电机的转矩。

为产生恒定的电磁转矩,要求定子电流为方波,反电动势为梯形波,且在每半个周期内,方波电流的持续时间为120°电角度,梯形波反电动势的平顶部分也为120°电角度,两者应严格同步。

由于在任何时刻,定子只有两相导通,则:

电磁功率可表示为:

(6)

电磁转矩又可表示为:

(7)

无刷直流电机的运动方程为:

(8)

其中为电磁转矩;

为负载转矩;B为阻尼系数;为电机机械转速;J

为电机的转动惯量。

传递函数:

无刷直流电机的运行特性和传统直流电机基本相同,其动态结构图可以采用直流电机通用的动态结构图,如图所示:

U(s)

+

I(s)

1/RCt

T(s)

C

+

365/(GD^2s)

N(s)

-

-

T(s)

L

Ce

图2.无刷直流电机动态结构图

由无刷直流电机动态结构图可求得其传递函数为:

式中:

K为电动势传递系数,,Ce为电动势系数;

1

K为转矩传递函数,,R为电动机内阻,Ct为转矩系数;

2

T为电机时间常数,,G为转子重量,D为转子直径。

m

基于MATLAB的BLDC系统模型的建立

在Matlab中进行BLDC建模仿真方法的研究已受到广泛关注,已有提出采用节点电流法对电机控制系统进行分析,通过列写m文件,建立BLDC仿真模型,这种方法实质上是一种整体分析法,因而这一模型基础上修改控制算法或添加、删除闭环就显得很不方便;为了克服这一不足,提出在Matlab/Simulink中构造独立的功能模块,通过模块组合进行BLDC建模,这一方法可观性好,在原有建模的基础上添加、删除闭环或改变控制策略都十分便捷,但该方法采用快速傅立叶变换(FFT)方法求取反电动势,使得仿真速度受限制。

本文提出了一种新型的BLDC建模方法,将控制单元模块化,在Matlab/Simulink建立独立的功能模块:

BLDC本体模块、电流滞环控制模块、速度控制模块、参考电流模块、转矩计算模块和电压逆变模块,对这些功能模块进行有机整合,即可搭建出无刷直流电机系统的仿真模型。

在建模过程中,梯形波反电动势的求取方法一直是较难解决的问题[27,28],本文采用分段线性法成功地化解了这一难点,克服了建模方法存在的不足。

Matlab6.5针对电气传动控制领域所设计的工具箱SimPowerSystemToolbox2.3已提供了PMSM的电机模型,但没有给出BLDC的电机模型。

因此,本文在分析

无刷直流电机数学模型的基础上,借助于

Matlab强大的仿真建模能力,在

Matlab/Simulink中建立了BLDC控制系统的仿真模型。

BLDC建模仿真系统采用双闭环控制方案:

下即为BLDC建模的整体控制框图,其中主要包括:

BLDC本体模块、电流滞环控制模块、速度控制模块、参考电流模块、转矩计算模块和电压逆变模块。

BLDC本体结构

(1)BLDCM

本体模块

在整个控制系统的仿真模型中,BLDCM

本体模块是最重要的部分,该模块根据

BLDC电压方程式(4)求取BLDC三相相电流,结构框图如图所示

图.BLDCM本体模块结构框图及其封装形式

在整个控制系统的仿真模型中,BLDC本体模块是最重要的部分,该模块根据BLDC电压方程式(2-4)求取BLDC三相相电流,而要获得三相相电流信号ia,ib,ic,必需首先求得三相反电动势信号ea,eb,ec控制框图如图2-11所示。

而BLDC建模过程中,梯形波反电动势的求取方法一直是较难解决的问题,反电动势波形不理想会造成转矩脉动增大、相电流波形不理想等问题,严重时会导致换相失败,电机失控。

因此,获得理想的反电动势波形是BLDC仿真建模的关键问题之一。

本文采用了分段线性法,如图2-12所示,将一个运行周期0°~360°分为6个阶段,每60°为一个换相阶段,每一相的每一个运行阶段都可用一段直线进行表示,根据某一时刻的转子位置和转速信号,确定该时刻各相所处的运行状态,通过直线方程即可求得反电动势波形。

分段线性法简单易行,且精度较高,能够较好的满足建模仿真的设计要求。

因而,本文采用分段线性法建立梯形波反电动势波形。

理想情况下,二相导通星形三相六状态的BLDC定子三相反电动势的波形如图2-12所示。

图中,根据转子位置将运行周期分为6个阶段:

0~π/3,π/3~2π/3,2π/3~π,π~4π/3,4π/3~5π/3,5π/3~2π。

以第一阶段0~π/3为例,A相反电动势处于正向最大值Em,B相反电动势处于负向最大值-Em,C相反电动势处于换相阶段,由正的最大值Em沿斜线规律变化到负的最大值-Em。

根据转子位置和转速信号,就可以求出各相反电动势变化轨迹的直线方程,其它5个阶段,也是如此。

据此规律,可以推得转子位置和反电动势之间的线性关系,如表2-1所示,从而采用分段线性法,解决了在BLDC本体模块中梯形波反电动势的求取问题。

a

b

c

Em

e

-Em

Em

e

-Em

Em

e

-Em

pos

pos

pos

0π/32π/3π4π/35π/32π

图.三相反电动势波形

转子位置和反电动势之间的线性关系表

转子位置

0~π/3

e

a

K*w

e

b

-K*w

e

c

K*w*((per-pos)/

π/3~2π/3K*w

K*w*((pos-π/6

-per)/(π/6)-1)

(π/6)+1)

-K*w

2π/3~π

K*w*((per+2*π/3

-pos)/(π/6)+1)

K*w

-K*w

π~4π/3-K*wK*w

K*w*((pos-π-per)

/(π/6)-1)

4π/3~5π/3-K*w

K*w*((per+4*π/3

-pos)/(π/6)+1)

K*w

5π/3~2π

K*w*((pos-5*π/3

-per)/(π/6)-1)

-K*w

K*w

表中:

K为反电动势系数(V/(r/min),pos为角度信号,w为转速信号,转数per=fix(pos/(2*pi))*2*pi,fix函数是实现取整功能。

根据上式,用M文件编写反电势系数的S函数如下:

反电动势S函数(emf.m)

%=========================================================

%BLDCM模型中反电动势函数

%=========================================================

function[sys,x0,str,ts]=emf(t,x,u,flag)

switchflag

case0,%初始化设置

[sys,x0,str,ts]=mdlInitializeSizes;

case3,%输出量计算

sys=mdlOutputs(t,x,u);

case{1,2,4,9}

sys=[];

otherwise

%未定义标志

%错误处理

error(['unhandledflag=',num2str(flag)]);

end

%=========================================================%mdlInitializeSizes进行初始化,设置系统变量的大小%=========================================================

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

sizes=simsizes;

%取系统默认设置

sizes.NumContStates=0;

sizes.NumDiscStates=0;

sizes.NumOutputs=3;

sizes.NumInputs=2;

sizes.DirFeedthrough=1;

sizes.NumSampleTimes=1;

sys=simsizes(sizes);

x0=[];

str=[];

ts=[-10];

%=========================================================%mdlOutputs计算系统输出%=========================================================

functionsys=mdlOutputs(t,x,u)

globalk;

globalPos;

globalw;

k=0.060;

w=u

(1);

Pos=u

(2);

%V/(r/min)反电动势系数%转速(rad/s)

%角度(rad)

ifPos>=0&Pos<=pi/3

sys=[k*w,-k*w,k*w*((-Pos)/(pi/6)+1)];

elseifPos>=pi/3&Pos<=2*pi/3

sys=[k*w,k*w*((Pos-pi/3)/(pi/6)-1),-k*w];

elseifPos>=2*pi/3&Pos<=pi

sys=[k*w*((2*pi/3-Pos)/(pi/6)+1),k*w,-k*w];

elseifPos>=pi&Pos<=4*pi/3

sys=[-k*w,k*w,k*w*((Pos-pi)/(pi/6)-1)];

elseifPos>=4*pi/3&Pos<=5*pi/3

sys=[-k*w,k*w*((4*pi/3-Pos)/(pi/6)+1),k*w];

elsePos>=5*pi/3&Pos<=2*pi

sys=[k*w*((Pos-5*pi/3)/(pi/6)-1),-k*w,k*w];

end

转矩计算模块

根据BLDC数学模型中的电磁转矩方程式,可以建立图5.7所示的转矩计算模块,模块输入为三相相电流与三相反电动势,通过加、乘模块即可求得电磁转矩信号Te。

转矩计算模块结构框图及其封装形式

转速计算模块

根据运动方程式(2.4),由电磁转矩、负载转矩以及摩擦转矩,通过加乘、积分环节即可得到转速信号,求得的转速信号经过积分就可得到电机转角信号,如图

转速计算模块结构框图及其封装形式

电流滞环控制模块

在这个仿真模块中采用滞环控制原理来实现电流的调节,使得实际电流随跟定电流的变化。

模块结构框图如图5.10所示[40],输入为三相参考电流和三相实际电流,输出为PWM逆变器控制信号。

电流滞环控制模块结构框图及其封装

参考电流模块

参考电流模块的作用是根据电流幅值信号Is和位置信号给出三相参考电流,输出的三相参考电流直接输入电流滞环控制模块,用于与实际电流比较进行电流滞环控制。

转子位置和三相参考电流之间的对应关系如表所示,参考电流模块的这一功能可通过S函数编程实现,程序如下

参考电流S函数(mod.m)

function[sys,x0,str,ts]=mod(t,x,u,flag)

switchflag

case0,

[sys,x0,str,ts]=mdlInitializeSizes;

case3,

sys=mdlOutputs(t,x,u);

case2,

sys=[];

case9,

sys=[];

otherwise

error(['unhandledflag=',num2str(flag)]);

end

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

sizes=simsizes;

sizes.NumContStates=0;

sizes.NumDiscStates=0;

sizes.NumOutputs=1;

sizes.NumInputs=1;

sizes.DirFeedthrough=1;

sizes.NumSampleTimes=1;

sys=simsizes(sizes);

x0=[];

str=[];

ts=[-10];

functionsys=mdlOutputs(t,x,u)

globalPos;

globalw;

globalTheta;

Theta=u;

b=fix(Theta/(2*pi));%取整

ifTheta==0

sys=0;

elseif(Theta/(2*pi))==b

sys=2*pi;

else

sys=Theta-b*2*pi;

end

end

Pos=sys;%位置

表5.2转子位置和三相参考电流之间的对应关系表

转子位置

I_arI_brI_cr

0~π/3

π/3~2π/3

2π/3~π

π~4π/3

Is

Is

0

-Is

-Is

0

Is

Is

0

-Is

-Is

0

4π/3~5π/3-Is

0

Is

5π/3~2π

0

-Is

Is

5.2.5位置计算模块

电机转角信号到电机位置信号的转换可通过S函数编程实现,程序如下位置计算S函数(is.m)

function[sys,x0,str,ts]=is(t,x,u,flag)

switchflag

case0,

[sys,x0,str,ts]=mdlInitializeSizes;

case3,

sys=mdlOutputs(t,x,u);

case2,

sys=[];

case9,

sys=[];

otherwise

error(['unhandledflag=',num2str(flag)]);

end

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

sizes=simsizes;

sizes.NumContStates=0;

sizes.NumDiscStates=0;

sizes.NumOutputs=3;

sizes.NumInputs=2;

sizes.DirFeedthrough=1;

sizes.NumSampleTimes=1;

sys=simsizes(sizes);

x0=[];

str=[];

ts=[-10];

functionsys=mdlOutputs(t,x,u)

globalIs;

globalPos;

Is=u

(1);%电流

Pos=u

(2);%位置

ifPos>=0&Pos<=pi/3

sys=[Is,-Is,0];

elseifPos>=pi/3&Pos<=2*pi/3

sys=[Is,0,-Is];

elseifPos>=2*pi/3&Pos<=pi

sys=[0,Is,-Is];

elseifPos>=pi&Pos<=4*pi/3

sys=[-Is,Is,0];

elseifPos>=4*pi/3&Pos<=5*pi/3

sys=[-Is,0,Is];

elsePos>=5*pi/3&Pos<=2*pi

sys=[0,-Is,Is];

end

5.2.6电压逆变器模块

逆变器对BLDC来说,首先是功率变换装置,也就是电子换向器,每一个桥臂上的一个功率器件相当于直流电动机的一个机械换向器,还同时兼有PWM

电流调节器功能。

对逆变器的建模,本文采用Simulink的SimPowerSystem工具箱提供的三相全桥IGBT模块。

由于在Matlab新版本(如Matlab7.0)中SimPowerSystem工具箱和Simulink工具箱不可以随便相连的,中间必须加上受控电压源(或者受控电压源、电压表、电流表)。

本文给IGBT的A、B、C三相加三个电压表,输出的Simulink信号可以与BLDC直接连接,如图5.11所示。

逆变器根据电流控制模块所控制PWM信号,顺序导通和关断,产生方波电流输出。

电压逆变器模块结构框图及其封装

基于Matlab/Simulink建立了BLDC控制系统的仿真模型,并对该模型进行了BLDC双闭环

控制系统的仿真。

仿真中,BLDC电机参数设置为:

定子相绕组电阻R=1Ω,定子相绕组自感L=0.02H,互感M=-0.061H,转动惯量J=0.005kg·m2,阻尼系数B=0.0002N·m·s/rad,额定转速n=1000r/min,极对数p=1,220V直流电源供电。

总体模型:

存在问题:

仿真速度慢,且示波器值均为0

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

当前位置:首页 > 工程科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1