matlab evalfis函数,evalfis函数怎么用

本文介绍了MATLAB中evalfis函数在模糊控制中的使用方法,通过建立二阶系统模型,展示了如何定义输入输出变量的隶属度函数,并利用evalfis进行模糊推理,最终得到控制输入并实现系统仿真。示例代码详细解释了每个步骤,包括模糊规则的创建和误差处理。
摘要由CSDN通过智能技术生成

匿名用户

1级

2018-11-14 回答

evalfis函数,模糊控制

%被控系统建模

num=20;

den=[1.6,4.4,1];

[a1,b,c,d]=tf2ss(num,den);

x=[0;0];

%

T=0.01;

h=T;

N=250;

R=1.5*ones(1,N);%参考输入

%定义输入和输出变量及隶属度函数

a=newfis('simple');

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

a=addmf(a,'input',1,'NB','trapmf',[-6,-6,-5,-3]);

a=addmf(a,'input',1,'NS','trapmf',[-5,-3,-2,0]);

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

a=addmf(a,'input',1,'PS','trapmf',[0,2,3,5]);

a=addmf(a,'input',1,'PB','trapmf',[3,5,6,6]);

%

a=addvar(a,'input','de',[-6 6]);

a=addmf(a,'input',2,'

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matlab的倒立摆控制-chap3_9.m 程序代码 %Sugeno type fuzzy control for single inverted pendulum close all; P=[-10-10i;-10 10i];     %Stable pole point F1=place F2=place F3=place F4=place F5=place %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% tc=newfis; tc=addvar; tc=addmf; tc=addmf; tc=addmf; tc=addvar; tc=addmf; tc=addmf; tc=addmf; tc=addvar; tc=addmf,F1]); tc=addmf,F2]); tc=addmf,F3]); tc=addmf,F4]); tc=addmf,F5]); rulelist=[1 1 4 1 1;           1 2 3 1 1;           1 3 5 1 1;           2 1 2 1 1;           2 2 1 1 1;           3 1 5 1 1;           3 2 3 1 1;           3 3 4 1 1]; tc=addrule; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% model=newfis; model=addvar; model=addmf; model=addmf; model=addmf; model=addvar; model=addmf; model=addmf; model=addmf; model=addvar; model=addmf; model=addvar; model=addmf; model=addmf; model=addmf; model=addmf; model=addmf; model=addvar; model=addmf,0,B1,0]); model=addmf,0,B2,0]); model=addmf,0,B3,0]); model=addmf,A4,B4,0]); model=addmf,A5,B5,0]); rulelist1=[1 1 0 4 4 1 1;            1 2 0 3 3 1 1;            1 3 0 5 5 1 1;            2 1 0 2 2 1 1;            2 2 0 1 1 1 1;            2 3 0 2 2 1 1;            3 1 0 5 5 1 1;            3 2 0 3 3 1 1;            3 3 0 4 4 1 1]; model=addrule; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ts=0.020; x=[0.20;0];  %Initial state for k=1:1:100    time=k*ts;    u=*evalfis,x],tc);   %Using feedback control        k0=evalfis,x,u],model)'; %Using fuzzy T-S model    x=x ts*k0;        y1=x;    y2=x; end figure; subplot; plot,grid on; xlabel'),ylabel; subplot; plot,grid on; xlabel'),ylabel; figure; plot,grid on; xlabel'),ylabel; figure; plotmf; figure; plotmf; showrule; showrule; 复制代码
MATLAB中,evalfis函数用于模糊推理,其中evalfis函数使用FIS(模糊推理系统)结构体和输入值来计算输出值的函数。该函数的语法如下: ``` output = evalfis(input, fis) ``` 其中,input是输入变量的值,fis是模糊推理系统的FIS结构体,output是输出变量的计算值。evalfis函数的工作原理是将输入变量的值传递给模糊推理系统,系统根据规则库和模糊推理算法计算输出变量的值,并返回输出变量的计算值。注意,这个函数的输入和输出都是标量或向量。 例如,以下代码演示了如何使用evalfis函数将一个输入向量传递给模糊推理系统,计算输出向量: ``` % 创建一个FIS结构体 fis = newfis('tipper'); % 添加输入变量和它们的隶属度函数 fis = addvar(fis, 'input', 'service', [0 10]); fis = addmf(fis, 'input', 1, 'poor', 'trimf', [0 0 5]); fis = addmf(fis, 'input', 1, 'good', 'trimf', [0 5 10]); fis = addmf(fis, 'input', 1, 'excellent', 'trimf', [5 10 10]); fis = addvar(fis, 'input', 'food', [0 10]); fis = addmf(fis, 'input', 2, 'rancid', 'trapmf', [0 0 1 3]); fis = addmf(fis, 'input', 2, 'delicious', 'trapmf', [7 9 10 10]); % 添加输出变量和它们的隶属度函数 fis = addvar(fis, 'output', 'tip', [0 30]); fis = addmf(fis, 'output', 1, 'cheap', 'trimf', [0 0 15]); fis = addmf(fis, 'output', 1, 'average', 'trimf', [0 15 30]); fis = addmf(fis, 'output', 1, 'generous', 'trimf', [15 30 30]); % 添加规则 ruleList = [1 1 1 2 1; 2 2 1 1 1; 3 3 1 3 1; 1 2 2 1 1; 2 3 2 2 1; 3 1 2 3 1; 1 3 3 2 1; 2 1 3 1 1; 3 2 3 3 1]; fis = addrule(fis, ruleList); % 计算输出 input = [5 8]; output = evalfis(input, fis); ``` 在这个例子中,我们创建了一个FIS结构体,添加了输入变量和它们的隶属度函数,添加了输出变量和它们的隶属度函数,然后添加了规则。最后,我们使用evalfis函数将输入向量(服务值为5,食品值为8)传递给模糊推理系统,并得到输出向量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值