⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hll.m

📁 这是一个研究生课程的matlab课件
💻 M
字号:
MAXGEN=10;     %代数
NIND=50;       %个体数
NVAR=1;        %变量个数
PRECI=10;      %变量精度
chrom=crtbp(NIND,NVAR*PRECI);
%FieldD=[rep([10],[1,1]);rep([0;1023],[1,1]);rep([0;0;1;1],[1,1])];
FieldD=[10;0;1;0;0;1;1]
phen=bs2rv(chrom,FieldD);
for i=1:1:NIND
    x(i,1)=1*(phen(i,1)/1023)+0.3;
    x1=x(i,1);
A1=[-0.2 0 0 0 0 0 0 -4;
    4.75 -5 0 0 0 0 0 0;
    0 0.16667 -0.16667 0 0 0 0 0;
    0 0 2 -2 0 0 0 0;
    0 -0.08 -0.0747 -0.112 -3.994 10 -0.928 -9.1011;
    0 0 0 0 0.2 -0.5 0 0;
    0 0 0 0 1.3194 0 -1.3889 -0.2778;
    0 0.01 0.0093 0.014 -0.0632 0 0.116 -0.1124];
A2=[-0.2 0 0 0 0 0 0 -4;
    4.75 -5 0 0 0 0 0 0;
    0 0.16667 -0.16667 0 0 0 0 0;
    0 0 2 -2 0 0 0 0;
    0 -0.1 -0.0933 -0.14 -4.096 10 -0.7442 -9.1079;
    0 0 0 0 0.2 -0.5 0 0;
    0 0 0 0 1.3194 0 -1.3889 -0.2778;
    0 0.0125 0.0117 0.0175 -0.0506 0 0.0928 -0.1115];
at1=[0 0 0 0 0.6667 0 0 -0.0833]';at2=at1;
d1=[0 0 0 0 0 0 0 10]';d2=d1;
m12=[0 0 0 0 0 0 0 22.2144]';m21=m12;
b1=[1.6 0 0 0 6 0 0 0]';
b2=[2 0 0 0 5 0 0 0]';
f1=at1;f2=at1;A12=[at1;1];A22=0;A32=[-1;-at2];C22=1;A21=[m12' 0];A23=[0 -m21'];
A=[A1 zeros(8,1) at1 zeros(8,9);d1' 0 1 0 zeros(1,8);m12' 0 0 0 -m12';zeros(1,8) 0 -1 0 d2';zeros(8,9) -at2 zeros(8,1) A2];
F=[f1 zeros(8,1);zeros(3,2);zeros(8,1) f2];
B=[b1 zeros(8,1);0 0;0 0;0 0;zeros(8,1) b2];
c1=[0 0.3 0.28 0.42 0 0 0 0;0 0 0 0 -1.52 0 2.78 0.217;0 0 0 0 0 0 0 1];c2=c1;
C=[c1 zeros(3,11); zeros(1,8) 1 0 0 zeros(1,8); zeros(1,9) 1 0 zeros(1,8); zeros(1,10) 1 zeros(1,8);zeros(3,11) c2];
D=zeros(9,2);
q=4;
Wq=[zeros(7,19);zeros(1,7)  q  zeros(1,11);zeros(1,8)  q  zeros(1,10); zeros(1,9)  q  zeros(1,9);zeros(1,10)  q  zeros(1,8);zeros(7,19);zeros(1,18) q];
Wr=[1 0;0 1];
%The system is expanded based on the inclusion principle.
V=[eye(9) zeros(9,10);zeros(1,9) 1 zeros(1,9);zeros(1,9) 1 zeros(1,9);zeros(9,10) eye(9)];
U=[eye(9) zeros(9,11);zeros(1,9) x1  1-x1 zeros(1,9);zeros(9,11) eye(9)];
Ma=[zeros(9,9) zeros(9,1) zeros(9,1) zeros(9,9);zeros(1,9) (1-x1)*A22 -(1-x1)*A22 zeros(1,9);zeros(1,9) x1*A22 -x1*A22 zeros(1,9);zeros(9,9) zeros(9,1) zeros(9,1) zeros(9,9)];
Mc=[zeros(4,20);zeros(1,9) (1-x1)*C22  -(1-x1)*C22 zeros(1,9);zeros(1,9) -x1*C22 x1*C22 zeros(1,9);zeros(4,20)];
T=[eye(4) zeros(4,5);zeros(1,4) 1 zeros(1,4);zeros(1,4) 1 zeros(1,4);zeros(4,5) eye(4)];
S=[eye(4) zeros(4,6);zeros(1,4) x1 1-x1 zeros(1,4);zeros(4,6) eye(4)];Q=eye(2);
Ak=V*A*U+Ma;Bk=V*B*Q;Ck=T*C*U+Mc;Wqk=V*Wq*U;Wrk=Wr;
Ak1=Ak(1:10,1:10);Ak2=Ak(11:20,11:20);
Bk1=Bk(1:10,1);Bk2=Bk(11:20,2);
Wqk1=Wqk(1:10,1:10);Wqk2=Wqk(11:20,11:20);
Wrk1=1;Wrk2=1;
[K1,P1,E1]=lqr(Ak1,Bk1,Wqk1,Wrk1);
[K2,P2,E2]=lqr(Ak2,Bk2,Wqk2,Wrk2);
Kk=[K1 zeros(1,10);zeros(1,10) K2];
K1=Q*Kk*V;
AA=(A-B*K1)';
BB=A-B*K1;
C=K1'*Wr*K1+Wq;
H=LYAP(AA,BB,C);
J(i,1)=abs(trace(H));  
 end
Objv=J;
x
gen=0;
while gen<MAXGEN;
  FitnV=ranking(Objv);
  Selch=Select('sus',chrom,FitnV);
  Selch=recombin('xovsp',Selch,0.8);
  Selch=mut(Selch,0.001);
  
  for i=1:1:NIND
      x(i,1)=1*(phen(i,1)/1023)+0.3;
      x1=x(i,1);
A1=[-0.2 0 0 0 0 0 0 -4;
    4.75 -5 0 0 0 0 0 0;
    0 0.16667 -0.16667 0 0 0 0 0;
    0 0 2 -2 0 0 0 0;
    0 -0.08 -0.0747 -0.112 -3.994 10 -0.928 -9.1011;
    0 0 0 0 0.2 -0.5 0 0;
    0 0 0 0 1.3194 0 -1.3889 -0.2778;
    0 0.01 0.0093 0.014 -0.0632 0 0.116 -0.1124];
A2=[-0.2 0 0 0 0 0 0 -4;
    4.75 -5 0 0 0 0 0 0;
    0 0.16667 -0.16667 0 0 0 0 0;
    0 0 2 -2 0 0 0 0;
    0 -0.1 -0.0933 -0.14 -4.096 10 -0.7442 -9.1079;
    0 0 0 0 0.2 -0.5 0 0;
    0 0 0 0 1.3194 0 -1.3889 -0.2778;
    0 0.0125 0.0117 0.0175 -0.0506 0 0.0928 -0.1115];
at1=[0 0 0 0 0.6667 0 0 -0.0833]';at2=at1;
d1=[0 0 0 0 0 0 0 10]';d2=d1;
m12=[0 0 0 0 0 0 0 22.2144]';m21=m12;
b1=[1.6 0 0 0 6 0 0 0]';
b2=[2 0 0 0 5 0 0 0]';
f1=at1;f2=at1;A12=[at1;1];A22=0;A32=[-1;-at2];C22=1;A21=[m12' 0];A23=[0 -m21'];
A=[A1 zeros(8,1) at1 zeros(8,9);d1' 0 1 0 zeros(1,8);m12' 0 0 0 -m12';zeros(1,8) 0 -1 0 d2';
    zeros(8,9) -at2 zeros(8,1) A2];
F=[f1 zeros(8,1);zeros(3,2);zeros(8,1) f2];
B=[b1 zeros(8,1);0 0;0 0;0 0;zeros(8,1) b2];
c1=[0 0.3 0.28 0.42 0 0 0 0;0 0 0 0 -1.52 0 2.78 0.217;0 0 0 0 0 0 0 1];c2=c1;
C=[c1 zeros(3,11);zeros(1,8) 1 0 0 zeros(1,8); zeros(1,9)  1  0  zeros(1,8);zeros(1,10) 1 zeros(1,8);zeros(3,11) c2];
D=zeros(9,2);
q=4;b=0.5;
Wq=[zeros(7,19);zeros(1,7)  q  zeros(1,11);zeros(1,8)  q  zeros(1,10); zeros(1,9)  q  zeros(1,9);zeros(1,10)  q  zeros(1,8);zeros(7,19);zeros(1,18) q];
Wr=[1 0;0 1];
%The system is expanded based on the inclusion principle.
V=[eye(9) zeros(9,10);zeros(1,9) 1 zeros(1,9);zeros(1,9) 1 zeros(1,9);zeros(9,10) eye(9)];
U=[eye(9) zeros(9,11);zeros(1,9) x1 1-x1 zeros(1,9);zeros(9,11) eye(9)];
Ma=[zeros(9,9) zeros(9,1) zeros(9,1) zeros(9,9);zeros(1,9) (1-x1)*A22 -(1-x1)*A22 zeros(1,9);zeros(1,9) x1*A22 -x1*A22 zeros(1,9);zeros(9,9) zeros(9,1) zeros(9,1) zeros(9,9)];
Mc=[zeros(4,20);zeros(1,9) (1-x1)*C22  -(1-x1)*C22 zeros(1,9);zeros(1,9) -x1*C22 x1*C22 zeros(1,9);zeros(4,20)];
T=[eye(4) zeros(4,5);zeros(1,4) 1 zeros(1,4);zeros(1,4) 1 zeros(1,4);zeros(4,5) eye(4)];
S=[eye(4) zeros(4,6);zeros(1,4) x1 1-x1 zeros(1,4);zeros(4,6) eye(4)];Q=eye(2);
Ak=V*A*U+Ma;Bk=V*B*Q;Ck=T*C*U+Mc;Wqk=V*Wq*U;Wrk=Wr;
Ak1=Ak(1:10,1:10);Ak2=Ak(11:20,11:20);
Bk1=Bk(1:10,1);Bk2=Bk(11:20,2);
Wqk1=Wqk(1:10,1:10);Wqk2=Wqk(11:20,11:20);
Wrk1=1;Wrk2=1;
[K1,P1,E1]=lqr(Ak1,Bk1,Wqk1,Wrk1);
[K2,P2,E2]=lqr(Ak2,Bk2,Wqk2,Wrk2);
Kk=[K1 zeros(1,10);zeros(1,10) K2];
Ka=Q*Kk*V;
AAa=(A-B*Ka)';
BBa=A-B*Ka;
Ca=Ka'*Wr*Ka+Wq;
HH=LYAP(AAa,BBa,Ca);
for m=1:19
    if HH(m,m)>=0
     JJ(i,1)=abs(trace(HH));  
    else JJ(i,1)=1000000;
    end
end
end
Objvsel=JJ;
  [chrom,Objv]=reins(chrom,Selch,1,1,Objv,Objvsel);
  gen=gen+1;
end
%x
JJ1 = min(Objv)
for ttt=1:1:size(Objv)
   if Objv(ttt)<=JJ1
      T11=ttt;break;
   end
end
x1=x(T11,1)

t=0:0.01:60;i=length(t);
w1=1*ones(1,i);w2=1*ones(1,i);w=[w1;w2];
sys0=ss(A-B*Ka,F,C,D);
[y0,Ts0,x0]=lsim(sys0,w,t);
%没有对M阵进行寻优的情况:

A1=[-0.2 0 0 0 0 0 0 -4;
    4.75 -5 0 0 0 0 0 0;
    0 0.16667 -0.16667 0 0 0 0 0;
    0 0 2 -2 0 0 0 0;
    0 -0.08 -0.0747 -0.112 -3.994 10 -0.928 -9.1011;
    0 0 0 0 0.2 -0.5 0 0;
    0 0 0 0 1.3194 0 -1.3889 -0.2778;
    0 0.01 0.0093 0.014 -0.0632 0 0.116 -0.1124];
A2=[-0.2 0 0 0 0 0 0 -4;
    4.75 -5 0 0 0 0 0 0;
    0 0.16667 -0.16667 0 0 0 0 0;
    0 0 2 -2 0 0 0 0;
    0 -0.1 -0.0933 -0.14 -4.096 10 -0.7442 -9.1079;
    0 0 0 0 0.2 -0.5 0 0;
    0 0 0 0 1.3194 0 -1.3889 -0.2778;
    0 0.0125 0.0117 0.0175 -0.0506 0 0.0928 -0.1115];
at1=[0 0 0 0 0.6667 0 0 -0.0833]';at2=at1;
d1=[0 0 0 0 0 0 0 10]';d2=d1;
m12=[0 0 0 0 0 0 0 22.2144]';m21=m12;
b1=[1.6 0 0 0 6 0 0 0]';
b2=[2 0 0 0 5 0 0 0]';
f1=at1;f2=at1;A12=[at1;1];A22=0;A32=[-1;-at2];C22=1;
A=[A1 zeros(8,1) at1 zeros(8,9);d1' 0 1 0 zeros(1,8);m12' 0 0 0 -m12';zeros(1,8) 0 -1 0 d2';zeros(8,9) -at2 zeros(8,1) A2];
F=[f1 zeros(8,1);zeros(3,2);zeros(8,1) f2];
B=[b1 zeros(8,1);0 0;0 0;0 0;zeros(8,1) b2];
c1=[0 0.3 0.28 0.42 0 0 0 0;0 0 0 0 -1.52 0 2.78 0.217;0 0 0 0 0 0 0 1];c2=c1;
C=[c1 zeros(3,11);zeros(1,8) 1 0 0 zeros(1,8); zeros(1,9)  1  0  zeros(1,8);zeros(1,10) 1 zeros(1,8);zeros(3,11) c2];
D=zeros(19,2);
q=4;
Wq=[zeros(7,19);zeros(1,7)  q  zeros(1,11);zeros(1,8)  q  zeros(1,10); zeros(1,9)  q  zeros(1,9);zeros(1,10)  q  zeros(1,8);zeros(7,19);zeros(1,18) q];
Wr=[1 0;0 1];
%The system is expanded based on the inclusion principle.
V=[eye(9) zeros(9,10);zeros(1,9) 1 zeros(1,9);zeros(1,9) 1 zeros(1,9);zeros(9,10) eye(9)];
b=0.5;
U=[eye(9) zeros(9,11);zeros(1,9)  b  1-b zeros(1,9);zeros(9,11) eye(9)];
Ma=[zeros(9,9) zeros(9,1) zeros(9,1) zeros(9,9);zeros(1,9) (1-b)*A22 -(1-b)*A22 zeros(1,9);zeros(1,9) b*A22 -b*A22 zeros(1,9);zeros(9,9) zeros(9,1) zeros(9,1) zeros(9,9)];
Mc=[zeros(4,20);zeros(1,9)  (1-b)*C22  -(1-b)*C22 zeros(1,9);  zeros(1,9) -b*C22 b*C22 zeros(1,9);zeros(4,20)];
T=[eye(4) zeros(4,5);zeros(1,4) 1 zeros(1,4); zeros(1,4) 1 zeros(1,4);zeros(4,5) eye(4)];
S=[eye(4) zeros(4,6);zeros(1,4) b 1-b zeros(1,4);zeros(4,6) eye(4)];
Q=eye(2);
Ak=V*A*U+Ma;
Bk=V*B*Q;
Ck=T*C*U+Mc;
Wqk=V*Wq*U;
Wrk=Wr;
Ak1=Ak(1:10,1:10);Ak2=Ak(11:20,11:20);
Bk1=Bk(1:10,1);Bk2=Bk(11:20,2);
Wqk1=Wqk(1:10,1:10);Wqk2=Wqk(11:20,11:20);
Wrk1=1;Wrk2=1;
[K1,P1,E1]=lqr(Ak1,Bk1,Wqk1,Wrk1);
[K2,P2,E2]=lqr(Ak2,Bk2,Wqk2,Wrk2);
Kk=[K1 zeros(1,10);zeros(1,10) K2];
eig(Ak-Bk*Kk);

K=Q*Kk*V;
AA=(A-B*K)';
BB=A-B*K;
C=K'*Wr*K+Wq;
H=LYAP(AA,BB,C);
J=abs(trace(H))

t=0:0.01:60;i=length(t);
w1=1*ones(1,i);w2=1*ones(1,i);w=[w1;w2];
sys00=ss(A-B*K,F,C,D);
[y00,Ts00,x00]=lsim(sys00,w,t);
subplot(221),plot(Ts0,x0(:,10),'m',Ts00,x00(:,10),':b'),
title('Pe'),xlabel('t/s');
subplot(222),plot(Ts0,x0(:,8),'m',Ts00,x00(:,8),':b'),
title('f1'),xlabel('t/s');
subplot(223),plot(Ts0,x0(:,19),'m',Ts00,x00(:,19),':b'),
title('f2'),xlabel('t/s');
%  subplot(221),plot(Ts0,x0(:,10),'b'),title('Pe'),xlabel('t/s');
%  subplot(222),plot(Ts0,x0(:,8),'b'),title('f1'),xlabel('t/s');
%  subplot(223),plot(Ts0,x0(:,19),'b'),title('f2'),xlabel('t/s');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -