系统建模与仿真习题6及答案.docx

上传人:b****6 文档编号:6227596 上传时间:2023-01-04 格式:DOCX 页数:12 大小:288.96KB
下载 相关 举报
系统建模与仿真习题6及答案.docx_第1页
第1页 / 共12页
系统建模与仿真习题6及答案.docx_第2页
第2页 / 共12页
系统建模与仿真习题6及答案.docx_第3页
第3页 / 共12页
系统建模与仿真习题6及答案.docx_第4页
第4页 / 共12页
系统建模与仿真习题6及答案.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

系统建模与仿真习题6及答案.docx

《系统建模与仿真习题6及答案.docx》由会员分享,可在线阅读,更多相关《系统建模与仿真习题6及答案.docx(12页珍藏版)》请在冰豆网上搜索。

系统建模与仿真习题6及答案.docx

系统建模与仿真习题6及答案

系统建模与仿真习题六及答案

1.一个离散的系统:

分别利用dimpulse()函数、filter()函数、impz()求解系统的脉冲响应。

解:

clc;clear;

b=[1201];

a=[1-0.50.25]

u=[1,zeros(1,9)]

num=[1201];

den=[1-0.50.250];%补零

subplot(311)

[y,x]=dimpulse(num,den,10);

stem(y)

title('dimpulse求解')

subplot(312)

y=filter(b,a,u);

stem(y)

title('filter求解')

subplot(313)

y=impz(b,a,10);

stem(y)

title('impz求解')

2.假设信号:

分别以采样频率为2000Hz、1500Hz、1200Hz三种情况对该信号进行采样。

然后用理想的低通滤波器恢复该连续信号,观察恢复波形与实际波形的差异,分别计算出最大恢复误差。

解:

clear;clc;

fork=1:

3

ifk==1

Fs=2000;

elseifk==2

Fs=1500;

else

Fs=1200;

end

t1=0:

1/Fs:

0.002;%采样的时间间隔

n=0:

0.002*Fs;%采样的点数

x=2*sin(1000*pi*t1);

T=1/Fs;

dt=T/10;%每个采样周期取多个样点,保证g(t)的连续性

t=0:

dt:

0.002;

M=ones(length(n),1)*t-n'*T*ones(1,length(t));

xa=x*sinc(Fs*M);

x0=2*sin(1000*pi*t);%实际函数

subplot(3,1,k);

stem(t,xa,'.');

holdon

plot(t,x0,'r','linewidth',1.5)

wucha(k)=max(abs(xa-x0));

end

wucha

wucha=

0.39930.28471.5271

3.系统传递函数为:

假设系统输入为

,请用卷积、lsim函数方法求其零状态响应的结果。

解:

clc;clear;

b=[21];a=[321];

t=0:

0.001:

10

y1=impulse(b,a,t);%求脉冲响应

u=1+sin(2*t);

Y1=0.001*conv(y1,u);%利用卷积求响应输出

Y2=lsim(b,a,u,t)%直接求零状态响应

subplot(211)

plot(t,Y1(1:

length(t)))

title('卷积计算的结果')

grid

subplot(212)

plot(t,Y2)

title('直接求零状态响应的结果')

grid

4.已知微分方程

(1)用Euler方法求解常微分方程初值问题,并将数值解和该问题的解析解(

)比较。

(2)用二阶Runge-Kutta方法求解常微分方程初值问题,并将数值解和该问题的解析解(

)比较。

(3)利用四阶Runge-Kutta方法编程仿真;

(4)利用ode45函数求解并仿真

解:

(1)

clc;clear;

y

(1)=1;

h=0.1

x=0:

h:

20;

forn=1:

length(x)-1

xn=x(n);

yn=y(n);

y(n+1)=yn+h*sin(xn);

end

x0=0:

h:

20;

y0=-cos(x0)+2;

plot(x0,y0,'bo',x,y,'r*')

legend('解析解','数值解')

 

(2)

clc;clear;

y

(1)=1;

h=0.1;

t=0:

h:

20;

forn=1:

length(t)-1

%k1=sin(t(n));%该语句不需要

k2=sin(t(n)+h/2);

y(n+1)=y(n)+h*k2;

end

y1=2-cos(t);%精确解

subplot(211)

plot(t,y)

subplot(212)

plot(t,y1)

(3)

clear;clc;

t0=0;tN=20;y0=1;h=0.1;

t=t0:

h:

tN;

N=length(t);

fori=1:

N-1

t1=t0+h;

K1=Runge(t0,y0);

K2=Runge(t0+h/2,y0+h*K1/2);

K3=Runge(t0+h/2,y0+h*K2/2);

K4=Runge(t0+h,y0+h*K3);

y=y0+(h/6)*(K1+2*K2+2*K3+K4);

t0=t1;

y0=y;

yy1(i)=y;

end

plot(t,[1,yy1]);

结果:

(4)

子程序:

Runge.m

functiondy=Runge(t,y)

dy=sin(t);

主程序:

clc;clear;

y0=1;

[t,y]=ode45('Runge',[0,20],y0);

plot(t,y)

结果:

5.小型火箭初始质量为900千克,其中包括600千克燃料。

火箭竖直向上发射时燃料以15千克/秒的速率燃烧掉,由此产生30000牛顿的恒定推力。

当燃料用尽时引擎关闭。

设火箭上升的整个过程中,空气阻力与速度平方成正比,比例系数为0.4(千克/米)。

重力加速度取9.8米/秒2.

(1)建立火箭升空过程的数学模型(微分方程);

(2)分别利用四阶Runge-Kutta编程方法,ode45函数方法求解引擎关闭瞬间火箭的高度、速度及火箭到达最高点的高度。

解:

(1)

建立模型:

——

时刻的火箭高度;

=30000(牛顿)——火箭推力,当时间

>40秒时,T=0;

——火箭飞行过程中的质量,

>40秒时,

千克

=900(千克)——火箭初始质量;

=600(千克)——燃料质量;

=15(千克/秒)——燃料的燃烧速率;

=0.4(千克/米)——空气阻力系数;

=9.8(米/秒

)——重力加速度

由牛顿第二定律,可得到火箭飞行过程的方程:

这是一个初值问题,初始条件为

,则问题化为求下列微分方程组的初值问题:

关闭引擎时

(秒),所求的是此时火箭的高度,速度,以及火箭到最高点的高度。

(2)

四阶Runge-Kutta编程方法:

子程序:

functiony=huojian(t,x)

globalm0kgT

g=9.8;m0=900;T=30000;k=0.4;

m=m0-15*t;

ift>40

T=0;

m=300;

end

y=[x

(2);-(k/m)*x

(2)^2+T/m-g];

主程序:

clear;clc;

globalm0kgT

y0=[0;0];h=0.01;

t=0:

h:

55;

t0=0;

N=length(t);

fori=1:

N

t1=t0+h;

K1=huojian(t0,y0);

K2=huojian(t0+h/2,y0+h*K1/2);

K3=huojian(t0+h/2,y0+h*K2/2);

K4=huojian(t0+h,y0+h*K3);

y=y0+(h/6)*(K1+2*K2+2*K3+K4);

yy1(i)=y

(1);

yy2(i)=y

(2);

t0=t1;

y0=y;

end

subplot(211)

plot(t,yy1)

subplot(212)

plot(t,yy2)

a=[t',yy1',yy2'];

x40=a(40/h+1,2)%燃料用尽时的高度

v40=a(40/h+1,3)%燃料用尽时的速度

xmax=max(yy1)

结果:

 

x40=

8.3254e+003

v40=

257.8302

xmax=

9.1906e+003

Ode45方法:

子程序:

huojian.m

functiony=huojian(t,x)

k=0.4;g=9.8;m0=900;T=30000;m=m0-15*t;

ift>40

T=0;

m=300;

end

y=[x

(2);-(k/m)*x

(2)^2+T/m-g];

主程序:

feixing.m

clear;clc;

k=0.4;g=9.8;m0=900;T=30000;

x0=[0,0];

h=0.01;

ts=0:

h:

55;

[t,x]=ode45('huojian',ts,x0);

a=[t,x];

x40=a(40/h+1,2)%燃料用尽时的高度

v40=a(40/h+1,3)%燃料用尽时的速度

xmax=max(x(:

1))%火箭到达最高点的高度

subplot(2,1,1),plot(t,x(:

1)),title('altitude')

subplot(2,1,2),plot(t,x(:

2)),title('speed')

结果:

 

x40=

8.3234e+003

v40=

260.2437

xmax=

9.2151e+003

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1