模糊控制大作业
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
偏差 e 和偏差变化量 ec 的论域
-2 0 0 1.0 0 0 0 0 -1 0 0 0.5 0.5 0 0 0 0 0 0 0 1.0 0 0 0 1 0 0 0 0.5 0.5 0 0 2 0 0 0 0 1.0 0 0 3 0 0 0 0 0.5 0.5 0 4 0 0 0 0 0 1.0 0 5 0 0 0 0 0 0.5 0.5 6 0 0 0 0 0 0 1.0
图 4.5
偏差变化率 ec 的变化情况
由图 4.4 和图 4.5 可以看出,偏差 e 的变化大致在[-0.7,1],偏差变化率 ec 的 变化大致在[-1.7,1.2]。但是偏差 e 也只是系统在上升时变化比较大,在系统趋于 稳定之后,变化就很小了,为了得到好的控制精度,可取偏差的实际论域为[0.05,0.05],变化范围小,使那些超出范围的全都量化到这个范围之内,以达到高 的精度、小的稳态误差。 因此,在利用模糊控制优化系统时,偏差 e 的实际论域可以取为[-1,1],偏差变 化率 ec 的实际论域可以根据实际变化情况取为[-1.2,1.2]。
-3-
模糊控制实验报告
4.2.2 变量模糊论域和量化因子的选取 通过偏差量化因子 Ke,偏差变化率量化因子 Kd 和输出量化因子 Ku 将连续 输入的变量偏差 e 和偏差的变化量 ec 和输出 u 都量化至量化域{-6,-5,-4,3,-2,-1,0,1,2,3,4,5,6},并且选偏差 e,偏差的变化率 ec 和输出 u 的模糊变量为:{NL, NM, NS, ZO,PS, PM, PL} 4.3 确定论域上各语言值对应的隶属函数.
(1)、模糊控制能有效地利用人的控制经验和专家知识; (2)、它不需要建立被控对象的精确的数学模型; (3)、系统语言规则相对独立,利用控制规律间的模糊连接,容易得到折中 选择,使控制效果优于常规控制。
- 10 -
模糊控制实验报告
附: 程序: %建立二阶系统模型 num=4.228; den=[1 0.5 4.228]; [a1,b,c,d]=tf2ss(num,den); G=tf(num,den); %建立fis文件,fuzzy控制器 a=newfis('control'); a=addvar(a,'input','e',[-6 6]); %添加偏差变量e a=addvar(a,'input','ec',[-6 6]); %添加偏差的变化率ec a=addvar(a,'output','u',[-6 6]);%添加控制量u a=addmf(a,'input',1,'NL','trimf',[-8 -6 -4]);%添加偏差变量e的隶属函数 a=addmf(a,'input',1,'NM','trimf',[-6 -4 -2]); a=addmf(a,'input',1,'NS','trimf',[-4 -2 0]); a=addmf(a,'input',1,'ZO','trimf',[-2 0 2]); a=addmf(a,'input',1,'PS','trimf',[0 2 4]); a=addmf(a,'input',1,'PM','trimf',[2 4 6]); a=addmf(a,'input',1,'PL','trimf',[4 6 8]); a=addmf(a,'input',2,'NL','trimf',[-8 -6 -4]);%添加ec的隶属函数 a=addmf(a,'input',2,'NM','trimf',[-6 -4 -2]); a=addmf(a,'input',2,'NS','trimf',[-4 -2 0]); a=addmf(a,'input',2,'ZO','trimf',[-2 0 2]); a=addmf(a,'input',2,'PS','trimf',[0 2 4]); a=addmf(a,'input',2,'PM','trimf',[2 4 6]); a=addmf(a,'input',2,'PL','trimf',[4 6 8]); a=addmf(a,'output',1,'NL','trimf',[-8 -6 -4]); %添加u的隶属函数 a=addmf(a,'output',1,'NM','trimf',[-6 -4 -2]); a=addmf(a,'output',1,'NS','trimf',[-4 -2 0]); a=addmf(a,'output',1,'ZO','trimf',[-2 0 2]); a=addmf(a,'output',1,'PS','trimf',[0 2 4]); a=addmf(a,'output',1,'PM','trimf',[2 4 6]); a=addmf(a,'output',1,'PL','trimf',[4 6 8]); %模糊规则矩阵 rr=[7 7 7 7 6 5 4;7 7 6 6 5 4 4;7 6 6 5 4 4 3;6 5 5 4 3 3 2;5 4 4 3 2 2 1;4 4 3 2 2 1 1;4 3 2 1 1 1 1]; k=1;
四、实验步骤
4.1 确定模糊控制器的输入变量和输出变量(即控制量)
输入变量:误差 e 和误差的变化量 ec;, 输出变量:控制量 u; 是一个二维的二输入一输出的模糊控制器
图 4.1 4.2 变量论域的选取 -1-
控制框图
模糊控制实验报告
4.2.1
变量实际论域的选取
首先,在 Simulink 观察没有经过模糊控制的系统的输出,误差和误差的 变化率来确定要控制的两个变量:偏差 e 和偏差的变化率 ec 的实际论域和输出 u 的实际论域。
图 5.5
最优化输出
-9-
模糊控制实验报告
经过不断变化 Ke,Kd,Ku 三个参数,得到最优的系统输出,当 Ke=150, Kd=3,Ku=8 时,没有超调,稳态误差约为 0,上升时间为 0.4s,过渡时间约为 0.4s。系统不仅符合设计要求,而且是各项参数最好的控制。
六、实验结论
在实验中,通过仿真对比分析了模糊控制器的量化因子和比例因子对模糊 控制效果的影响。 通过上述对比分析可以看出,对于已知精确模型的系统,模糊控制器具有 很好的控制效果,能够完全消除稳态误差,而模糊控制器需要反复调节量化因 子和比例因子才能尽可能地消除稳态误差。当然,实验中仅采取了最基本的模 糊控制器,更加优秀的模糊控制器应该会带来更好的控制效果。 6.1遇到的问题 1、量化因子 Ke,Kec,Ku 该如何确定? 有个一般的公式: Ke=n/e(max),Kec=m/ec(max),Ku=l/u(max) 其中,n,m,l 分别为 Ke,Kec,Ku 的量化等级,一般可取 6 或 7; e(max),ec(max),u(max)分别为误差,误差变化率和控制输出的论域。 可以先观察一下没有添加模糊控制时系统的误差,误差变化率和控制 输出的实际论域,由公式首先确定出 Ke,Kec,Ku 的值,在这这个基础上 通过凑试法,根据经验,先确定 Ku,这个直接关系着你的输出是发散的还 是收敛的。再确定 Ke,这个直接关系着输出的稳态误差响应。最后确定 Kec。 2.Simulink 和 fis 文件怎么连接? 运行 Simulink 之前,先用 fuzzy 指令打开*.fis 文件,输入隶属函数 和规则之后将其 export 到 workspace 中,然后打开 simulink 中的模糊模 块,双击模糊模块,填入刚才存入 workspace 中的那个文件名,这样模糊 模块就和*.fis 链接了。在进入 Simulink 中,右键单击 Fuzzy logic controller,选择 Look Under Mask 既可以看到连接情况,若显示 FIS 说 明连接好了,若是显示 sffis 说明没有连接好。 6.2 在实验中也发现,模糊控制同常规控制器比较,有着显著的优点:
图 4.2 Simulink 中原始的系统框图
图 4.3
没有经过模糊控制的系统输出 u
从图 4.3 可以看出这个系统是一个稳定系统但是超调比较大,不符合要 求,因此可以选择添加模糊控制系统,增加过渡时间来减小超调量。u 的实际 论域可以取[0,1.7]。
-2-
模糊控制实验报告
图 4.4
偏差 e 的变化情况
若模糊控制器的基本论域是[a,b],模糊集论域为[-6,6],可采用公式
-Байду номын сангаас-
模糊控制实验报告
y int[
12 a b (x )] ab 2
则偏差量化因子 ,
Ke
n n K ec xe , xec
便可以求得初始的量化因子 ke=120,kec=3。 4.6.2 比例因子 模糊控制算法输出与实际控制量的变换
图 4.6
偏差 e 的隶属函数
图 4.7
偏差变化率 ec 的隶属函数
图 4.8
输出 u 的隶属函数
-4-
模糊控制实验报告
图 4.9
控制器的输入输出界面
图 4.10 模糊推理系统 由上述输入变量的隶属度曲线可以讲他转换成隶属函数表:
表一 隶属函数表 隶属度
-6 -5 -4 0 1.0 0 0 0 0 0 -3 0 0.5 0.5 0 0 0 0
PL PL PL PM PS ZO ZO
对于多个控制规则并行时,决策过程为:
图 4.10 4.5 确定模糊化与解模糊的方法;
控制决策过程
1) 最大隶属度法:选择最大隶属度对应的值 2) 加权平均法:
u*
(u ) u (u )
i i
i
3)取中位数法:将模糊隶属函数与横坐标之间面积平分为两等分的数作为 解模糊的结果,此数称为中位数。 4.6 4.6.1 确定模糊控制器参数(如量化因子,比例因子) 量化因子
NS PL PM PM PS ZO NS NM ZO PL PM PS ZO NS NM NL PS PM PS ZO NS NM NM NL PM PS ZO ZO NS NM NL NL PL ZO ZO NS NM NL NL NL
输 入 变 量 偏 差
e
NL NM NS ZO PS PM PL
模 NL 糊 NM 语 NS 言 值
ZO PS PM PL
1.0 0.5 0 0 0 0 0 0 0.5 0 0 0 0 0
-5-
模糊控制实验报告
4.4
设计模糊控制器的控制规则
用语言归纳模糊控制策略为规则:
表二 控制规则表 控制量 u
NL NM PL PL PM PS ZO ZO NS
偏差的变化量
模糊控制实验报告
可以得出结论:Kd 较大时,超调量小,kd 增大则系统超调减小,但响应时 间变长,kd 对超调抑制作用明显。 当改变 ku 的值时,可以看到如图变化:
图 5.4 越大则导致会系统振荡。
不同的 ku 对应的不同输出
由图 5.3 可知,ku 影响实际控制量大小,ku 越小动态响应时间越长, ku
Ku
l yu
其中 yu 为实际控制量,而 l 为模糊控制表所获得的精确控制量.可取 Ku=7。
五、实验数据和分析:
5.1 量化因子对控制作用的影响
量化因子 ke 对控制系统的动态影响很大,ke 较大时,系统超调也较大, 过渡过程长。因为增大 ke 相当于缩小了误差的基本论域,增大了误差变量的控 制作用,因此上升时间变短,但由于超调,使过渡时间变长。(相当于 PID 控制 中比例系数增大)。 Kd 较大时,超调量小,kd 增大则系统超调减小,但响应时间变长。kd 对 超调抑制作用明显。 ke 与 kd 的大小还意味着对输入变量误差与误差变化的不同加权程度,即 ke 与 kd 之间相互影响,例取 kd=(1.5~2.5)ke。ku 影响实际控制量大小,ku 下降使动态响应变长, ku 大则导致系统振荡。 5.2 编制控制程序,并观察输出结果
图 5.1
系统 Simulink 仿真图
-7-
模糊控制实验报告
当改变 ke 的值时,可以看到如图变化:
图 5.2 超调量也较大,过渡时间较长。
不同的 ke 对应的不同输出
Ke 的大小对系统的动态性能影响很大。Ke 选的比较大时,系统上升较快, 当改变 kd 的值时,可以看到如图变化:
图 5.3
不同的 kd 对应的不同输出 -8-
模糊控制实验报告
模糊控制实验报告
一、实验目的
根据所学习的模糊控制的相关的理论知识,在 Matlab 上建立隶属函数和规 则,利用编程或者在 Simulink 实现对一个实际的系统进行优化控制,对所学的 理论知识进行巩固和加深。
二、实验内容
系统开环传递函数如下,试设计一个模糊控制器,并撰写试验报告。 4.228 G ( s) 2 s 0.5 s
三、实验要求
3.1 系统开环传递函数各参数自行选择,当控制系统输入为阶跃信号时,
系统输出的阶跃响应应满足以下性能指标要求: 1)、超调量<10%; 2)、稳态精度<5%; 3)、过渡过程时间<3s; 3.2 报告应包括以下内容: 1)、MATLAB 仿真系统结构图; 2)、模糊控制器和模糊规则的建立过程; 3)、根据性能指标进行的模糊控制器的调整过程; 4)、最初的以及调整后的系统阶跃响应曲线图、性能指标计算结果; 5)、实验结论和在实验中遇到的问题与解决办法; 6)、提供 MATLAB 源程序;