用MATLAB做小球上抛运动仿真
1个回答
展开全部
clear,clc,clf
v0=15;h=10; %初速度、高度
g=-9.8;k=-0.8; %重力加速度、衰减系数
T=0;
for t=0:0.05:25
v=v0+g*(t-T); %求速度
y=h+v0*(t-T)+g*(t-T)^2/2; %求位移
if y<=0
v0=k*v;
T=t; %求取每次落地时所用时间
h=0;
end
subplot(122)
pause(0.1);
plot(1,y,'or','MarkerSize',15,'MarkerFace',[1,0,1]);
grid on
axis([0,2,0,25]);
subplot(221)
axis([0,30,-25,30]);
grid on
plot(t,v,'*g','MarkerSize',2); t=0:0.05:20
xlabel('时间(t)');
ylabel('速度(v)');
title('速度变化趋势图') %以上指令画球的速度变化趋势图
grid on
hold on
subplot(223)
axis([0,30,0,25])
plot(t,y,'*m','MarkerSize',2);
xlabel('时间(t)');
ylabel('位移(y)');
grid on
hold on
disp(['时间:t=',num2str(t,4),';','速度:v=',num2str(v,4)]);
End
v0=15;h=10; %初速度、高度
g=-9.8;k=-0.8; %重力加速度、衰减系数
T=0;
for t=0:0.05:25
v=v0+g*(t-T); %求速度
y=h+v0*(t-T)+g*(t-T)^2/2; %求位移
if y<=0
v0=k*v;
T=t; %求取每次落地时所用时间
h=0;
end
subplot(122)
pause(0.1);
plot(1,y,'or','MarkerSize',15,'MarkerFace',[1,0,1]);
grid on
axis([0,2,0,25]);
subplot(221)
axis([0,30,-25,30]);
grid on
plot(t,v,'*g','MarkerSize',2); t=0:0.05:20
xlabel('时间(t)');
ylabel('速度(v)');
title('速度变化趋势图') %以上指令画球的速度变化趋势图
grid on
hold on
subplot(223)
axis([0,30,0,25])
plot(t,y,'*m','MarkerSize',2);
xlabel('时间(t)');
ylabel('位移(y)');
grid on
hold on
disp(['时间:t=',num2str(t,4),';','速度:v=',num2str(v,4)]);
End
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询