西工大电气系统仿真第三四次作业Word文档下载推荐.docx
《西工大电气系统仿真第三四次作业Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《西工大电气系统仿真第三四次作业Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
![西工大电气系统仿真第三四次作业Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-11/20/fe9b1f42-0ee9-4787-ab68-bb593c6e59e3/fe9b1f42-0ee9-4787-ab68-bb593c6e59e31.gif)
p1=[-1-4-5];
k1=3;
z2=[0];
p2=[2-4];
k2=-2;
z3=[];
p3=[2-4];
k3=-2;
h1=zpk(z1,p1,k1)
h2=zpk(z2,p2,k2)
h3=zpk(z3,p3,k3)
%下面转化为传递函数型
tf_h1=tf(h1)
tf_h2=tf(h2)
tf_h3=tf(h3)
%下面转化为状态空间模型
ss_h1=ss(h1)
ss_h2=ss(h2)
ss_h3=ss(h3)
3.
%G1(s)编写
G1=tf([1],[110]);
%G2(s)编写
G2=tf([1],[11]);
%G3(s)编写
G3=tf([101],[144]);
%G4(s)编写
G4=tf([11],[16]);
%H1(s)编写
H1=tf([11],[12]);
%H2(s)编写
H2=tf([2],[1]);
%H3(s)编写
H3=tf([1],[1]);
%三种方式表达式不一样但是绘图结果是一样的这是因为一个系统的传递函数表达形式不是唯一的
%比较点前移
Hx1=H1/G1/G2;
%此时G2G3H2构成的闭环传递函数设为G23
G23=feedback(G2*G3,H2);
%G1G23G4H3Hx1算出G(s)
G=feedback(G1*G23*G4,Hx1-H3,+1)
figure;
step(G)
G34=feedback(G3*G4,H1,+1);
G23=feedback(G2*G34,H2/G4);
G=feedback(G1*G23,H3)
Hx1=H1*G4/G2;
G23=feedback(G2*G3,Hx1-H2,+1);
G=feedback(G1*G23*G4,H3)
4.1
a=[-0.5572-0.7814;
0.78140];
b=[1-1;
02];
c=[1.96916.4493];
d=[00];
sys_ss=ss(a,b,c,0)
sys_tf=tf(sys_ss)
sys_zpk=zpk(sys_ss)
[z,p,k]=ss2zp(a,b,c,d,2)
4.2
closeall;
sys=ss(a,b,c,d)
sysd=c2d(sys,0.1)
figure
(1);
step(sys,'
r-'
sysd,'
b--'
)
figure
(2);
bode(sys,'
)
hold;
bode(sysd,'
5.
H=tf([25],[1625]);
step(H,'
[y,t]=step(H);
ypeak=max(y);
n=length(y);
fork=1:
n
if(y(k)==ypeak)
peaktime=t(k)
temp=k;
%记住此时对应数组的位置
end
end
ystead=y(n);
over=(ypeak-ystead)/ypeak
%上升时间,题目要求0到100%,实际定义的10%-90%,按题目要求
temp
if(y(k)>
=ystead)
risetime=t(k)
break;
%调节时间,98%-102%
ydown=0.98;
yup=1.02;
fork=temp:
if(y(k)<
=yup)
settime=t(k)
6.clc;
H=tf([1],[11]);
Hd=c2d(H,0.1);
figure
(1);
Hd,'
);
figure
(2);
impulse(H,'
figure(3);
bode(H,'
7.
num=[10340];
den=[01331];
Hd=tf(num,den,0.1);
bode(Hd,'
[Gm_d,Pm_d,Wgm_d,Wpm_d]=margin(Hd);
Gm_d
Pm_d
H=d2c(Hd,'
tustin'
[Gm_c,Pm_c,Wgm_c,Wpm_c]=margin(H);
Gm_c
Pm_c
8.
G1=tf([44],[0.001671]);
G2=tf([1],[0.0171]);
G3=tf([1],[0.0751]);
G4=tf([1],[0.1925]);
H=tf([0.01158],[1]);
G23=feedback(G2*G3,1);
%
(1)分析比例控制的作用,取比例系数为分别为1510
Kp=[6810];
%fork=1:
3
%Gp=tf([Kp(k)],[1]);
%G=feedback(Gp*G1*G23*G4,H);
%step(G)
%holdon;
%end
Gp1=tf([Kp
(1)],[1]);
G=feedback(Gp1*G1*G23*G4,H);
step(G,'
r'
holdon;
Gp2=tf([Kp
(2)],[1]);
G=feedback(Gp2*G1*G23*G4,H);
b'
Gp3=tf([Kp(3)],[1]);
G=feedback(Gp3*G1*G23*G4,H);
y'
legend('
Kp=6'
'
Kp=8'
Kp=10'
title('
比例环节'
%由图可以看出,设TD=0、Ti=∞,K值越大,超调量越大,峰值时间越小,调节时间越大,动态性能越差
%
(2)采用PI控制,固定比例系数Kp=1,令Ti取0.02,0.03,0.04时,
%绘制该系统的阶跃响应曲线
Kp=1;
Ti=[0.020.030.04];
Gp1=tf([Ti
(1)1],[Ti
(1)0]);
Gp2=tf([Ti
(2)1],[Ti
(2)0]);
Gp3=tf([Ti(3)1],[Ti(3)0]);
Ti=0.02'
Ti=0.03'
Ti=0.04'
比例-积分环节'
%由图可以看出,PI调节时Kp=1固定,积分环节Ti越大,
%系统的超调量越小,峰值时间变大,调节时间越小,动态性能变好
%(3)采用PID控制,固定比例系数Kp=1,Ti=0.01,
%令Td分别取0.01,0.04,0.07时,绘制该系统的阶跃响应曲线.
Ti=0.01;
Td=[0.010.040.07];
Gp1=tf([Ti*Td
(1)Ti1],[Ti0]);
Gp2=tf([Ti*Td
(2)Ti1],[Ti0]);
Gp3=tf([Ti*Td(3)Ti1],[Ti0]);
Td=0.01'
Td=0.04'
Td=0.07'
比例-积分-微分环节'
%由图可以看出,PID调节Kp=1,Ti=0.01固定,
%微分环节Td越大,超调量越小,峰值时间变大,调节时间变小
%系统的动态性能变好
第四次
3.1
M函数代码:
functiony=fcn(x,k1,k2,k3)
%#codegen
if(abs(x)<
=1)
y=k2*x;
elseif(x>
1)
y=k3*(x-1)+k2;
else
y=k1*(x+1)-k2;
3.2
function[sys,x0]=fun3(t,x,u,flag,k1,k2,k3)
ifflag==0
sys=[1,0,1,0,0,0];
%¶
¨
Ò
å
»
¸
ö
×
´
Ì
¬
±
ä
Á
¿
¶
Ê
³
×
·
½
dy=k£
Ê
y
x0=[-5];
%¼
Ù
É
è
õ
¼
Ö
µ
Ç
-5£
Ô
Ë
æ
ã
%x0=[-3,-5];
elseifflag==1
ift<
=-1
sys
(1)=k1;
elseift<
=1
sys
(1)=k2;
else
sys
(1)=k3;
elseifflag==3
sys=x;
sys=[];
end
S函数代码
function[sys,x0]=fun_4(t,x,u,flag)
ifflag==0
sys=[2;
0;
2;
1;
0];
x0=[1;
3];
elseifflag==1
sys
(1)=x
(2);
sys
(2)=-0.5*x
(2)-0.8*x
(1)+0.9*u;
elseifflag==3
elsesys=[];