MATLAB在模糊控制系统设计和仿真的应用(1)
- 格式:pdf
- 大小:330.20 KB
- 文档页数:6
控制 信号处理及计算机仿真
控制器及系统设计的各种途径 它提供了生成和编辑 FIS 常 用的函数 如 newfis addvar addmf addrule evalfis 等 它包括产生新的 FIS 给 FIS 加入变量 隶属度函数和控制规 则 完成模糊推理运算等 用户可用命令调用这此些函数生 成 FIS[1] 工具箱还提供了 GUI 图形用户界面 编辑函数 使用户能更直观地生成系统 它有 FIS 编辑器 隶属度函数 编辑器 规则编辑器 规则观测器和曲面观测器五个 GUI 工 具 下面以图 1 所示小容量锅炉给水控制为例加以说明 由 于小容量锅炉假水位现象不明显 采用单冲量控制系统 汽 包水位被控对象传递函数定为[2]G(S)=0.0125 S(11.5S+1)
李祖欣, 等 MATLAB 在模糊控制系统设计和仿真的应用
• 133 •
隶
NB NM NS ZE PS PM PB
属
度
E 图 2 E 的隶属度函数
隶属度函数曲线可以是等距离 也可以是非等距离的 当偏
差大于某值时 曲线的 密度设置得小一些 这
Hale Waihona Puke 表 1 模糊控制规则表样可以提高系统的响应 速度 当偏差小于某值 时 曲线的密度设置得 大一些 这样可以提高 系统的响应精度和减少
Abstract This paper focuses on how to design and simulate a fuzzy control system with some toolboxes of MATLAB. The self-adjusting parameters in the fuzzy control system can be realized effectually through compiling S-function, which combines MATLAB with simulink and extends simulink’s functions. At the same time, it provides a specific example. Keywords MATLAB language; fuzzy control; self-tuning parameter; computer simulation
在 MATLAB 命令窗中键入命令 FUZZY 进入模糊逻辑 编辑窗口 FIS Editor 建立 E EC U 的隶属度函数 有三角 形 trimf 高斯形 gaussmf 梯形(trapmf)等十一种可供选 择 在此均选常用的三角形隶属度函数 如图 2 所示 这些
万方数据
Vol. 15 No. 1 Jan. 2003
1 MATLAB 在模糊控制系统中的应用 1.1 生成和编辑模糊推理系统 FIS
模糊逻辑工具箱 Fuzzy Logic Toolbox 提供了模糊逻辑
收稿日期 2002-01-28
修回日期 2002-03-14
作 者 简 介 李 祖 欣(1972), 男, 浙江长兴人, 讲师, 硕士, 研究方向为模糊
编写 M 文件的 S 函数 进一步扩展了 SIMULINK 的功能 将 MATLAB 和 SIMULINK 有机结合
起来 大大改善了仿真效率 实现了参数自调整的模糊控制系统的设计和高效仿真 同时给出具
体实例
关键词 MATLAB 语言 模糊控制 参数自调整 计算机仿真
文章编号 1004-731X (2003) 01-0132-03
需用 readfis 命令把建好的 a.fis 读入工作空间(workspace)中
1.2 SIMULINK 仿真及参数的调整
MATLAB 提供的 SIMULINK 是一种用来对动态系统进 行建模 仿真和分析的软件包 它支持连续 离散及两者混
2 编写 S 函数实现参数自调整的高效仿真
2.1 ke kec ku 参数自调整原则
整模糊控制系统结构框图如 图 6 所示 若系统参数调整 原则不同 只需对 S 函数
参数自调整 固定参数
进行修改 封装的新模块可
以应用于不同的模糊系统 对上述两种模糊控制
图 7 两种系统仿真曲线
在控制曲面上 检查其期望值是否在模糊控制输出结论 空间的中心附近 若超过 20% 则需重新调整规则 隶属度 函数或模糊运算 对模糊控制器进行优化[3]
这样建立了一个 FIS 系统的文件 取文件名为 a.fis 注 意该模糊控制器的命名与 FIS 命名应一致 若进行仿真时
U
E
EC
图 3 模糊控制器的输入输出曲线图
中图分类号 TP273.4
文献标识码 B
Application of MATLAB in the Design and Simulation of Fuzzy Control System
LI Zu-xin
(Department of Physics Huzhou Teachers College Huzhou Zhejiang 313000, China)
超调 一般合适的隶属
度函数应该保证相邻模糊量的交点在 0.3-0.7 之间
合的线性和非线性系统 在 MATLAB 命令窗口中输入 simulink 弹出编辑框 选择相应的模块 其中在模糊控制工具箱中有 一个模糊控制器模块(Fuzzy Logic Controller) 将这些模块连 接起来构成系统结构图 双击各个模块输入相应的参数 同 时仿真时选择各种数值算法 仿真步长等重要参数 并可用 示波器将仿真动态结果给予显示 只有将模糊控制器模块与 FIS 文件对应起来才能真正构成一个模糊控制系统 它还可以 将仿真结果以不同变量存在 workspace 中 用 plot()函数在图 形窗口中绘出供分析和比较 图 4 是在 SIMULINK 环境下
图 4 模糊控制系统仿真框图
模糊控制器与二阶被控对象组成的控制系统仿真框图
1.1.2 糊控制规则和决策方法
控制规则是对专家的理论知识和实践经验的总结 此处 共有 49 条规则 如表 1 所示
在 Rule Editor 窗口中 输入这些规则 如选择 verbose 规则表达形式 我们写成为 1.If (e is NB) and (ec is NB) then (u is PB) (1) 其中最后括号中的 1 表示该条规则的权值
1.1.1 隶属度函数的建立
e(nT)
E(nT)
r
d dt
ke
EC(nT) kec
模糊 控制
U(nT)
器
ku
y(nT) G(S)
图 1 模糊控制系统方框图
若取输入汽包实际水位与给定水位值误差为 E 误差变 化 EC 和输出 U 的论域均为{-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6} 其模糊子集均为{NB NM NS ZO PS PM PB}
当偏差 E 较大时 对 ke 的加权应大一些 有利于消除误 差 同时 ku 取较大值 这样可以保证系统的快速性 当 E 较 小时 系统将接近稳态 此时应对 kec 加权大一点 ku 同时 减少 这样可以避免产生超调 使系统尽快进入稳态精度范 围
2.2 编写 S 函数
作为一种开放的语言 MATLAB 提供了多种用户扩展工 具 给用户提供编写复杂的函数 创建系统末提供的模块功 能 在直接使用 SIMULINK 难以进行仿真时 可以考虑编写 S 函 数 S 函 数 的 格 式 为 [4][5] Function [sys,x0,str,ts] =sFunname(t,x,u,flag) 其中 sFunname 为定义的 S 函数名 t,x,u 分别为时间 状态变量和输入向量 flag 为返回变量标志 系统针对返回不同的值进行不同的操作 当 flag=0 时系统进 行初始化 返回信息到 sys 初值至 x0 sys 数组中各元素的 值含义分别为 sys(1)= 连续状态变量数 sys(2)=离散状态变 量数 sys(3)=输出变量数 sys(4)=输入变量数 sys(5)= 离散 状态方程根的数目 sys(6)=1 flag=3 时使用输入变量返回输 出 或 0 flag=3 时不使用输入变量 flag= 1 时返回连续的 状态导数至 sys flag=2 时返回离散状态 x(n+1)至 sys flag=3 时返回输出变量 y flag=4 为计算下一个采样时间点并返回 flag=5 为系统保留 flag=9 为结束仿真 针对上述参数自调整 问题 编写如下 S 函数
function [sys,x0]=s1(t,x,u,flag) global ke kec ku; ke=0.3;kec=0.8;ku=2; %给量化因子和比例因子赋初值 if flag==0
万方数据
• 134 •
系统仿真学报
Vol. 15 No. 1 Jan. 2003
sys=[0,0,3,2,0,1]; %输出 输入变量为 3 2,使用输入变量返回输出 x0=[]; %状态变量取空值 else if flag==3 if abs(u(1))>0.3 sys(1)=0.8*ke*u(1); sys(2)=0.2*kec*u(2); sys(3)=2.2*ku; elseif abs(u(1))>0.1 sys(1)=0.4*ke*u(1);sys(2)=0.6*kec*u(2);sys(3)=1.4*ku; else sys(1)=ke*u(1);sys(2)=kec*u(2);sys(3)=ku; end else end
模糊决策采用 与 And 方法为 min 或 Or 方法 为 max 推理(Implication)方法为 min,合成(Aggregation)方法 为 max 解模糊化(Defuzzification)方法为重心法 centroid 如此设计的模糊控制器的输入与输出的关系曲线如图 3 所示 显然模糊控制是一种非线性控制
NB NM NS ZO PS PM PB