《小球弹跳仿真 学生实验报告.doc》由会员分享,可在线阅读,更多相关《小球弹跳仿真 学生实验报告.doc(4页珍藏版)》请在人人文库网上搜索。
湖南农业大学信息科学技术学院学 生 实 验 报 告姓名: 李 梦 雅 年级专业班级 09级信息工程一班 学号 200941843114 成绩 课程名称MATLAB仿真技术实验名称小球弹跳仿真实验类型验证 设计综合 创新【实验目的、要求】能够进行线性代数运算、表达式的简化、表达式的运算、数学函数及一些特殊函数;能通过常用二维图形绘制函数绘制简单的图形;学习由实际问题去建立数学模型的过程;学会简单系统的数值求解仿真方法。【实验内容】仿真小球弹跳过程:将一质量为1kg的小球从1米高处无初速自由下落,触地反弹,地面有损耗,损耗系数设为k=0.85,试求0时刻后5000的时间点的高度值,并绘图。进一步地思考: 如果仿真速度的变化,如何操作,若要做小球弹跳的动画,又如何实现?【实验环境】(含主要设计设备、器材、软件等)MATLAB 7.8【实验步骤、过程】(含原理图、流程图、关键代码,或实验过程中的记录、数据等)动态系统建模,就是根据研究对象的物理模型找出相应的状态方程的过程。 对动态系统的仿真,就是利用计算机来对所得出的状态方程进行数值求解的过程。 如果已知当前系统的状态,由状态方程将给出未来所有时刻上的系统状态值和输出信号值。
在计算机数值求解中,我们只能以一个微小的时间间隔来近似表示当前时刻与下一时刻之间的无穷小时间差,所以数值求解(实质上就是微分方程的数值求解)总是近似的。我们将这个微小的时间间隔称为求解的步长。 微分方程的求解算法可以划分为两大类:变步长算法和固定步长算法。 对于离散时间系统,状态方程以一组差分方程的形式给出。 当给定当前离散时刻k处的状态向量值s(k)以及当前输入的时间离散信号取值x(k),由差分方程组就确定了当前系统输出信号取值y(k)以及下一个时刻(k+1时刻)的新的系统状态取值s(k+1)。如果已知系统的初始状态s(0)和输入的离散时间信号x(k),k=0;1;2;:,通过递推,我们就可以得出未来各个离散时刻的系统状态值和系统输出信号。 如果系统模型中存在数模转换模块(例如取样器,模拟低通滤波器等),那么系统中既存在时间连续信号,又有时间离散信号,对于这样的混合系统,其状态方程组中既有微分方程,又有差分方程。 (1)数学模型 首先对乒乓球弹跳过程进行一些理想化假设。设球是刚性的,质量为m,垂直下落。碰击面为水平光滑平面。在理想情况下碰击无能量损耗。如果考虑碰击面损耗,则碰击前后速度方向相反,大小按比例系数K;0k1下降。
在t时刻的速度设为v=v(t),位移设为y=y(t),并以碰击点为坐标原点,水平方向为坐标横轴建立直角坐标系。球体的速度以竖直向上方向为正方向。重力加速度为g=9.8m/s2。 初始条件假设:设初始时刻t0=0球体的初始速度为v0=v(t0),初始位移为y0=y(t0)。 受力分析:在空中时小球受重力F=mg作用,其中,g=dv/dt则在t+dt时刻小球的速度为 v(t+dt)=v(t)gdt 在t+dt时刻小球的位移为 y(t+dt)=y(t)+v(t)dt 在小球撞击水平面的瞬间,即y(t)=0的时刻,它的速度方向改变,大小按比例K衰减。当K=1时,就是无损耗弹跳情况。因此,小球反弹瞬间(t+dt时刻)的速度为 v(t+dt)=Kv(t)gdt; 0k1反弹瞬间的位移为 y(t+dt)=y(t)Kv(t)dt=Kv(t)dt (2)代码g=9.8; % 重力加速度v0=0; % 初始速度y0=1; % 初始位置m=1; % 小球质量t0=0; % 起始时间K=0.85; % 弹跳的损耗系数N=5000; % 仿真的总步进数dt=0.001; % 仿真步长v=v0; % 初状态y=y0; for k=1:N if (y0)|(v0) % 小球在空中的(含刚刚弹起瞬间)动力方程计算 v =v -g*dt; y =y +v*dt; else % 碰击瞬间的计算 y =y-K.*v*dt; v =-K.*v-g*dt; end s(k)=y; % 将当前位移记录到s数组中以便作图endt=t0:dt:dt*(N-1);% 仿真时间长度plot(t,s);xlabel(时间 t);ylabel(位移 y(t);axis(0 5 0 1.1); 【实验结果或总结】(对实验结果进行相应分析,或总结实验的心得体会,并提出实验的改进意见)小球弹跳实验根据实际仿真出在有损耗的情况下,小球的阻尼现象。先建立小球的运动方程,运用微分的知识将其分割成很小的部分,再用MATLAB实现。在这次实验中,我学会了如何绘制二维图像,将我们需要的变量(时间,位移)绘制上去。指导教师签名: 20 年 月 日