題目要求如下:

我嘗試用MATLAB編程,我的程式共分為5部分,(代碼后面附上)
第1部分:定義了一些后面會用到的常數或矩陣,A,B,C,D代表著系統狀態空間運算式的引數矩陣。
第2部分:求解引數gama的回圈判斷結構
第3部分:由gama求解矩陣P
第4部分:表示系統,控制規律,畫圖
第5部分:定義回圈判斷結構中會用到的函式V
本人水平十分有限,代碼無法運行,實在不知如何改動,求助于各位大神,另外如果用Simulink可以實作的話,也請給些建議,十分感謝各位大神!
clear
clc
%to define some constants and constant matrix
A=[0 1 0 0 0;0 0 1 0 0;0 0 0 0 0;0 0 0 0 1;0 0 0 0 0];
B=[0 2;0 -1;1 2;0 0;0 1];
C=[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;0 0 0 1 0;0 0 0 0 1];
D=[0 0;0 0;0 0;0 0;0 0];
x=[1;0;-1;2;-2];
%define function to solve gama
eta=1.2;
rou1=0.3;
rou2=2;
ts=0;
De=1;
gama=0.3;
t=0;
while t<=60
[t,fval]=fminbnd(def_V,t-6.*De,t-4.*De);
Vmax1=fval;
[t,fval]=fminbnd(def_V,t-4.*De,t-2.*De);
Vmax2=fval;
[t,fval]=fminbnd(def_V,t-2.*De,t);
Vmax3=fval;
if t-ts<=6.*De
gama=gama;
De=De;
elseif ismember(((t-ts)/De-6)/2,N)==0
gama=gama;
De=De;
elseif Vmax2<=Vmax1 && Vmax3<=(Vmax1.*(max((1/eta),(exp(-gama.*2.*De)))))
gama=rou1.*gama;
De=rou2.*De;
else
gama=gama;
De=De;
end
%to define matrix P
M=[gama.^5 2.*(gama.^4) gama.^3 gama.^5 2.*(gama.^4).*(1-gama);2.*(gama^4) 9.*(gama.^3) 7.*(gama.^2) (2.*gama-10).*(gama.^3) (gama.^2).*(9.*gama-4.*(gama.^2)-10);gama.^3 7.*(gama.^2) 11.*gama (gama-10).*(gama.^2) gama.*(7.*gama-2.*(gama.^2)-20);gama.^5 (2.*gama-10).*(gama.^3) (gama-10).*gama.^2 (gama.^2+25).*(gama.^3) (2.*(gama.^2)+10-2.*(gama.^3)-10.*gama).*(gama.^2);2.*(1-gama).*(gama.^4) (9.*gama-4.*(gama.^2)-10).*(gama.^2) (7.*gama-2.*(gama.^2)-20).*gama (2.*(gama.^2)+25-2.*(gama.^3)-10.*gama).*(gama.^2) (9.*(gama.^2)-8.*(gama.^3)+4.*(gama^4)+50-20.*gama).*gama];
P=1/5.*M;
%to define state-place of linear time delay system
BT=B';
BP=-BT*P;
sys=delayss(A,B,C,D,delayt);
delayt=2.*(sin(8.*t))^2;
u=B*P*x;
[y,t,x]=lsim(sys,u,t,x);
plot(t,x)
plot(t,u)
t=t+0.01;
end
function V=def_V(x)
V=-x.'*P*x;
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/175414.html
標籤:其它技術問題
上一篇:有關while回圈的小問題
下一篇:模板類陣列和指標陣列如何初始化?
