?? optupfcconde2.m
字號:
hPp3=(cPp3*cAx5*cAD4+cPp3*cAx1*cEg4*cAD4+cPp4*cAy5*cAD4+cPp4*cAy1*cEg4*cAD4);
%*dr2
hPp4=(cPp3*cAx6+cPp3*cAx1*cEg5+cPp4*cAy1*cEg5+cPp4*cAy6);
%*da2
hPp5=(cPp4*cAy1*cEg1+cPp4*cAy2+cPp3*cAx2+cPp3*cAx1*cEg1);
%*daEq;
hPp6=(cPp1*cAD1+cPp3*cAx5*cAD2+cPp4*cAy5*cAD2+cPp3*cAx1*cEg2*cAD1+cPp3*cAx1*cEg4*cAD2...
+cPp4*cAy1*cEg4*cAD2+cPp4*cAy3*cAD1+cPp3*cAx3*cAD1+cPp4*cAy1*cEg2*cAD1);
%*dUC
hPs1=(cPs3*cAx3*cAD3+cPs4*cAy3*cAD3+cPs3*cAx1*cEg2*cAD3+cPs4*cAy1*cEg2*cAD3);
%*dr1
hPs2=(cPs4*cAy4+cPs4*cAy1*cEg3+cPs3*cAx4+cPs3*cAx1*cEg3);
%*da1
hPs3=(cPs3*cAx5*cAD4+cPs4*cAy1*cEg4*cAD4+cPs1*cAD4+cPs3*cAx1*cEg4*cAD4+cPs4*cAy5*cAD4);
%*dr2
hPs4=(cPs3*cAx6+cPs2+cPs4*cAy1*cEg5+cPs4*cAy6+cPs3*cAx1*cEg5);
%*da2
hPs5=(cPs3*cAx2+cPs4*cAy2+cPs4*cAy1*cEg1+cPs3*cAx1*cEg1);
%*daEq
hPs6=(cPs3*cAx1*cEg2*cAD1+cPs1*cAD2+cPs3*cAx5*cAD2+cPs4*cAy1*cEg2*cAD1+cPs3*cAx1*cEg4*cAD2...
+cPs4*cAy1*cEg4*cAD2+cPs4*cAy5*cAD2+cPs3*cAx3*cAD1+cPs4*cAy3*cAD1);
%*dUC
hPC1=hPp1+hPs1;hPC2=hPp2+hPs2;hPC3=hPp3+hPs3;hPC4=hPp4+hPs4;hPC5=hPp5+hPs5;hPC6=hPp6+hPs6;
save zyUPFCdata1_2 hPG1 hPG2 hPG3 hPG4 hPG5 hPG6 hPp1 hPp2 hPp3 hPp4 hPp5 hPp6...
hPs1 hPs2 hPs3 hPs4 hPs5 hPs6
hPl1=(cPl3*cIx1*cAy1*cEg2*cAD3+cPl4*cIy1*cAx3*cAD3+cPl1*cBx1*cIy1*cAx1*cEg2*cAD3+...
cPl2*cBy1*cIx1*cAy1*cEg2*cAD3+cPl2*cBy1*cIx1*cAy3*cAD3+cPl4*cIy1*cAx1*cEg2*cAD3+...
cPl1*cBx1*cIy1*cAx3*cAD3+cPl3*cIx1*cAy3*cAD3);
%*dr1
hPl2=(cPl4*cIy1*cAx4+cPl3*cIx1*cAy4+cPl3*cIx1*cAy1*cEg3+cPl2*cBy1*cIx1*cAy1*cEg3+...
cPl2*cBy1*cIx1*cAy4+cPl4*cIy1*cAx1*cEg3+cPl1*cBx1*cIy1*cAx1*cEg3+cPl1*cBx1*cIy1*cAx4);
%*da1
hPl3=(cPl4*cIy1*cAx1*cEg4*cAD4+cPl3*cIx1*cAy5*cAD4+cPl4*cIy1*cAx5*cAD4+cPl3*cIx1*cAy1*cEg4*cAD4+...
cPl2*cBy1*cIx1*cAy1*cEg4*cAD4+cPl3*cIx2*cAD4+cPl4*cIy2*cAD4+cPl1*cBx1*cIy1*cAx1*cEg4*cAD4+...
cPl1*cBx1*cIy1*cAx5*cAD4+cPl2*cBy1*cIx1*cAy5*cAD4+cPl1*cBx1*cIy2*cAD4+cPl2*cBy1*cIx2*cAD4);
%*dr2
hPl4=(cPl2*cBy1*cIx1*cAy1*cEg5+cPl4*cIy1*cAx1*cEg5+cPl3*cIx1*cAy1*cEg5+cPl4*cIy1*cAx6+...
cPl2*cBy1*cIx3+cPl3*cIx1*cAy6+cPl3*cIx3+cPl4*cIy3+cPl1*cBx1*cIy1*cAx1*cEg5+...
cPl1*cBx1*cIy1*cAx6+cPl2*cBy1*cIx1*cAy6+cPl1*cBx1*cIy3);
%*da2
hPl5=(cPl1*cBx1*cIy1*cAx1*cEg1+cPl2*cBy1*cIx1*cAy1*cEg1+cPl2*cBy1*cIx1*cAy2+cPl4*cIy1*cAx1*cEg1+...
cPl3*cIx1*cAy1*cEg1+cPl1*cBx1*cIy1*cAx2+cPl3*cIx1*cAy2+cPl4*cIy1*cAx2);
%*daEq
hPl6=(cPl2*cBy1*cIx1*cAy1*cEg2*cAD1+cPl2*cBy1*cIx2*cAD2+cPl2*cBy1*cIx1*cAy3*cAD1+...
cPl3*cIx1*cAy3*cAD1+cPl1*cBx1*cIy1*cAx1*cEg2*cAD1+cPl3*cIx1*cAy5*cAD2+cPl4*cIy1*cAx3*cAD1+...
cPl1*cBx1*cIy1*cAx1*cEg4*cAD2+cPl4*cIy2*cAD2+cPl4*cIy1*cAx5*cAD2+cPl2*cBy1*cIx1*cAy5*cAD2+...
cPl1*cBx1*cIy1*cAx3*cAD1+cPl4*cIy1*cAx1*cEg4*cAD2+cPl3*cIx2*cAD2+cPl1*cBx1*cIy1*cAx5*cAD2+...
cPl3*cIx1*cAy1*cEg2*cAD1+cPl2*cBy1*cIx1*cAy1*cEg4*cAD2+cPl1*cBx1*cIy2*cAD2+...
cPl3*cIx1*cAy1*cEg4*cAD2+cPl4*cIy1*cAx1*cEg2*cAD1);
%*dUC
hQl1=(cQl1*cBx1*cIy1*cAx1*cEg2*cAD3+cQl2*cBy1*cIx1*cAy3*cAD3+cQl1*cBx1*cIy1*cAx3*cAD3+...
cQl4*cIy1*cAx3*cAD3+cQl4*cIy1*cAx1*cEg2*cAD3+cQl3*cIx1*cAy1*cEg2*cAD3+cQl3*cIx1*cAy3*cAD3+...
cQl2*cBy1*cIx1*cAy1*cEg2*cAD3);
%*dr1
hQl2=(cQl1*cBx1*cIy1*cAx1*cEg3+cQl4*cIy1*cAx4+cQl2*cBy1*cIx1*cAy4+...
cQl1*cBx1*cIy1*cAx4+cQl2*cBy1*cIx1*cAy1*cEg3+cQl4*cIy1*cAx1*cEg3+cQl3*cIx1*cAy1*cEg3+...
cQl3*cIx1*cAy4);
%*da1
hQl3=(cQl2*cBy1*cIx1*cAy5*cAD4+cQl3*cIx1*cAy5*cAD4+cQl2*cBy1*cIx2*cAD4+cQl4*cIy2*cAD4+...
cQl1*cBx1*cIy1*cAx1*cEg4*cAD4+cQl4*cIy1*cAx5*cAD4+cQl3*cIx2*cAD4+cQl3*cIx1*cAy1*cEg4*cAD4+...
cQl1*cBx1*cIy1*cAx5*cAD4+cQl4*cIy1*cAx1*cEg4*cAD4+cQl1*cBx1*cIy2*cAD4+cQl2*cBy1*cIx1*cAy1*cEg4*cAD4);
%*dr2
hQl4=(cQl2*cBy1*cIx1*cAy1*cEg5+cQl2*cBy1*cIx1*cAy6+cQl3*cIx1*cAy6+cQl1*cBx1*cIy3+cQl2*cBy1*cIx3+...
cQl3*cIx3+cQl1*cBx1*cIy1*cAx1*cEg5+cQl4*cIy3+cQl3*cIx1*cAy1*cEg5+cQl1*cBx1*cIy1*cAx6+...
cQl4*cIy1*cAx6+cQl4*cIy1*cAx1*cEg5);
%*da2
hQl5=(cQl3*cIx1*cAy2+cQl2*cBy1*cIx1*cAy2+cQl3*cIx1*cAy1*cEg1+cQl1*cBx1*cIy1*cAx1*cEg1+...
cQl4*cIy1*cAx1*cEg1+cQl4*cIy1*cAx2+cQl2*cBy1*cIx1*cAy1*cEg1+cQl1*cBx1*cIy1*cAx2);
%*daEq
hQl6=(cQl3*cIx1*cAy5*cAD2+cQl4*cIy1*cAx5*cAD2+cQl4*cIy1*cAx3*cAD1+cQl3*cIx1*cAy1*cEg2*cAD1+...
cQl3*cIx2*cAD2+cQl1*cBx1*cIy1*cAx1*cEg4*cAD2+cQl1*cBx1*cIy1*cAx1*cEg2*cAD1+...
cQl3*cIx1*cAy1*cEg4*cAD2+cQl4*cIy1*cAx1*cEg2*cAD1+cQl1*cBx1*cIy1*cAx3*cAD1+...
cQl2*cBy1*cIx1*cAy1*cEg4*cAD2+cQl2*cBy1*cIx2*cAD2+cQl1*cBx1*cIy1*cAx5*cAD2+...
cQl4*cIy2*cAD2+cQl2*cBy1*cIx1*cAy3*cAD1+cQl2*cBy1*cIx1*cAy1*cEg2*cAD1+...
cQl4*cIy1*cAx1*cEg4*cAD2+cQl2*cBy1*cIx1*cAy5*cAD2+cQl3*cIx1*cAy3*cAD1+cQl1*cBx1*cIy2*cAD2);
%*dUC
hUA1=(cA2*cAy3*cAD3+cA1*cAx3*cAD3+cA2*cAy1*cEg2*cAD3+cA1*cAx1*cEg2*cAD3);
%*dr1
hUA2=(cA1*cAx4+cA2*cAy4+cA2*cAy1*cEg3+cA1*cAx1*cEg3);
%*da1
hUA3=(cA2*cAy5*cAD4+cA1*cAx1*cEg4*cAD4+cA1*cAx5*cAD4+cA2*cAy1*cEg4*cAD4);
%*dr2
hUA4=(cA2*cAy1*cEg5+cA1*cAx6+cA2*cAy6+cA1*cAx1*cEg5);
%*da2
hUA5=(cA1*cAx1*cEg1+cA1*cAx2+cA2*cAy1*cEg1+cA2*cAy2);
%*daEq
hUA6=(cA1*cAx1*cEg2*cAD1+cA2*cAy1*cEg2*cAD1+cA2*cAy3*cAD1+cA2*cAy5*cAD2+cA1*cAx3*cAD1+...
cA1*cAx1*cEg4*cAD2+cA1*cAx5*cAD2+cA2*cAy1*cEg4*cAD2);
%*dUC
%(3)系統狀態空間矩陣系數:
Hd1=SB*(hPp1+hPs1)/Cd/UCs;%*dr1
Hd2=SB*(hPp2+hPs2)/Cd/UCs;%*da1
Hd3=SB*(hPs3+hPp3)/Cd/UCs;%*dr2
Hd4=SB*(hPs4+hPp4)/Cd/UCs;%*da2
Hd5=SB*(hPp5+hPs5)/Cd/UCs;%*daEq
Hd6=SB*(hPp6+hPs6)/Cd/UCs;%*dUC
Hw1=-wN*hPG1/Tj;%*dr1
Hw2=-wN*hPG2/Tj;%*da1
Hw3=-wN*hPG3/Tj;%*dr2
Hw4=-wN*hPG4/Tj;%*da2
Hw5=-wN*hPG5/Tj;%*daEq
Hw6=-wN*hPG6/Tj;%*dUC
Hw7=-D/Tj;%*dw
% dr1 da1 dr2 da2 daEq dUC dw
Ab=[-1/Tr1 0 0 0 0 0 0; %Dr1
0 -1/Ta1 0 0 0 0 0; %Da1
0 0 -1/Tr2 0 0 0 0; %Dr2
0 0 0 -1/Ta2 0 0 0; %Da2
0 0 0 0 0 0 1; %DaEq
Hd1 Hd2 Hd3 Hd4 Hd5 Hd6 0; %DUC
Hw1 Hw2 Hw3 Hw4 Hw5 Hw6 Hw7 %Dw
];
% dur1 dua1 dur2 dua2
Bb=[1/Tr1 0 0 0; %Dr1
0 1/Ta1 0 0; %Da1
0 0 1/Tr2 0; %Dr2
0 0 0 1/Ta2; %Da2
0 0 0 0; %DaEq
0 0 0 0; %DUC
0 0 0 0]; %Dw
% dr1 da1 dr2 da2 daEq dUC dw
Cb=[hPl1 hPl2 hPl3 hPl4 hPl5 hPl6 0; %dPL
hQl1 hQl2 hQl3 hQl4 hQl5 hQl6 0; %dQL
hPC1 hPC2 hPC3 hPC4 hPC5 hPC6 0; %dPC
hUA1 hUA2 hUA3 hUA4 hUA5 hUA6 0; %dUA
0 0 0 0 1 0 0; %daEq
0 0 0 0 0 1 0; %dUC
0 0 0 0 0 0 1] ; %dw
A=Cb*Ab*inv(Cb); B=Cb*Bb;
%==============================================================================================
%建立狀態空間方程完畢,A,B分別為狀態空間方程和輸入方程。
%==============================================================================================
%==============================================================================================
%5.設計最優控制器:
%==============================================================================================
[V,G]=eig(A,'nobalance');
DD=[B A*B A^2*B A^3*B A^4*B A^5*B A^6*B];
rank(DD);
qq=[1*1e4 1*1e2 5*1e4 5*1e3 1*1e4 1e5 1*1e2];
Q=diag(qq);
R=eye(4)*40000;%R=eye(4)*50;*40000;;*1200;
[K,S,E] = lqr2(A,B,Q,R);%,N);
E
%==============================================================================================
% K矩陣即為反饋矩陣。
%==============================================================================================
ws=wN;T1=4.5;T2=70;tts=0.100;ttc=0.35;ttd=1.10;
save UPFCdata1 ku1 ku2 Cd Tj D Tr1 Tr2 Ta1 Ta2 PTs SB Eq1s USs wN UCs PLs QLs PCs aEqs r1s a1s ...
r2s a2s UAs X1 x2 X3 X31 xl xT2 K T1 T2 tts ttc ttd
%==============================================================================================
% 6. 系統仿真研究,驗證最優控制器的效果:
%==============================================================================================
%load UPFCdata1;
%-jisuan1;
%-jisuan2;
%-UPFCload;
%-UPFCsimulink1;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -