实验一 1、(教材P37页 例2.1)已知一阶微分方程:
?
y(0)?1/3,h?0.05试编写程序,用欧拉法求 y30的值;并画出图形。 y(t?1.5),即
解:程序如下: clc clear
Tf=input('仿真时间Tf='); %输入仿真时间 h=input('计算步长h='); %输入仿真步长 x0=1/3; t=0; x=x0; %输入初始值 for i=1:Tf/h K1=-30*x0; x1=x0+h*K1;
x=[x;x1]; %变量以向量形式保存
t=[t;t(i)+h]; %对应时刻以向量形式保存 x0=x1; end
[t,x] %以数据形式输出 plot(t,x) %以曲线形式输出 所绘图形如下:
0.5y??30y,0.40.30.20.1X: 1.5Y: 3.104e-0100-0.1-0.200.20.40.60.811.21.41.6?1?2、2. (教材P79习题2.5)已知系统的状 ?x态方程和输出方程为: ?x??式中 u(t)=1(t)。初始条件为: ?2?x1(0)=x2(0)=x3(0)=0。取h=0.05, ??3?x??试用RK4法求t=0.5时的y 值。
解:程序如下:
1 0??x1??0???8 ? ?x???4?u???19 0 1???2??????12 0 0????10???x3????x1??y?[1 0 0]?x?2?1 ???x3?
clc clear u=1;
x0=0; t=0;y=0; x0=[0;0;0];
A=[-8 1 0;-19 0 1;-12 0 0]; B=[0;4;10]; C=[1 0 0];
Tf=input('仿真时间Tf='); h=input('计算步长h='); x=x0;
for i=1:Tf/h K1=A*x+B*u;
K2=A*(x+h*K1/2)+B*u; K3=A*(x+h*K2/2)+B*u; K4=A*(x+h*K3)+B*u;
x=x+h*(K1+2*K2+2*K3+K4)/6; y=[y;C*x]; t=[t;t(i)+h]; end y
plot(t,y)
所绘图形如下:
0.90.80.70.60.50.40.30.20.1005101520253035
0.250.2X: 0.5Y: 0.22010.150.10.05000.050.10.150.20.250.30.350.40.450.52
3、已知系统的传递函数, 试求其状态方程及输出方程。 (教材P26页 习题1.7 ) s?3G(s)?32s?3s?3s?1
解:程序如下: den=[1 3];
num=[1 3 3 1];
[A,B,C,D]=tf2ss(den,num) 运行结果如下: A =
-3 -3 -1 1 0 0 0 1 0 B =
1 0 0 C =
0 1 3 D =
0
4、已知线性定常系统的状态方程
??及输出方程,试求系统的传递函数。?x1???1 1 ???(教材P26页 习题1.8 ) ? x?2 0 ?1 ?x????解:程序如下:
?3??? 0 0 A=[-1 1 0;0 -1 0;0 0 -2];
B=[0;0;1];
?x1?C=[1 0 1]; ??[den,num]=ss2tf(A,B,C,D) y?[1 0 1]运行结果如下:
?x2???x3??
0???x1??0?0-2? ?x???0?u??2?????x3?????1??3
den =
0 1 2 1
num =
1 4 5 2
5、(教材P48页 例2.4 )如图所示的直流电机拖动系统,试在SIMULINK环境下
建立系统仿真模型:
1)采用欧拉法与四阶龙格库塔法进行仿真,并确定其步长的稳定区间,取不同步长比较仿真结果;
2)采用RK4研究外环PI控制器参数的改变(0.17 0.5 1 1.5),观其阶跃响应对系统动态参数的影响。
(1)、欧拉法 clc clear
Tf=10; %输入仿真时间
h=input('计算步长h='); %输入仿真步长 P=[1 0.01 0.1 0; 0 0.85 1 0.17; 1 0.01 1 0;
0 0.051 1 0.15; 1 0.0067 70 0; 1 0.15 0.21 0; 0 1 130 0; 1 0.01 0.1 0;
1 0.01 0.0044 0]; %输入各环节参数 W0=zeros(9,1);W0(1,1)=1; %输入外部链接矩阵
W=zeros(9,9);W(2,1)=1;W(2,9)=-1;W(3,2)=1;W(4,3)=1; W(4,8)=-1;W(5,4)=1;W(6,5)=1;W(6,7)=-0.212;W(7,6)=1; W(8,6)=1;W(9,7)=1; %输入系统连接矩阵
4
A=diag(P(:, 1));B=diag(P(:, 2));
C=diag(P(:, 3));D=diag(P(:, 4)); %生成系数矩阵 Q=B-D*W;Q1=inv(Q); R=C*W-A; V=C*W0;
A1=Q1*R; B1=Q1*V; %生成闭环系数矩阵 C1=[0 0 0 0 0 0 1 0 0];
u=1; %阶跃输入幅值
x0=zeros(9,1); t=0;y=0; %设置初值 x=x0;
for i=1:Tf/h
K1=A1*x+B1*u; x=x+h*K1; y=[y;C1*x]; t=[t;t(i)+h]; end
plot(t,y)
计算步长h=0.011 计算步长h=0.012
403530250.52.521.51x 105020015-0.51050-1-1.5-2012345678910012345678910
四阶龙格库塔法: clc clear
Tf=input('仿真时间Tf='); %输入仿真时间 h=input('计算步长h='); %输入仿真步长 P=[1 0.01 0.1 0; 0 0.85 1 0.17; 1 0.01 1 0;
0 0.051 1 0.15; 1 0.0067 70 0; 1 0.15 0.21 0; 0 1 130 0;
5
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库中国矿业大学控制系统计算机仿真实验答案在线全文阅读。
相关推荐: