模糊PID控制器的MATLAB仿真程序

模糊PID控制器的MATLAB仿真程序,第1张

给你一个全MATLAB仿真的程序,没用到SIMULINK

close all

clear all

a=newfis('fuzzf');

f1=1;

a=addvar(a,'input','e',[-3f1,3f1]);

a=addmf(a,'input',1,'NB','zmf',[-3f1,-1f1]);

a=addmf(a,'input',1,'NM','trimf',[-3f1,-2f1,0]);

a=addmf(a,'input',1,'NS','trimf',[-3f1,-1f1,1f1]);

a=addmf(a,'input',1,'Z','trimf',[-2f1,0,2f1]);

a=addmf(a,'input',1,'PS','trimf',[-1f1,1f1,3f1]);

a=addmf(a,'input',1,'PM','trimf',[0,2f1,3f1]);

a=addmf(a,'input',1,'PB','smf',[1f1,3f1]);

f2=1;

a=addvar(a,'input','ec',[-3f2,3f2]);

a=addmf(a,'input',2,'NB','zmf',[-3f2,-1f2]);

a=addmf(a,'input',2,'NM','trimf',[-3f2,-2f2,0]);

a=addmf(a,'input',2,'NS','trimf',[-3f2,-1f2,1f2]);

a=addmf(a,'input',2,'Z','trimf',[-2f2,0,2f2]);

a=addmf(a,'input',2,'PS','trimf',[-1f2,1f2,3f2]);

a=addmf(a,'input',2,'PM','trimf',[0,2f2,3f2]);

a=addmf(a,'input',2,'PB','smf',[1f2,3f2]);

f3=15;

a=addvar(a,'output','u',[-3f3,3f3]);

a=addmf(a,'output',1,'NB','zmf',[-3f3,-1f3]);

a=addmf(a,'output',1,'NM','trimf',[-3f3,-2f3,0]);

a=addmf(a,'output',1,'NS','trimf',[-3f3,-1f3,1f3]);

a=addmf(a,'output',1,'Z','trimf',[-2f3,0,2f3]);

a=addmf(a,'output',1,'PS','trimf',[-1f3,1f3,3f3]);

a=addmf(a,'output',1,'PM','trimf',[0,2f3,3f3]);

a=addmf(a,'output',1,'PB','smf',[1f3,3f3]);

rulelist=[1 1 1 1 1;

1 2 1 1 1;

1 3 2 1 1;

1 4 2 1 1;

1 5 3 1 1;

1 6 3 1 1;

1 7 4 1 1;

2 1 1 1 1;

2 2 2 1 1;

2 3 2 1 1;

2 4 3 1 1;

2 5 3 1 1;

2 6 4 1 1;

2 7 5 1 1;

3 1 2 1 1;

3 2 2 1 1;

3 3 3 1 1;

3 4 3 1 1;

3 5 4 1 1;

3 6 5 1 1;

3 7 5 1 1;

4 1 2 1 1;

4 2 3 1 1;

4 3 3 1 1;

4 4 4 1 1;

4 5 5 1 1;

4 6 5 1 1;

4 7 6 1 1;

5 1 3 1 1;

5 2 3 1 1;

5 3 4 1 1;

5 4 5 1 1;

5 5 5 1 1;

5 6 6 1 1;

5 7 6 1 1;

6 1 3 1 1;

6 2 4 1 1;

6 3 5 1 1;

6 4 5 1 1;

6 5 6 1 1;

6 6 6 1 1;

6 7 7 1 1;

7 1 4 1 1;

7 2 5 1 1;

7 3 5 1 1;

7 4 6 1 1;

7 5 6 1 1;

7 6 7 1 1;

7 7 7 1 1];

a=addrule(a,rulelist);

a1=setfis(a,'DefuzzMethod','mom');%Defuzzy

writefis(a1,'fuzzf');

a2=readfis('fuzzf');

Ulist=zeros(7,7);

for i=1:7

for j=1:7

e(i)=-4+i;

ec(j)=-4+j;

Ulist(i,j)=evalfis([e(i),ec(j)],a2);

end

end

figure(1);

plotfis(a2);

figure(2);

plotmf(a,'input',1);

figure(3);

plotmf(a,'input',2);

figure(4);

plotmf(a,'output',1);

这里简单说明一下:首先是编写2个输入,1个输出的隶属度函数;接下来的是模糊规则,一共49条;然后用解模糊函数得出控制量U,这里输出的U就直接是精确量了,解模糊用到得规则是取隶属度最大的那个数即MOM算法。

显示的三个图形窗口分别是:模糊控制器内部原理图,以及2个输入,1个输出的隶属度函数图。

你说的是模糊控制规则表吧,现在模糊PID的规则表已经算是定下来了,很多人都做过,在网上你可以搜索“模糊PID控制”,相关的论文里关于模糊PID控制的规则表很多,如果你找不到,给我发邮件吧

08121795@bjtueducn

一般选择模糊论域中所含元素个数为模糊语言词集总数的二倍以上,确保模糊集能较好的覆盖论域,避免出现失控现象,

隶属度

为了实现模糊化,要在上述离散化了的精确量与表示模糊语言的模糊量之间建立关系,即确定论域中的每个元素对于各个模糊语言变量的隶属度。

隶属度是描述某个确定量隶属于某个模糊语言变量的程度。常用的确定模糊变量隶属度的赋值表见下表

建立模糊控制规则

下面推荐一种根据系统输出的误差及误差的变化趋势,消除误差的模糊控制规则,该规则用下述21条模糊条件语句来描述,基本总结了众多的被控对象手动 *** 作过程,各种可能出现的情况和相应的控制策略。

上述的21条模糊条件语句可以归纳为模糊控制规则表

模糊关系与模糊推理

模糊控制规则实际上是一组多重条件语句,可以表示为从误差论域到控制量论域的模糊关系矩阵R,通过误差的模糊向量E和误差变化的模糊向量EC与模糊关系R的合成进行模糊推理,得到控制量的模糊向量,然后采用清晰化方法将模糊控制向量转换为精确量。

根据模糊集合和模糊关系理论,对于不同类型的模糊规则可用不同的模糊推理方法,下面以常用的if A then B类型的模糊规则的推理为例,若已知输入为A,则输出为B,若现在已知输入为A’,则输出B’用合成规则求取

B’=A’OR

其中模糊关系R定义为

由于系统的控制规则库是由若干条规则组成的,对于每一条推理规则都可以得到一个相应的模糊关系,n条规则就有n个模糊关系,R1,R2,…,Rn,对于整个系统的全部控制规则所对应的模糊关系及可对n个模糊关系Ri(i=1,2,…n)取并 *** 作得到

你查的血是数字还是血条?数字好说,比如开始100血,这时候ec搜索100,然后掉一点血到90,ec再搜索90,再掉血再搜,搜几次就能搜到血的地址,如果有好几个地址,一个一个试试就知道了。

如果是血条,没有数字,那就用ec的模糊搜索,满血时点击ec搜索按钮(望远镜)边上的箭头,选择问号,也可以在查找目标栏里直接输入问号,这时会出现10240个地址,查几次等号会减少一些没用的地址。然后掉一点血,到ec查叹号,地址会减少很多,反复这样查几次,顺利的话最终能得到一个地址,那这就是血的地址。如果剩几个十几个地址再也搜不下去,就一个一个试试,总有正确的地址在里面。

总之搜索就是靠数据的变化来搜的,活用问号叹号,其实也没那么难。

这么高级的EC肯定带程序,不同的是有些是Maskrom,有的是Falshrom,这个应该就是同一种EC不同后缀的原因,由此可见同一型号的EC所带程序都是通用程序,可以互换。PCH架构中由于EC自身容量限制及功能配置方面的原因,需要外部扩展ROM,这个ROM也就是ECROM,不能严格上称呼为EC BIOS。系统下升级的还是HMXX所挂的BIOS芯片。对于H8芯片,由于全新的芯片自身不带程序(程序一般由芯片生产厂家掩模或者主板制造工厂自己写)而不能触发开机,比喻IBM系列。要么购买拆机芯片或者料板,不然就只能眼睁睁的看着白花花的银子溜走了。PCH架构中BIOS芯片无待机电压的一般不参与触发,EC自身所带程序已经配置好GPIO且完全足够触发开机的各种功能状态,按下开关后才产生供电电压应该也和节能有一定关系!以上为个人见解,有不妥之处希望能批评指正!

显示EC代码是表示洗衣机出现模糊电机无反馈故障。解决方法:更换电机驱动电路上的双向可控硅短路性或者晶体管。检查洗衣机电机的接插件,避免器产生松动或元件虚焊的现象,如有就更换掉。检查洗衣机电脑板是否出现损坏,如有就进行维修或更换。

/

我们在使用洗衣机时其实还是有不少需要注意的地方,否则时间长了就会对洗衣机造成不可逆的伤害,接下来就给大家总结了几点,一起来看一看:

1、洗衣机安全使用的额定电压为220V、50Hz,超过此范围就容易让电机损坏。

2、洗衣机插座最好是单独的,不要和其他电器共用,以免发生过流过载现象,造成火灾隐患。

3、第一次使用洗衣机时,先检查洗衣机的电源是否安全接地线,否则可能发生触电事故。

4、凡是沾有易燃溶剂(如汽油、有机溶剂等)的衣物,一定不能放到洗衣机里。

5、在使用洗衣机时,不要在洗衣机周围放置或使用可燃性化学溶剂,如喷雾剂、涂料、汽油等。

6、不要将50度以上的热水直接倒入洗衣机内,以免洗衣桶和防水密封圈老化变形。

7、洗衣机脱水未完全停止旋转时,不要强行打开机门或机盖,以免发生危险。

8、当洗衣机处于不常用的状态时,必须将电源插头拔下,以免使洗衣机长期处于待机状态,造成发热,存在故障隐患。

9、在清洗洗衣机时,不要直接用水冲洗,特别是控制面板和洗衣机底部的电气部分。

以上就是关于模糊PID控制器的MATLAB仿真程序全部的内容,包括:模糊PID控制器的MATLAB仿真程序、请教怎样建立模糊控制查询表现在在做一个模糊PID控制系统仿真,现在输入E、EC,输出U隶属度函数有了,控、模糊语言变量如何设置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10126863.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存