1、1鲁东大学信息与电气工程学院 2014 2015 学年第 二 学期 微特电机与控制 课程论文课程号: 220852119任课教师 赵玫 成绩 论文题目:(可指定题目,也可说明题目范围。 )基于 SIMULINK 无刷直流电机控制系统的仿真建模论文要求:(对论文题目、内容、行文、字数等作出判分规定。 )1. 建立无刷直流电机控制系统的 Simulink 仿真模型,仿真采用位置和电流双闭环结构,系统模型主要包括无刷直流电机及其驱动主电路、无刷直流电机换相模块、电机转向判断、位置和电流调节器、PWM 产生模块和相应的测量模块组成。主电路采用三相桥式电路驱动的形式;电流和位置的调节均采用防积分饱和的
2、PI 调节器调节;PWM 信号通过电流调节器的输出与 20KHz 三角波比较产生,从而实现无刷直流电机的 PWM 控制。2. 小组成员分工合作完成整个论文的内容,但是课程论文要每人一份,着重阐述自己的工作,不能前篇一律。3.答辩环节以小组为单位进行,7 月 16 日提交论文,并进行答辩。4. 需要列出主要参考文献,并进行对比分析。教师评语:教师签字:年 月 日学院_鲁东大学_专业_电气自动化_班级_电气1201_本专 学号_20122212989_姓名_李勇_密封线 学生须将文字写在此线以下2基于 SIMULINK 无刷直流电机控制系统的仿真建模李勇,韩业林,王孝磊,吴晓东,居礼,陶显明摘 要
3、 从组成结构、工作原理以及数学模型等方面来介绍无刷直流电动机,并根据数学模型,建立无刷直流电机控制系统的 Simulink 仿真模型,仿真采用位置和电流双闭环结构,系统模型主要包括无刷直流电机及其驱动主电路、无刷直流电机换相模块、电机转向判断、位置和电流调节器、PWM 产生模块和相应的测量模块组成。通过试验验证方案的可行性,分析其存在的优缺点。 关键词:无刷直流电动机;simulink;位置电流双闭环AbstractFrom the structure, working principle and composition of mathematical models to introduce
4、a brushless DC motor, and the mathematical model, the establishment of Simulink simulation model of a brushless DC motor control system simulation using the location and current double closed loop configuration, the system model includes a brushless DC motor and drives the main circuit, a brushless
5、DC motor commutation module, motor rotation judgment, position and current regulators, PWM generation module and corresponding measurement modules. Feasibility test verification program, analyze the advantages and disadvantages of its existence.Keywords: brushless DC motor; simulink; position curren
6、t double closed loop引言 无刷直流电机(Brushless DC Motor,以下简称 BLDC)是随着电力电子技术及新型永磁材料的发展而迅速成熟起来的一种新型电机。以其体积小、重量轻、效率高、惯量小和控制精度高等优点,同时还保留了普通直流电动机优良的机械特性,广泛应用于伺服控制、数控机床、机器人等领域 Ill,随着无刷直流电机应用领域的不断扩大,要求控制系统设计简易、成本低廉、控制算法合理、开发周期短。建立无刷直流电机控制系统的仿真模型,可以有效的节省控制系统设计时间,及时验证施加于系统的控制算法,观察系统的控制输出;同时可以充分利用计算机仿真的优越性,人为地改变系统的结
7、构、加入不同3的扰动和参数变化,以便考察系统在不同结构和不同工况下的动、静态特性2J。因此,如何建立有效的无刷直流电机控制系统的仿真模型成为电机控制算法设计人员迫切需要解决的关键问题。本文在分析无刷直流电机数学模型的基础上,借助于Matlab 强大的仿真建模能力,利用电气模块库中内含的功能元件,对通常的运动控制系统仿真模型进行了改进,提出了一种基于 MatlabSimulink 建立无刷直流电机系统仿真模型的新方法。1 永磁无刷直流电机(BLDC)的数学模型无刷直流电机由定子三相绕组、永磁转子、逆变器、转予磁极位置检测器等组成,其转子采用瓦形磁钢,进行特殊的磁路设计,可获得梯形波的气隙磁场,定
8、子采用整距集中绕组,由逆变器供给方波电流。以一台三相两极永磁电动机为例,并假设:(1) 定子绕组为 60相待整距集中绕组星形联结;(2) 忽略磁路饱和,不计涡流和磁滞损耗;(3) 不考虑电枢反应气隙磁场分布近似矩形波,其波形平顶宽度为 120点角度;逆变器对 BLDC 来说,首先是功率变换装置,也就是电子换向器,每一个桥臂上的一个功率器件相当于直流电动机的一个机械换向器,还同时兼有 PWM 电流调节器功能。对逆变器的建模,本文采用 Simulink 的 SimPowerSystem 工具箱提供的三相全桥 IGB 嗾块。由于在 Matlab 新版本 (如 Matlab70)qbSimPowerS
9、ystem-V 工具箱和 SimulinkI 具箱不是随便可以相连的,中间必须加上受控电压源(或者受控电压源、电压表、电流表) 。本文给 IGBT 的 A、B、C 三相加三个电压表,输出的Simulink 信号可以与 BLDC 直接连接,如图所示。逆变器根据电流控制模块所控制 PWM 信号,顺序导通和关断,产生方波电流输出。42 整体框架图:无 刷 直 流电 动 机电 流 检 测电 压 逆 变 器电 流 控 制 器给 定 参 考 电 流位 置 环位置传感器电 流 环驱 动 电 路开 关 信 号无 刷 直 流 电 动 机 换 向 模 块P I 速 度 调 节器V3 仿真模型整体框图Stepn_r
10、efn IsSpeed ControlorScope4Scope3Scope2Scope1ScopesystemS-Function1cemfS-FunctionPulseGeneratorpulse ABC+ -IGBT Inverter KGain2KGain1KGainI_arI_aI_brI_bI_crI_cPulseCurent controllerUaUbUcposTLIaIbIceaebecTeThetawBLDCMAdd5Add4Add3Add2Add1AddDC220V4 反电动势的求取问题。S 函数(部分):function sys=mdlOutputs(t,x,u)glo
11、bal k;global Pos;global w;k=0.0024;w=u(1);Pos=u(2);if Pos=0end电机单独仿真波形:主要工作:关于程序中给定电流参数 S 函数的编写:考电流模块的作用是根据电流幅值信号 Is 和位置信号给出三相参考电流,输出的三相参考电流直接输入电流滞环控制模块,用于与实际电流比较进行电流滞环控制一转子位置和三相参考电流之间的对应关系如表 2 所示在仿真图中所处位置:6function sys,x0,str,ts=cemf(t,x,u,flag)clc;switch flagcase 0sys,x0,str,ts=mdlInitializeSizes;
12、 %初始化case 1sys=; %连续状态的更新case 2sys=; %离散状态的更新case 3sys=mdlOutputs(u); %求取系统的输出信号case 4sys=; %计算下一时刻的仿真时间case 9sys=; %终止仿真otherwiseerror(Unhandled flag=,num2str(flag);end%在 flag=0 的时候进行整个系统的初始化function sys,x0,str,ts=mdlInitializeSizessizes = simsizes; %读入初始化参数模板sizes.NumContStates = 0; %连续状态个数sizes.N
13、umDiscStates = 0; %离散状态个数sizes.NumOutputs = 3; %输出变量个数sizes.NumInputs = 2; %输入信号个数sizes.DirFeedthrough = 1; %输入直接传入输出信号否sizes.NumSampleTimes = 1; % at least one sample time is neededWO 一般来说为 1 个sys = simsizes(sizes);x0=; %状态初始化str=;7ts=-1 0; %采样周期若写成-1 表示继承其输入信号%在 flag=1 的时候进行连续系统状态的更新function sys=m
14、dlDerivatives(t,x,u)sys = ;%在 flag=2 的时候进行离散系统状态的更新function sys=mdlUpdates%sys(1,1)=x(1)+T*x(2); %为什么会写成这样呢%sys(2,1)=x(2)+T*fst2(x,u,r,h);%在 flag=3 的时候进行系统输出信号的求取function sys=mdlOutputs(u)m=current_dq(u(1),u(2);sys(1,1)=m(1);sys(2,1)=m(2);sys(3,1)=m(3);%在 flag=4 的时候进行下一时刻仿真时间的计算function sys=mdlGetTi
15、meOfNextVarHit(t,x,u)%sampleTime = 1; % Example, set the next hit to be one second later.%sys = t + sampleTime;%在 flag=9 的时候终止仿真过程function sys=mdlTerminate(t,x,u)%sys = ;%自定义子程序function x=current_dq(angle,current)pos=mod(angle,2*pi);x(1)=current;x(2)=-current;x(3)=0;if 0=pos x(2)=-current;x(3)=0;end
16、if pi/3=pos x(2)=0;x(3)=-current;endif 2*pi/3=pos x(2)=current;x(3)=-current;endif pi=pos x(2)=current;x(3)=0;endif 4*pi/3=pos x(2)=0;x(3)=current;endif 5*pi/3=pos x(2)=-current;x(3)=current;end体会:通过这次论文的制作,学到了很多东西,特别是对 MATLAB的使用更加熟练,知道了在研究中,有时需要用到复杂的算法设计等,而这些算法因为其复杂性不适合用普通的 Simulink 模块来搭建,即 matlab 所提供的 Simulink 模块不能满足用户的需求,需要用编程的形式设计出 S 函数模块,将其嵌入到系统中。如果恰当地使用S 函数,基本上能对任何函数进行仿真。9参考文献【1】姜学军,计算机控制技术(第 2 版). 清华大学出版社 【2】微特电机与特种电机