Matlab大作业(7)

2019-04-15 13:54

程序7

Kvc=10;%Kvcopm>8 Kgang=2.02;%K/alpha Kvu=2*Kgang/5;

alpha=Kvc/Kvu%alpha即z/p 程序8

G=zpk([],[0,-1,-5],2);%原系统开环传递函数 p=0.001;z=alpha*p; nc=[1 z];dc=[1,p]; Gc=2.02*tf(nc,dc);

G2=G*Gc;%引入K/alpha

sys2=feedback(G2,1);%单位负反馈,构成闭环

程序9

tf1=10000; a=1;

t=[0:0.1:tf1]; u=a*t;%斜坡输入

y_t=lsim(sys2,u,t);

plot(t,y_t,'b-',t,u,'r:') yss=y_t(length(t));

y_deta=u(length(t))-yss if y_deta<(a/8)%稳态误差小于a/8 disp('yes')%符合要求(1) else

disp('no')%不符合 end

程序10

G=zpk([],[0,-1,-5],2);%原系统开环传递函数 p=0.001;z=alpha*p; nc=[1 z];dc=[1,p]; Gc=2.02*tf(nc,dc);

G2=G*Gc;%引入K/alpha

sys2=feedback(G2,1);%单位负反馈,构成闭环 step(sys2) 程序11

G=zpk([],[0,-1,-5],2);%原系统开环传递函数 p=0.001;z=alpha*p; nc=[1 z];dc=[1,p];

31

Gca=2.02*tf(nc,dc); Gcb=1.90*tf(nc,dc);

Gcc=2.1*tf(nc,dc);%引入K/alpha G2a=G*Gca; G2b=G*Gcb; G2c=G*Gcc;

sys2a=feedback(G2a,1);%单位负反馈,构成闭环 sys2b=feedback(G2b,1); sys2c=feedback(G2c,1); step(sys2a,'b--') hold on

step(sys2b,'r:') step(sys2c,'y-')

程序12 hold off

clg

n=[2];d=[1 6 5 0]; rlocus(n,d),hold on grid

z=0.4559;

hs=12*z;

hc=12*sqrt(1-z^2);

plot([0 -hs],[0 hc],'--',[0 -hs],[0 -hc],'--') text(-9.5,1,'Desired performance region') rlocfind(n,d)

程序13

G=zpk([],[0,-1,-5],2);%原系统开环传递函数 Kvc=10;%Kvcopm>8 y=zeros(200,1);i=0; for K=0.1:0.1:2%K/alpha Kvu=2*K/5;

alpha=Kvc/Kvu;%alpha即z/p p=0.001;z=alpha*p; nc=[1 z];dc=[1,p];

Gc=K*tf(nc,dc);%引入K/alpha G2=G*Gc;

sys2=feedback(G2,1);%单位负反馈,构成闭环 t=[0:0.1:19.9]; i=i+1;

y(:,i)=step(sys2,t);

32

end plot(y)

legend('K=0.1','K=0.2','K=0.3','K=0.4','K=0.5','K=0.6','K=0.7','K=0.8','K=0.9','K=1.0','K=1.1','K=1.2','K=1.3','K=1.4','K=1.5','K=1.6','K=1.7','K=1.8','K=1.9','K=2.0') 程序14

G=zpk([],[0,-1,-5],2);%原系统开环传递函数 Kvc=10;%Kvcopm>8

y=zeros(200,1);i=0;

for K=0.1:0.1:2%K/alpha Kvu=2*K/5;

alpha=Kvc/Kvu;%alpha即z/p p=0.001;z=alpha*p;

nc=[1 z];dc=[1,p];

Gc=K*tf(nc,dc);%引入K/alpha

G2=G*Gc;

sys2=feedback(G2,1);%单位负反馈,构成闭环 t=[0:1:199];%改变时间长度 i=i+1;

y(:,i)=step(sys2,t); end

plot(y)

legend('K=0.1','K=0.2','K=0.3','K=0.4','K=0.5','K=0.6','K=0.7','K=0.8','K=0.9','K=1.0','K=1.1','K=1.2','K=1.3','K=1.4','K=1.5','K=1.6','K=1.7','K=1.8','K=1.9','K=2.0') 程序15

sigma=zeros(20,20);j=0;Kgan=zeros(20,20); for i=1:1:20;

[mp,tf]=max(y(:,i));%求最大幅值点 yss=y(length(t));%求稳态值 tp=t(tf);%峰值时间 j=j+1;

Kgan(j,1)=j/10;%K/alpha

sigma(j,1)=100*(mp-yss)/yss;%超调量 end

plot(Kgan,sigma,[0 2],[20 20]) grid

xlabel('K/alpha') ylabel('Overshoot')

33

程序16

n=find(sigma(:,1)<20);%找满足要求二的K/alpha Kn=Kgan(n,1)

程序17

G=zpk([],[0,-1,-5],2);%原系统开环传递函数 Kvc=10;%Kvcopm>8

y=zeros(200,1);i=0;y_deta=zeros(20,1);Kgan=zeros(20,1); for K=0.1:0.1:2%K/alpha Kvu=2*K/5;

alpha=Kvc/Kvu;%alpha即z/p p=0.001;z=alpha*p; nc=[1 z];dc=[1,p];

Gc=K*tf(nc,dc);%引入K/alpha

G2=G*Gc;

sys2=feedback(G2,1);%单位负反馈,构成闭环 t=[0:1:199]; i=i+1;

Kgan(i,1)=i/10;

u=t;

y(:,i)=lsim(sys2,u,t); yss=y(length(t),i);

y_deta(i,1)=u(length(t))-yss if y_deta(i,1)<(1/8)%稳态误差小于a/8 disp('yes')%符合要求(1) else

disp('no')%不符合 end end

plot(Kgan,y_deta,[0 2],[0.125 0.125])%找到误差小于a/8的直线 grid

xlabel('K/alpha') ylabel('E(s)')

程序18

m=find(y_deta<0.125);%找满足要求一的K/alpha Km=Kgan(m,1) 程序19

Kvc=10;%Kvcopm>8 Kgang=1;%K/alpha Kvu=2*Kgang/5;

34

alpha=Kvc/Kvu;%alpha即z/p

程序20

G=zpk([],[0,-1,-5],2);%原系统开环传递函数 p=0.001;z=alpha*p; nc=[1 z];dc=[1,p]; Gc=1*tf(nc,dc);

G2=G*Gc;%引入K/alpha

sys2=feedback(G2,1);%单位负反馈,构成闭环

程序21 tf1=1000; a=1;

t=[0:0.1:tf1]; u=a*t;%斜坡输入

y_t=lsim(sys2,u,t); plot(t,y_t,'b-',t,u,'r:') grid

yss=y_t(length(t));

y_deta=u(length(t))-yss;

if y_deta<(a/8)%稳态误差小于a/8 disp('yes')%符合要求(1) else

disp('no')%不符合 end

程序22

step(sys2)

程序23

Kvc=10;%Kvcopm>8 Kgang=0.5;%K/alpha Kvu=2*Kgang/5;

alpha=Kvc/Kvu;%alpha即z/p

G=zpk([],[0,-1,-5],2);%原系统开环传递函数 p=0.001;z=alpha*p; nc=[1 z];dc=[1,p]; Gc=Kgang*tf(nc,dc); G2=G*Gc;%引入K/alpha

sys2=feedback(G2,1);%单位负反馈,构成闭环 tf1=1000; a=1;

35


Matlab大作业(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:案例分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: