怎么设置模糊控制器的阶跃信号

作者&投稿:时茜 (若有异议请与网页底部的电邮联系)
~ 、数据的预处理
这里提到数据的预处理问题其实十分的重要,很多人的仿真控制算法时也是这里最容易出错。自己明明按照别人的搭建起来了,但是结果就是不对,带进去自己的数据就报错或者结果很难看。

网上看到的很多控制系统都是做了标准化的处理,你也可以理解为归一化处理完之后的。一般为了能够适应不同的输入输出条件,常设计控制系统内部的数据为 [-1,1] 之间或者 [0,1] 范围内。这样,控制系统的输入和输出只要做一下线性变换,变换到对应的范围内,即可直接套用已经设计好的控制系统。

例:某恒温箱,要求温度从20℃室温尽快调节到40℃。且已经给你了一个黑盒子,这个黑盒子就是网上那种例程,里面是个已经设计好的模糊控制器,给了你一个输入,一个输出。那么请问,你要直接把一个初值20,终值40的阶跃信号给这个系统吗?其实不少数人都是这么做的。

给定的黑盒子要求的输入输出实际上是[-1,1],你给人家弄个20输入,人家最大只能给你输出个1,能不出问题吗?

所以说,不要拿来个例程就套自己的数据,看看内部是怎么定义的。

2、PID 参数整定问题
现在我们假设,你的数据全部都已经规范化处理了。

PID的详细方程就不做介绍了,这里说一下这三个参数,某度搜一下“PID三个参数的作用”,上面有很多。

之前那篇模糊PID算法只讲了使用模糊控制在线整定PID的三个参数,其本质上还是个PID控制器,所以仍然需要你的系统模型(这里不明白的去百度一下“模糊控制与传统控制的区别”,关注对模型的需求)。不同的模型,PID的参数范围是不同的,PID参数整定的方法大家最好找到相关文献,比如Ziegler-Nichols 方法,然后根据你的传递函数模型,求出来各个参数范围,这些参数的范围将作为模糊控制的论域,所以非常重要。

3、模糊控制
假设你的PID参数的论域也准备好了,那么才进入你的模糊控制内容,这里我根据查到的资料详细讲一下,包括模糊控制中的理论基础。坐好车,我们出发。

在MATLAB里面,模糊控制已经集成为了工具箱,如下图:

图中,红色的两个圈表示为E,EC,分别为模糊控制系统中要求的输入误差和误差变化率,误差和误差变化率要求要在你的系统会产生的误差和误差变化率论域里面,别再随便看人家写的[-6,6],你就写这个范围了。

黑色圈的为模糊控制的输出,其各自的论域取决于之前确定的结果,你对那个已经确定的结果进行模糊子集的划分,就可以了。

接下来我们讲最有意思的模糊规则。

3.1 模糊控制规则的静态特性——完备性
完备性要求对于所有模糊控制输入的误差和误差变化率都对应一个与之对应的控制量。

完备性实际上就是你在设计模糊规则的时候,考虑到所有的误差可能性,对于所有的误差都需要有个对应的输出,对于模糊PID控制来说,就是给定了任意处于论域内的E和EC,都能够得到一组对应的PID三个参数。

如果现在给定E=-1,其对应的模糊语言为NL,EC=1其对应的模糊语言为PL,那么,模糊规则里面不包含这个组合的输出,那模糊系统就可能输出错误的值,进而导致控制性能的恶化。一般这种情况很少出现,因为对于7*7的模糊规则库来说,完全可以通过穷举的方式找到每个误差和误差变化率的输出,直观的说,就是你把那个7*7的表格填满就行了。

3.2 模糊控制规则的静态特性——相容性
模糊规则的相容性对于控制器的性能影响比较大,这条是在控制系统的设计过程中最容易出现问题的地方。相容性要求你的模糊规则不要有相互矛盾的输出,或者在输入相差较小的情况下输出不同。

举一个书上的例子,对一个反应釜系统,有如下两个模糊规则:

R1: 如果反应温度较高,则减少进料流量,降低反应槽内温度;

R2:如果反应转化率较大,则增大进料量,升高反应槽内温度。

这里似乎两条规则的钱体不同,因此采用了不同的控制方案,但通常反应釜内的温度越高,反应的转化率也越高,而控制方向却是相反的。这会导致控制系统出现问题。

之前有个朋友问我他模糊控制怎么不出来结果,我看了半天,原来就是他自己设计这个模糊规则,出现了这种相容性问题。

