5 直流电机模糊控制系统的MATLAB/Simulink的仿真
5.1 建立直流电机的仿真模型
直流电机系统是二阶系统,以电枢电压U为控制输入,将电机的转速ω和电枢电流i作为状态变量,得到的直流电机系统的状态空间方程为:
????
????=??????????蠅+?? ????
(9)
打开MATLAB软件,在MATLAB软件的命令窗口输入simulink并回车,就
可进入simulink的设计窗口,或者在MATLAB软件的工具栏上点击图标,可快速进入simulink的设计窗口,然后从新建立一个模型文件,在新建的模型文件中建立直流电机模型,如图21所示。
图21 直流电机模型
直0.5H,
流
电
机,
模
型
参
数,为
:
.
,
L=
5.2 模糊控制器的设计
应用MATLAB软件中的模糊推理系统工具箱,对模糊控制器进行编辑,模糊控制器的编辑方法如下:
(1) 对模糊集合进行编辑和运算,在MATLAB软件的命令窗口在输入fuzzy并回车,打开模糊逻辑编辑器,在模糊逻辑编辑器的菜单栏中选择File→New FIS
25
→Mamdani新建立Mamdani型模糊控制器,在菜单Edit下添加偏差E和偏差变化率DE及控制增量△U的输入量和输出量,如图22所示。
如22 模糊控制器的编辑
双击输入和输出图标,就能对输入和输出的函数进行编辑。如模糊子集
个数、论域范围、函数形状等参数都可以进行编辑。
(2) 选择菜单Edit-Rules进入模糊规则编辑窗口,如图23所示。
图23 模糊规则的编辑
在模糊控制编辑器中,通过模糊控制规则来选择E、DE和△U的值,点击模
26
糊规则编辑窗口的的Add rule按扭,编辑生成格式为“IF e is A and de is B THEN △u is C”的语句。此次直流电机系统的模糊控制规则如表1所示。
de\\e NB NS ZE PS PB
NB NB NB NS NS ZE
NS NB NS NS ZE PS
ZE NS NS ZE PS PS
PS NS ZE PS PS PB
PB ZE PS PS PB PB
(3) 模糊推理的选择。因选择了Mamdani型号的模糊控制器,则采用
Mamdani推理方法进行模糊推理,采用的去模糊化方法是缺省值:centroid(重心法)。如图24所示。
表1 模糊控制规则
图24 去模糊化的选择
(4) 模糊关系矩阵的生成,做完(1)、(2)、(3)三步后,生成一个格式为fis的文件,保存地址为‘d:\\matlab7\\work\\mfkzq.fis’(软件默认保存
27
文件地址为“c:\\matlab7\\work\\Untitled.fis”,其中c为文件安装目录,文件名mfkzq由自己确定)。使用函数readfis( )形成模糊关系矩阵,在MATLAB软件中,在命令窗口中输入命令‘hjr001=readfis(‘mfkzq.fis’)并回车,以调用模糊关系矩阵。
5.3 直流电机模糊控制系统的建立与仿真
在本设计中,直流电机采用的是增量控制方法,控制量U=U0+鈭哢,
其中
由模糊控制器产生,在MATLAB软件的simulink设计窗口建立直流电机
模糊控制系统结构图,如图25所示。
图25 直流电机模糊控制系统结构图
在使用直流电机模糊控制系统之前,需要将模糊器mfkzq.fis加载到
MATLAB
的工作空间,在
MATLAB
指令界面输入的指令
hjr001=readfis('mfkzq.fis')并回车,就创建了一个名为hjr001的结构体到
28
工作空间。运行结果如图26所示。
图26 创建名为hjr001的结构体到工作空间
取U0=50V,设置模糊控制器,鼠标左键双击模糊控制模块,在弹出的
设置窗口FIS File or Structure一栏中输入所创建的工作空间hjr001,点击OK即可完成对模糊控制器的设置。设置窗口如图27所示。
图27 设置模糊控制器
量化因子的计算公式和比例因子的计算公式如式12所示。
K1=Xe?n1, K2=Xde?n2 , K3=n3?Yu
(10)
公式(12)中Xe、Xde、Yu分别表示的是误差、误差变化率、控制量论域的
幅值,n1、n2、n3分别表示的是误差变量、误差变化率变量、控制量的最大值。本直流电机控制系统n1、n2、n3的取值分别为n1=50、n2=80、n3=50. 偏差E和偏差变化率DE及控制量U都取五个子模糊集为{NB、NS、NE、PS、PB},选用三角型隶属函数作为其隶属函数。E、DE、U的论域分别取:[-10、+10]、[-8、+8]、[-5、+5],则K1、K2、K3的计算结果分别为0.1、0.1、10.各参数设置完成之后,对建立的直流电机模糊系统进行仿真运行。设定采样时间t=0~100,仿真结果如图28所示。
29