- %*****************控制系统ITAE性能计算*****************%
- function [Ts,CT,Ess,ITAE]=analysis(y,r,t)
- mp=max(y);
- tp=spline(y,t,mp); %峰值时间
- cs=length(t);
- yss=y(cs); %稳态值
- CT=(mp-yss)/yss; %超调量
- i=length(t);
- while(y(i)>0.98*yss)&(y(i)<1.02*yss)
- i=i-1;
- end
- Ts=t(i); %调节时间
- %稳态误差
- Ess=abs(r(length(t))-yss);
- e=0;
- dt=0.01;
- ITAE=0;
- for j=1:length(t)
- tdt=t(j)*dt;
- e=y(j)-r(j);
- ITAE=ITAE+abs(e)*tdt; %ITAE指标计算
- end
- ITAE=roundn(ITAE,-4);
- %************构造评价矩阵**************%
- function [R1,R2]=evaluate()
- % 参数初始化
- inputfile = 'C:\Users\beartree\Desktop\GUI\ITAEsample.xls';
- %% 读取数据并进行fcm计算
- [num,txt]=xlsread(inputfile);
- for i=1:11
- data(:,1)=num(:,(2*i-1));
- data(:,2)=num(:,(2*i));
- options=[2;100;1e-5;1];
- [center,U,obj_fcn]=fcm(data,3,options);
- %%结果处理
- maxC=min(center(:,2));
- minC=max(center(:,2));
- stab=find(center(:,2)==maxC);
- lose=find(center(:,2)==minC);
- for k=1:3
- if k~=stab && k~=lose
- wave=k;
- end
- end
- R(i,1)=U(stab,1);
- R(i,2)=U(wave,1);
- R(i,3)=U(lose,1);
- end
- %%输出结果
- for j=1:11
- fprintf('评价指标参数C%d对应稳定、波动、失控状态隶属度分别为:',j);
- fprintf('%1.4f,%1.4f,%1.4f \n',R(j,1),R(j,2),R(j,3));
- end
- fprintf('评价矩阵为:\n');
- R1=R(1:7,:);
- R2=R(8:11,:);
- clc;
- %*************模糊综合合成*****************%
- function [S1,S2,S]=AHPFCE()
- W1=[0.4614 0.0973 0.0801 0.0818 0.1297 0.0901 0.0595];
- W2=[0.1915 0.5495 0.0081 0.1408];
- W=[0.55 0.45];
- [R1,R2]=evaluate();
- S1=W1*R1;
- S2=W2*R2;
- R=[S1;S2];
- S=W*R;