3.3 模糊控制规则的静态特性——干涉性
模糊控制规则的干涉性不太好理解,其大致意思是如果模糊规则相互干涉,那么模糊输出得到的控制量就不再等于你之前设定的那个东西了。干涉性来源于控制器的逻辑结构,如果用一个模糊关系的矩阵来表示模糊控制器,则不会存在这个干涉性问题。

简单且直观地说,就是你在设计那个模糊隶属度的函数时,两个或多个的函数曲线别重叠的太过分。


模糊控制规则的应用方法有哪些?
1.模糊控制器设计:在模糊控制器中,需要设计一个模糊控制器,该控制器包括输入和输出变量以及一组模糊规则。输入变量可以是机器人与障碍物的距离、机器人当前的角度等。输出变量通常是机器人的速度和转向角度。2.机器人导航:在机器人导航中,模糊控制可以用于控制机器人的运动路径。首先,需要设计一个模...

matlab的simulink中怎么调用设计好的模糊控制器
从simulink library browser ——> fuzzy Logic Toolbox ——> fuzzy logical controller 拖到simulink中。双击 fuzzy logical controller ,输入做好的模糊控制器名称。把控制器放在系统的位置,就可以了,再运行simulink,步骤如下:1、打开matlab软件;2、输入一下指令,清空工作空间;clear;clc;3、输入...

怎么设置模糊控制器的阶跃信号
模糊控制规则的干涉性不太好理解,其大致意思是如果模糊规则相互干涉,那么模糊输出得到的控制量就不再等于你之前设定的那个东西了。干涉性来源于控制器的逻辑结构,如果用一个模糊关系的矩阵来表示模糊控制器,则不会存在这个干涉性问题。简单且直观地说,就是你在设计那个模糊隶属度的函数时,两个或多个...

simulink中的模糊控制器的参数怎么设置
1、在用这个控制器之前,需要用readfis指令将fuzzy1.fis加载到matlab的工作空间,比如用这样的指令:fis1=readfis(‘fis1.fis’);就创建了一个叫myFLC的结构体到工作空间,并在fuzzy logic controller中参数设为:fis1。2、可以看到,在模糊控制器的输入和输出均有一个比例系数,叫它量化因子,它反...

MATLAB里的模糊控制器怎么用
在command 窗口里输入fuzzy,再点击回车键即出现模糊控制器设计窗口,edit 栏里有add variable,在这里点击input 或者output 可以增加输入变量和输出变量;双击中间白色框可以设置模糊控制规则,这个根据具体实际情况来设定,双击input框或者output框可以设置输入或输出的论域,这些也是根据实际情况设定,这是根据...

matlab中利用FIS完成模糊控制器的设计,想把控制器与SIMULINK模型连接,该...
1、在空座空间中输入 name1=readfis('name2') 其中,name1是你自己随便取的,name2是已经保存的fis文件名,不加.fis 2、在simulink中,右击Fuzzy logic controller→look under mask,在新窗口的fis wizard 双击,输入name1,即可。MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The ...

模糊控制器怎么设计?
因此便尝试着以模糊数学来处理这些控制问题。"模糊"是人类感知万物,获取知识,思维推理,决策实施的重要特征。"模糊"比"清晰"所拥有的信息容量更大,内涵更丰富,更符合客观世界。首先需要掌握受控部分的详细可选范围,再就是执行部分的可控范围了!设计时只需按部就班的将可选范围代码随机分配给执行部分...

怎么用matlab的simulink仿真模糊控制器
可以再simulink模块中拉出模糊控制器模型,然后还要用m文件编写相应的模糊控制器程序,取个模糊文件的名字,比如a,然后单击模块,键入字母a,即可,注意写好m文件后,要运行一次,这样才能生成模糊文件a。程序可参考,我的另一个答复:http:\/\/zhidao.baidu.com\/question\/98795089.html ...

模糊PID控制器的参数初值如何设置
是参数整定的话 先用pid调出大约的pid参数,然后用模糊控制器来自整定pid参数,达到更好的效果

求助,在matlab中利用FIS完成模糊控制器的设计,想把控制器与SIMULINK模 ...
1确定你的FIS的解模糊方法是centriod,别的解模糊方法不能连接,原因我也不大了解。2在FIS图形界面按快捷键CRTL+T,将该FIS文件送入工作空间。还有种方法和楼上说的一样,直接在MATLAB中输入 name1=readfis('name2')其中,name1是你自己随便取的,name2是已经保存的fis文件名,不加.fis,不过有...

