Matlab 的小球弹跳仿真程序
3个回答
2013-07-18
展开全部
%Mi.m
function xdot=Mi(t, x, flag)
xdot=zeros(2,1); % 状态变量矩阵初始化
xdot(1)=-9.8; % 速度加速度方程
xdot(2)=x(1); % 位移速度方程
% Mimain.m
clear all;clc;
v0=0; y0=1; % 球的初始状态
x_state=[v0,y0];% 将初始状态赋值到状态变量中
dt=0.01; % 仿真步进
t=0:dt:5; % 仿真时间序列
K=0.8; % 碰撞衰减系数
for k=1:length(t)
x(k,:)=x_state;
[t_out, x_out]=ode45('Mi',[t(k),t(k)+dt],x_state);
x_state=x_out(length(x_out),:);
if (x_state(2)<=0) & (x_state(1)<0)
x_state(1)=-K*x_state(1);
end
y=x_state(2); % 小球当前位置
subplot(2,1,1);plot(0,y,'o');
axis([-2 2 -0.1 1]);
set(gcf,'DoubleBuffer','on');
drawnow;
end
subplot(2,1,2);plotyy(t,x(:,1),t,x(:,2),'plot');
function xdot=Mi(t, x, flag)
xdot=zeros(2,1); % 状态变量矩阵初始化
xdot(1)=-9.8; % 速度加速度方程
xdot(2)=x(1); % 位移速度方程
% Mimain.m
clear all;clc;
v0=0; y0=1; % 球的初始状态
x_state=[v0,y0];% 将初始状态赋值到状态变量中
dt=0.01; % 仿真步进
t=0:dt:5; % 仿真时间序列
K=0.8; % 碰撞衰减系数
for k=1:length(t)
x(k,:)=x_state;
[t_out, x_out]=ode45('Mi',[t(k),t(k)+dt],x_state);
x_state=x_out(length(x_out),:);
if (x_state(2)<=0) & (x_state(1)<0)
x_state(1)=-K*x_state(1);
end
y=x_state(2); % 小球当前位置
subplot(2,1,1);plot(0,y,'o');
axis([-2 2 -0.1 1]);
set(gcf,'DoubleBuffer','on');
drawnow;
end
subplot(2,1,2);plotyy(t,x(:,1),t,x(:,2),'plot');
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
11
2024-11-15 广告
2024-11-15 广告
上海允若信息科技有限公司成立于2017年,是一家专注于电磁和等离子体仿真测试解决方案咨询、规划、定制开发和实施推广服务的专业化公司,允若意为:一允千金,上善若水。公司核心团队成员都毕业于国内外著名大学,在世界500强企业有多年工作经验。总部...
点击进入详情页
本回答由11提供
2013-07-18
展开全部
既然进来了就帮你顶下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-18
展开全部
与楼主一起等答案!~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询