系统仿真实验报告Word文档格式.docx
《系统仿真实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《系统仿真实验报告Word文档格式.docx(35页珍藏版)》请在冰点文库上搜索。
ans=
11
21
31
41
A(2,:
)
A(1:
2,2:
3)
1213
2223
A(2:
3,2:
3233
1:
2)
1112
2122
3132
4142
2131
12
22
32
42
13
23
33
43
14
24
34
44
:
ones(2,2)
11
eye
(2)
10
01
(2)绘制数学函数的图形
t=0:
0.5:
8;
y=1-2*exp
(1)-t.*sin(t);
plot(y)
运行后结果:
实验二
----数值积分算法练习及函数调用
一实验目的:
理解数值积分,熟练掌握matlab函数调用
二实验示例介绍:
用Euler法求初值问题的数值解
方程如下:
Du/dt=u-2t/u
U(0)=1t=[0,1]
取步长h=0.1
所写程序如下:
t0=0;
tf=1;
x0=1;
h1=0.1;
t=[t0:
h1:
tf];
n=length(t);
u=x0;
uu
(1)=u;
fori=2:
n
du=u-2*t(i-1)/u;
u=du*h1+u;
uu(i)=u
end
uu=
1.00001.1000
1.00001.10001.1918
1.00001.10001.19181.2774
1.00001.10001.19181.27741.3582
1.00001.10001.19181.27741.35821.4351
1.00001.10001.19181.27741.35821.43511.5090
1.00001.10001.19181.27741.35821.43511.50901.5803
Columns1through8
Column9
1.6498
Columns9through10
1.64981.7178
Columns9through11
1.64981.71781.7848
plot(t,uu)
2、编写MATLAB程序求解下列方程的数值解:
解:
用MATLAB编程求解如下:
%用ode23法求初值问题的数值解
functionxdot=fun21(t,x)
xdot=x-t^2;
functionfzsy22
t0=0;
tf=3;
tol=1e-6;
trace=1;
[t,x]=ode23('
fun21'
t0,tf,x0,tol,trace);
plot(t,x)
得到的实验结果如下图所示
3、试将(2-2)方程改为用Eular编程求解试比较用ode23求解结果
%改用Euler法求初值问题的数值解
functionFZSYZ1
h1=0.1;
t=[t0:
n=length(t);
u=x0;
uu
(1)=u;
fori=2:
du=u-(t(i-1))^2;
u=du*h1+u;
uu(i)=u;
uu
plot(t,uu)
3、试将(2-1)方程改为用ode23算法调用函数求解,并试比较结果。
xdot=x-2*t./x;
得到的实验结果如下图所示:
5、利用ode23或ode45求解线性时不变系统微分方程
,并绘制出
曲线,式中
A=[-0.51;
-1-0.5];
xdot=A*x;
tf=4;
x0=[0;
1];
6、求出
与
的单位阶跃响应,并分别求出状态空间模型。
(1)
的状态空间模型求解如下:
functionshiyan2
b1=[2];
a1=[121];
sys=tf(b1,a1);
step(sys);
[A1,B1,C1,D1]=tf2ss(b1,a1)
求解可得:
实验仿真结果如下图所示:
(2)
b1=[1];
a1=[2331];
7、选做题一:
已知系统传递函数为
,求对应的零极点模型,绘制系统阶跃响应。
由MATLAB编程求解如下:
b1=[200400];
a1=[1115242];
step(b1,a1);
[z,p,k]=tf2zp(b1,a1)
有上述程序求解可得:
实验三
-----控制工具箱与simulink软件应用
熟悉工具箱及其使用,进行系统仿真分析,通过仿真对系统进行校正检验
有关simulink系统结构框图:
示波器显示结果如下:
二
绘制系统根轨迹图:
第一种情况下:
num=[1];
den=[100];
sys=tf(num,den);
rlocus(sys)
第二种情况下:
num=[11];
den=[1500];
sys=tf(num,den);
rlocus(sys)
第三种情况下:
num=[15];
den=[1100];
Kc为0.1时其阶跃响应:
num1=[0.1];
den1=[100];
sys1=tf(num1,den1);
num2=[0.10.1];
den2=[1500];
sys2=tf(num2,den2);
num3=[0.10.5];
den3=[1100];
sys3=tf(num3,den3);
step(sys1);
holdon;
step(sys2);
step(sys3);
holdoff
Kc为0.5时其阶跃响应:
num1=[0.5];
num2=[0.50.5];
num3=[0.50.25];
Kc为1时其阶跃响应:
num1=[1];
num2=[11];
num3=[15];
(2)绘制K=0.1,0.5,1的阶跃响应,仿真时间为50
1、K=0.1
2、K=0.5
3、K=1
系统A,B,C阶跃响应:
A:
num1=[44];
den1=[1200];
sys1=tf(num1,den1);
0.1:
10;
u=1;
step(sys1,u,t);
plot(t,u,'
r*'
);
B:
num=[4];
den=[120];
den2=[10];
sys22=tf(num2,den2);
sys2=feedback(sys,sys22);
step(sys2,u,t);
C:
num3=[42];
den3=[1200];
t=0:
step(sys3,u,t);
系统A,B,C斜坡响应:
A;
u=t;
B;
C;
用simulink仿真模型如下:
实验四
验证如下:
num=10;
den=[1,7,10];
ts=0.1;
[n_zoh,d_zoh]=c2dm(num,den,ts)
n_zoh=
00.03980.0315
d_zoh=
1.0000-1.42530.4966
nc=10;
dc=[1,7,10];
i=[0:
35];
time=i*ts;
[n_zoh,d_zoh]=c2dm(nc,dc,ts);
yc=step(nc,dc,time);
y_zoh=dstep(n_zoh,d_zoh,36);
[xx,yy]=stairs(time,y_zoh);
plot(time,yc,'
r'
),hold
plot(xx,yy,'
g'
),hold;
grid
用simulink仿真如下:
实验心得:
通过这次实验,更加了解了matlab的使用,虽然学习matlab的时间并不长,依然可以看到matlab功能的强大,matlab是一个非常实用的软件,即使课程结束,我们也要继续好好学习。