汾阳市13672034527: 新手 问模糊控制的输入e和ec以及模糊控制器在simulink中的模块搭建 -
产邢胃苏: 1、du/dt是微分模块,其作用是计算偏差值的变化率,而不是微分控制.其参数不用调整.用默认的一般都行.2、du/dt模块一般是在你所说的增益模块之前.3、模糊控制模块之前的,你所说的增益模块,实际上是模糊控制中的量化因子.其参数一般在模糊控制器的设计时就可以确定.所以你先需要确定:模糊控制器是不是有输出?把阶跃信号的幅度调大,或者阶跃的时间推迟试试.另外要注意在求偏差时,是反馈信号减去阶跃信号,还是阶跃信号减去反馈信号?

汾阳市13672034527: 模糊控制,Simulink中根据什么调节Gain参数?
产邢胃苏: 这样不会给你零稳态误差.如果你想获得零稳态误差,你需要integrate模糊控制器的输出.然后你可以调整后模糊逻辑控制器的Gain,以获得所需的瞬态响应,包括超调.

汾阳市13672034527: simulink中的模糊控制器的参数怎么设置 -
产邢胃苏: 1、在用这个控制器之前,需要用readfis指令将fuzzy1.fis加载到matlab的工作空间,比如用这样的指令:fis1=readfis('fis1.fis');就创建了一个叫myFLC的结构体到工作空间,并在fuzzy logic controller中参数设为:fis1.2、可以看到,在模糊...

汾阳市13672034527: MATLAB里的模糊控制器怎么用
产邢胃苏: 在command 窗口里输入fuzzy,再点击回车键即出现模糊控制器设计窗口,edit 栏里有add variable,在这里点击input 或者output 可以增加输入变量和输出变量;双击中间白色框可以设置模糊控制规则,这个根据具体实际情况来设定,双击input框或者output框可以设置输入或输出的论域,这些也是根据实际情况设定,这是根据经验一点点试的,没有标准,根据试的效果来确定最终输入输出论域范围,如果英语好,可以直接在command里 help fuzzy查看帮助信息,上面说的很明确.

汾阳市13672034527: pid控制是线性控制还是非线性控制 -
产邢胃苏: 我刚好做了一个模糊PID控制器..步骤是这样:1、确定模糊控制规则:输入输出量、对应的模糊规则表、各变量的论域.2、在MATLAB主命令窗口输入fuzzy,在里面设置模糊规则.保存下来一个fis文件.3、在MATLAB主命令窗口输入myFLC=readfis('fuzzpid.fis'),并在Simulink中的fuzzy logic controller中参数设为myFLC,即可在Simulink中调用此模糊控制器.当然了,这里的myFLC和fuzzpid是你自己定的文件名.4、我做的时候,PID控制器是自己搭建的,并没有直接用自带的PID模块.直接用PID模块我没有成功.有什么问题你可以继续问我~

汾阳市13672034527: simulink中调用模糊控制器的时候总是出现以下错误,要怎么弄 -
产邢胃苏: 从simulink library browser ——> fuzzy Logic Toolbox ——> fuzzy logical controller 拖到simulink中.双击 fuzzy logical controller ,输入与你做好的模糊控制器名称.把控制器放在你想放的系统的位置,就可以了运行simulink前先运行模糊控制器 file—— export —— to workspace . 再运行simulink

汾阳市13672034527: 模糊PID控制器的工作原理 -
产邢胃苏: 什么是PID调节及PID调节的基本原理 关键词: PID 调节目前工业自动化水平已成为衡量各行各业现代化水平的一个重要标志.同时,控制理论的发展也经历了古典控制理论、现代控制理论和智能控制理论三个阶段.智能控制的典型实例是模糊...

汾阳市13672034527: 不太理解例子当中的r(k)=sign(sin(2*pi*k*ts))到底是什么意思、仿真出来是一个阶跃信号、就是输入吗? -
产邢胃苏: 搜一下:不太理解例子当中的r(k)=sign(sin(2*pi*k*ts))到底是什么意思、仿真出来是一个阶跃信号、就是输入吗?

汾阳市13672034527: 已知被控对象的传递函数,如何用MATLAB模糊逻辑工具箱设计一个模糊控制器?
产邢胃苏: 应该是:信号→模糊控制器→被控对象→输出 其中,模糊控制器可在MATLAB窗口中输入Fuzzy,然后设置输入输出各参数、隶属度函数、模糊控制规则得到. 完成模糊控制器的设置后,在Sinulink下构建一个Model,加入其他元素,进行仿真.

汾阳市13672034527: 如何利用matlab将模糊逻辑转化为查询表 -
产邢胃苏: 您好,第一步:利用matlab模糊控制工具箱设计模糊控制器.1、在matlab命令窗口中输入 fuzzy ,产生如下窗口.2、确定模糊控制器结构,即根据具体的系统确定输入、输出量.这里我们可以选取标准的二维控制结构,即输入为误差e和误差变...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网