已知被控对象的传递函数,如何用MATLAB模糊逻辑工具箱设计一个模糊控制器?

作者&投稿:莘步 (若有异议请与网页底部的电邮联系)
能使用MATLAB中的模糊逻辑工具箱计算模糊控制表吗?~

可以在MATLAB中写入代码,也可以输入fuzzy,打开模糊推理系统图形界面进行设定

第一步:利用matlab模糊控制工具箱设计模糊控制器。
1、在matlab命令窗口中输入 fuzzy ,产生如下窗口。

2、确定模糊控制器结构,即根据具体的系统确定输入、输出量。
这里我们可以选取标准的二维控制结构,即输入为误差e和误差变化ec,输出为控制量u。输入变量的添加通过 Edit -> Add Variable -> Input 实现。

3、语言值及隶属函数的确定。
首先我们要确定描述输入输出变量语言值的模糊子集,如{NB,NM,NS,ZE,PS,PM,PB},并设置输入输出变量的论域,例如我们设置误差E、误差变化EC的论域为[-6 6],控制量U的论域为[-10 10];然后为模糊语言变量选取相应的隶属度函数。通过 Edit -> Membership Functions 打开隶属度函数编辑器,然后分别对输入输出变量定义论域范围,添加隶属函数,以E为例,设置论域范围为[-6 6],添加隶属函数的个数为7。(注:隶属度函数编辑器初始时已为每个变量定义了3个隶属函数,再通过 Edit -> Add MFs 添加隶属函数时,个数选择4即可)
4、模糊控制规则的制定。
对于我们这个二维控制结构以及相应的输入模糊集,我们可以制定49条模糊控制规则。
5、解模糊。
模糊控制器的输出量是一个模糊集合,通过解模糊化方法判决出一个确切的精确量,解模糊化方法很多,我们这里选取重心法。

6、保存建立的模糊控制器。

File -> Export -> To File,文件名为 fuzzy_control。

第二步:建立Simulink模型。

1、在matlab命令窗口中输入simulink,产生如下窗口。

2、新建模糊控制器模型,样式如下。

3、在matlab命令窗口下输入 fuzzy = readfis('fuzzy_control') ,将之前建立的模糊控制器加载到工作空间,并将Fuzzy Logic Contrtoller的参数设置为fuzzy。
4、保存该模型,命名为 fuzzy_model

第三步:系统测试界面的设置。

1、通过 Tools -> System Test -> Launch System Test 进入系统测试界面。
2、添加测试模型。
鼠标选中Main Test ,菜单栏 Insert -> Test Element -> Simulink ,选择第二步中建立的模型 fuzzy_model 。
3、变量定义。
在Test Vectors 项里定义两个测试向量,变量名分别为 input1、input2,input1 = [-6:1:6], input2 = [-6:1:6];在Test Variables 里定义测试变量,变量名为output。
4、变量映射。
把测试向量input1、input2分别映射到模糊控制器的输入口 in1、in2,做为输入测试信号。把测试变量 output 映射到模糊控制器输出口out1。设置后的界面如下:
输入测试向量到模糊模型输入口映射:

5、测试数据保存。

在测试界面点Save Results项,设置如下:

6、运行测试,注意在Main Test(169 Iterations)(169次迭代,运算代价),等待测试结束。
第四步:模糊控制查询表的生成
1、系统测试结果保存在 stresults.ResultsDataSet.output 中,为169*1 cell的单元数组。(注:单元cell为 [n*1 double] 结构,表示系统被测试了n次)。
2、在matlab命令窗口下输入 test_data = stresults.ResultsDataSet.output ,将测试结果另存在变量 test_data 中。
3、测试结果格式转换。
由于所建的二维查询表为13行13列,所需的数据应该为13*13 double数组,但因为test_data为 169*1 cell 的单元数组,无法直接作为表格数据输入,因此需先进行格式转换。
在matlab命令窗口下输入 table_data = Cell2Array( test_data , 1 , 13 , 13 ) ,调用Cell2Array函数,取每个单元数组中的第一行元素,即第一次测试数据,返回结果保存在 table_data 中。
源码如下:
4、新建二维查询表模型,样式如下:

5、点开二维查询表进行如下设置:

6、点 Edit 按钮,即可查看所生成的表格。

应该是:信号→模糊控制器→被控对象→输出
其中,模糊控制器可在MATLAB窗口中输入Fuzzy,然后设置输入输出各参数、隶属度函数、模糊控制规则得到。
完成模糊控制器的设置后,在Sinulink下构建一个Model,加入其他元素,进行仿真。


自动控制原理中什么是闭环传递函数?
化简是为了求开环增益,后期画根轨迹等很多地方都要用到开环增益。让闭环传递函数的分母等于零就是特征方程。这时候不需要化简。自动控制系统 为了实现各种复杂的控制任务,首先要将被控制对象和控制装置按照一定的方式连接起来,组成一个有机的整体,这就是自动控制系统。在自动控制系统中,被控对象的输...

传递函数的定义
那么,对于最简单的连续时间输入信号和输出信号来说,传递函数所反映的就是零状态条件下输入信号的拉普拉斯变换与输出信号的拉普拉斯变换之间的线性映射关系:或者 在离散时间系统中,应用Z变换,传递函数可以类似地表示成 这常常被称为脉冲传递函数。从微分方程直接推导 考虑一个常系数线性微分方程 其中 u ...

自动控制原理 已知一个系统输入输出的关系 求系统传递函数
要在Simulink中搭建模型进行仿真,直接用积分方程就可以了。把微分方程积分,变成积分方程,因为微分数值计算很不稳定。第二项漏写了φ?这个方程不像正确的样子。传函就是φ\/X,不知道有什么难的

...的参考书上和知网论文上的方法,感觉推导过程都不对啊?
楼主的这个问题已经是六年前的问题了(今天2021年5月),不知道楼主现在还关注这个话题不?神经网络自整定PID肯定是有效的。目前,神经网络自整定PID主要面临三个问题:一是初值选择的问题,不合理的初值很容易使闭环系统不稳定;二是神经网络自整定PID自身需要人为设定的参数较多,PID控制自身只需要三...

如何应用阶跃响应曲线法确定对象数学模型
3、曲线处理:对实验数据进行曲线处理,绘制出阶跃响应曲线,并统计相关参数,如阶跃信号的大小、输入与响应信号的时间等。4、确定传递函数:通过对阶跃信号响应曲线进行分析,可以获得待辨识对象的传递函数,该传递函数可以代表对象的数学模型,通常可采用较通用的一、二、三阶传递函数等。

已知单位负反馈控制系统的开环传递函数G(s)=K\/((S^2)*(S+1)),求其...
我用matlab画的G(s)=K\/((S^2)*(S+1))的根轨迹,交点应是原点 闭环特征方程是s^3+s^2+k=0 将S=jw代入上式,-jw^3-w^2+k=0 实部方程k-w^2=0 虚部方程w^3=0 解得 w=0 k=0 交点确实是原点

已知某控制系统开环传递函数为:
10*log10(a)=-6;新的开环截止频率wc=4.4;则a=4;T=1\/(sqrt(a)*wc)=0.114;a*T=0.456;Gc(s)=(1+a*T*s)\/(1+T*s)=(1+0.456*s)\/(1+0.114*s)校正后 Gp(s)=(10*(1+0.456*s)) \/ (s*(1+0.114*s)*(1+s))验证... r=180°-90°+arctan(0.456*4.4)...

自动控制原理的题,简化下面的方框图求出传递函数C(s)\/R(s)和C(s)\/...
就这样

从传递函数如何知道系统是可控客观的
从传递函数知道系统是可控客观的原因是因为给的传递函数. 如果传递函数有零极点对消时,那系统状态一定是或者不可控,或者不可观,。

某广义被控过程传递函数为G(s)=21\/[(s+1)(2s+1)(5s+1)(10s+1)],要求...
不难,如果你的输入是单位阶跃的话,那么K=21(稳态值和输入信号幅值之比),T就是上升到稳态值63.2%的时间,你自己从图上看,滔我记得就是T,好像概念是一样的(也可能是我记错了)第二步的话,先要接一个单位负反馈,让系统闭环。然后再对象前面加一个比例环节,调节比例系数,直到系统输出是等幅...

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

花溪区15087288453: 怎么用matlab把传递函数转成差分方程
巨石菲悦: 1、c2d:假设在输入端有一个零阶保持器,把连续时间的状态空间模型转到离散时间状态空间模型. [SYSD,G]=C2D(SYSC,Ts,METHOD)里面的method包括: zoh 零阶保持, 假设控制输入在采样周期内为常值,为默认值. foh 一阶保持器,假...

花溪区15087288453: 使用matlab进行控制系统的仿真,在被控对象的建立方面卡住了,寻求帮助! -
巨石菲悦: 直接用simulink,有多种方式建模:1、如果模型方程是传递函数的形式,就直接使用传递函数模块(Tansfer Fcn);2、如果是状态空间方程,则直接使用状态空间方程模块(State-Space);3、如果是一般非线性方程,使用User-Defined Function中的MATLAB Fcn或者S-Function

花溪区15087288453: 如何确定PID控制器的输入和输出 -
巨石菲悦: 输入: 被控对象的量测(被控制量)值 -- PV,也称为过程值;一般从测量单元来. 被控对象的设定值 -- SP或SV,也称为设定值;一般从操作单元来. 输出: PID控制器的输出值 -- CO或CV或MV,也称为PID输出值;一般输出到手操器或输出卡件.

花溪区15087288453: 求PID参数整定 -
巨石菲悦: PID控制器的参数整定是控制系统设计的核心内容.它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小.PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法.它主要是依据系统的数学模型,...

花溪区15087288453: (T1S+1)/(T2S+1)的仿真模块怎么输入 -
巨石菲悦: 您好,这样的: disp('若被控对象的传递函数为G=k/(T1S+1)(T2S+1)(T3S+1)'); disp('请输入'); k=input('k=');T1=input('T1=');T2=input('T2=');T3=input('T3='); T=max([T1 T2 T3]);

花溪区15087288453: 用matlab串联校正设计 -
巨石菲悦: matlab是一款很好的软件.我大学学的测试控制,这个题目是上的吧.matlab有专门的一门课.这样的题目在大学做过.我现在也能做.但是不能直接把答案给你.强烈建议你好好学习一下MATLAB以后工作中你要是从事的是电子方面的会很有用.学好了终身受用呢.自己去好好研究下吧.

花溪区15087288453: PID控制器具体工作原理 -
巨石菲悦: 这些都是自动控制系统所涉及的概念. 1、首先说明,PID调节单元接收与输出的都是电信号; 2、自动控制技术,综合了【给定单元】、【调节单元】、【输出与执行单元】、【测量单元】、【反馈单元】等,基本原理是:给定单元提供设定...

花溪区15087288453: 对某一控制系统进行PID控制,PID的参数怎么求得使系统稳定.传递函数以及仿真框图在图中,望大神赐教. -
巨石菲悦: 1. PID 控制系统原理及算法 当我们不能将被控对象的结构和参数完全地掌握,或者是不能得到精确的数学模型时,在这种情况下最便捷的方法便是采用PID 控制技术.为了使控制系统满足性能指标要求,PID 控制器一般地是依据设定值与实际...

花溪区15087288453: matlab如何用S函数写传递函数 -
巨石菲悦: 用符号函数写

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