matlab传染病模型

matlab传染病模型
matlab传染病模型

传染病模型实验

实验目的:

理解传染病的四类模型,学会利用Matlab软件求解微分方程(组)。

实验题目:

利用Matlab求解传染病的SIS微分方程模型,并绘制教材P139页图3-图6。

SIS模型

假设:

(1)、t时刻人群分为易感者(占总人数比例的s(t))和已感染者(占总人数比例的i(t))。

(2)、每个病人每天有效接触的平均人数是常数λ,λ称为日接触率,当健康者与病人接触时,健康者受感染成为病人。

(3)、病人每天被治愈的占病人总数的比例为μ,称为日治愈率,显然1

μ

这种传染病的平均传染期。

则建立微分方程模型为:

令,则模型可写作

分别作图:

当sigma>1时

Step1:先定义函数

function y=pr1(i,lambda,sigma)

y=-lambda.*i.*(i-(1-1./sigma))

step2:作图

lambda=0.3;sigma=2;

i=0:0.01:1;

y=pr1(i,lambda,sigma)

plot(i,y)

00.10.20.30.40.50.60.70.80.91

-0.16

-0.14-0.12-0.1-0.08-0.06-0.04-0.020

0.02

当sigma<1时

Step1:先定义函数

function y=pr1(i,lambda,sigma) y=-lambda.*i.*(i-(1-1./sigma))

step2:作图

lambda=0.3;sigma=0.5; i=0:0.01:1;

y=pr1(i,lambda,sigma) plot(i,y)

00.10.20.30.40.50.60.70.80.91

-0.7

-0.6

-0.5

-0.4

-0.3

-0.2

-0.1

当sigma=1时

Step1:先定义函数

function y=pr1(i,lambda,sigma) y=-lambda.*i.*(i-(1-1./sigma))

step2:作图

lambda=0.3;sigma=1; i=0:0.01:1;

y=pr1(i,lambda,sigma) plot(i,y)

00.10.20.30.40.50.60.70.80.91

-0.35

-0.3

-0.25

-0.2

-0.15

-0.1

-0.05

当sigma>1时 Step1:先定义函数

function di=crb(t,i,lambda,sigma)

di=-lambda*i*(i-(1-1/sigma))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

step2:求解并作图 clc clear

lambda=0.01; sigma=2;

[t,i1]=ode45(@crb,[0,1000],0.9,[],lambda,sigma); [t,i2]=ode45(@crb,[0,1000],0.2,[],lambda,sigma); plot(t,i1,t,i2,t,1/2) legend('\sigma>1')

01002003004005006007008009001000

当sigma=1时

Step1:先定义函数

function di=crb(t,i,lambda,sigma)

di=-lambda*i*(i-(1-1/sigma)) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

step2:求解并作图

clc

clear

lambda=0.01;

sigma=1

[t,i1]=ode45(@crb,[0,1000],0.9,[],lambda,sigma);

plot(t,i1)

legend('\sigma=1')

100

200

300

400

500

600

700

800

900

1000

00.10.20.30.40.50.60.70.80.91

当sigma<1时 Step1:先定义函数

function di=crb(t,i,lambda,sigma)

di=-lambda*i*(i-(1-1/sigma))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

step2:求解并作图 clc clear

lambda=0.01; sigma=0.5;

[t,i1]=ode45(@crb,[0,1000],0.9,[],lambda,sigma); plot(t,i1) legend('\sigma<1')

01002003004005006007008009001000

-0.2

0.2

0.4

0.6

0.8

1

1.2

利用matlab 求解上面SIS 模型. 提示(画图5程序): Step1:先定义函数

function y=pr1(i,lambda,sigma) y=-lambda.*i.*(i-(1-1./sigma))

step2:作图

lambda=0.3;sigma=2; i=0:0.01:1;

y=pr1(i,lambda,sigma)

plot(i,y)

提示(画图6程序): Step1:先定义函数

function di=crb(t,i,lambda,sigma)

di=-lambda*i*(i-(1-1/sigma))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

step2:求解并作图 clc clear

lambda=0.01; sigma=0.2;

[t,i]=ode45(@crb,[0,100],0.9,[],lambda,sigma); plot(t,i)

legend('\sigma<1')

实验指导书:

利用matlab 求下面定解问题,并作图

d 2(3)d (0)2y

y y y x y ?=--?

?

?=?

程序

f=@(x,y)(2*y*(3-y)-y);

[x,y]=ode45(@(x,y)f(x,y),[0,10],0.9); plot(x,y)

legend('数值解 1');

交通流中的nasch模型及matlab代码元胞自动机

元胞自动机NaSch模型及其MATLAB代码 作业要求 根据前面的介绍,对NaSch模型编程并进行数值模拟: ●模型参数取值:Lroad=1000,p=0.3,Vmax=5。 ●边界条件:周期性边界。 ●数据统计:扔掉前50000个时间步,对后50000个时间步进行统计,需给出的 结果。 ●基本图(流量-密度关系):需整个密度范围内的。 ●时空图(横坐标为空间,纵坐标为时间,密度和文献中时空图保持一致, 画 500个时间步即可)。 ●指出NaSch模型的创新之处,找出NaSch模型的不足,并给出自己的改进思 路。 ●流量计算方法: 密度=车辆数/路长; 流量flux=density×V_ave。 在道路的某处设置虚拟探测计算统计时间T内通过的车辆数N; 流量flux=N/T。 ●在计算过程中可都使用无量纲的变量。 1、NaSch模型的介绍 作为对184号规则的推广,Nagel和Schreckberg在1992年提出了一个模拟车辆交通的元胞自动机模型,即NaSch模型(也有人称它为NaSch模型)。 ●时间、空间和车辆速度都被整数离散化。

● 道路被划分为等距离的离散的格子,即元胞。 ● 每个元胞或者是空的,或者被一辆车所占据。 ● 车辆的速度可以在(0~Vmax )之间取值。 2、NaSch 模型运行规则 在时刻t 到时刻t+1的过程中按照下面的规则进行更新: (1)加速:),1min(max v v v n n +→ 规则(1)反映了司机倾向于以尽可能大的速度行驶的特点。 (2)减速:),min(n n n d v v → 规则(2)确保车辆不会与前车发生碰撞。 (3)随机慢化: 以随机概率p 进行慢化,令:)0, 1-min(n n v v → 规则(3)引入随机慢化来体现驾驶员的行为差异,这样既可以反映随机加速行为, 又可以反映减速过程中的过度反应行为。这一规则也是堵塞自发产生的至关重要因素。 (4)位置更新:n n n v x v +→ ,车辆按照更新后的速度向前运动。 其中n v ,n x 分别表示第n 辆车位置和速度;l (l ≥1)为车辆长度; 11--=+n n n x x d 表示n 车和前车n+1之间空的元胞数;p 表示随机慢化概率;max v 为最大速度。 3、NaSch 模型实例 根据题目要求,模型参数取值:L=1000,p=0.3,Vmax=5,用matlab 软件进行编程,扔掉前11000个时间步,统计了之后500个时间步数据,得到如下基本图和时空图。 3.1程序简介 初始化:在路段上,随机分配200个车辆,且随机速度为1-5之间。 图3.1.1是程序的运行图,图3.1.2中,白色表示有车,黑色是元胞。

实验一 用MATLAB处理系统数学模型

实验一用MATLAB处理系统数学模型 一、实验原理 表述线性定常系统的数学模型主要有微分方程、传递函数、动态结构图等.求拉氏变换可用函数laplace(ft,t,s),求拉式反变换可用函数illaplace(Fs,s,t);有关多项式计算的函数主要有roots(p),ploy(r),conv(p,q),ployval(n,s);求解微分方程可采用指令 s=dslove(‘a_1’,’a_2’,’···,’a_n’);建立传递函数时,将传递函数的分子、分母多项式的系数写成两个向量,然后用tf()函数来给出,还可以建立零、极点形式的传递函数,采用的函数为zpk(z,p,k);可用函数sys=series(sys1,sys2)来实现串联,用 sys=parallel(sys1,sys2)来实现并联,可用函数sys=feedback(sys1,sys2,sign)来实现系统的反馈连接,其中sign用来定义反馈形式,如果为正反馈,则sign=+1,如果为负反馈,则sign=-1。 二、实验目的 通过MATLAB软件对微分方程、传递函数和动态结构图等进行处理,观察并分析实验结果。 三、实验环境 MATLAB2012b 四、实验步骤 1、拉氏变换 syms s t; ft=t^2+2*t+2; st=laplace(ft,t,s) 2、拉式反变换 syms s t; Fs=(s+6)/(s^2+4*s+3)/(s+2); ft=ilaplace(Fs,s,t) 3、多项式求根 p=[1 3 0 4]; r=roots(p) p=poly(r) 4、多项式相乘 p=[ 3 2 1 ];q=[ 1 4];

用matlab实现碰撞模型程序代码

用m a t l a b实现碰撞模型程序代码 标准化工作室编码[XX968T-XX89628-XJ668-XT689N]

c l c; clear; fill([6,7,7,6],[5,5,0,0],[0,0.5,0]);%右边竖条的填充 holdon;%保持当前图形及轴系的所有特性 fill([2,6,6,2],[3,3,0,0],[0,0.5,0]);%左边竖条的填充 holdon;%保持当前图形及轴系的所有特性 t1=0:pi/60:pi; plot(4-2*sin(t1-pi/2),5-2*cos(t1-pi/2));%绘制中间的凹弧图形gridon;%添加网格线 axis([0,9,0,9]);%定义坐标轴的比例% axis('off');%关闭所有轴标注,标记,背景 fill([1,2,2,1],[5,5,0,0],[0,0.5,0]);%中间长方形的填充 holdon;%保持当前图形及轴系的所有特性 title('碰撞');%定义图题 x0=6; y0=5; head1=line(x0,y0,'color','r','linestyle','.','erasemode','xor','marke rsize',30); head2=line(x0,y0,'color','r','linestyle','.','erasemode','xor','marke rsize',50);%设置小球颜色,大小,线条的擦拭方式 t=0;%设置小球的初始值 dt=0.001;%设置运动周期 t1=0;%设置大球的初始值 dt1=0.001; while1%条件表达式 t=t+dt; x1=9-1*t; y1=5; x3=6; y3=5; ift>0 x2=6; y2=5;%设置小球的运动轨迹 end ift>2.8 t=t+dt; a=sin(t-3); x1=6.1; y1=5.1; x3=4-2*sin(1.5*a); y3=5-2*cos(1.5*a);%设置大球的运动轨迹 end

飞机碰撞模型

飞机碰撞模型 摘要 第六架在边长为160km的正方形区域内以的飞行角从坐标为(0,0)的点出发,在飞行过程中不与其它五架飞机发生碰撞,即在该区域内与其它任意飞机的距离大于8km,就要不断调整该飞机的飞行角度,使其任意时刻与其他飞机的距离大于8km,利用空间中点的距离定义,计算任意时刻该飞机与其他飞机的距离,找到调整角度的最小值为。 1、问题重述 在约10000km高空的某边长160km的正方形区域内,有5架飞机均以800km/h的速度作水平飞行,不碰撞的标准为在该区域内任意两架飞机的距离大于8km。现有5架飞机在区域内飞行且它们不会碰撞,其初始坐标和飞行方向由下表给出: 现有第6架飞机要进入该区域,坐标为(0,0),飞行角为,如果其与内部的5架飞机发生碰撞,就需要调整其飞行角度,请建立优化模型,确定其与内部5架飞机不碰撞的最小调整角。 2、基本假设 1、五架飞机在规定正方形区域飞行中不随意改变路线; 2、飞机在飞行中不考虑其他未知因素; 3、符号说明 :正方形区域的边长; :第i架飞机飞行的方向角度; :第六架飞机飞行过程中的调整角度; :第架、第架飞机的距离; :第架飞机在区域内飞行的路线长度; :第架飞机的飞行速度; :第架飞机在区域内的飞行时间; :第i架飞机的横坐标; :第i架飞机的纵坐标; 4、模型的建立与求解 1、模型的建立 先根据五架飞机起始点与终点坐标,在规定的网格区域内画出它们的飞行路线,再根据给出的区域长度与各架飞机飞行速度,计算出各架飞机在区域内的飞行时间, 再根据计算得出的时间,得出时刻各架飞机的坐标,求出在该时刻第六架飞机与其他五架飞机的距离 即 当<8时,此时就需要调整第六架飞机的飞行角度,使其与另外五架飞机

用matlab实现碰撞模型程序代码

clc; clear; fill([6,7,7,6],[5,5,0,0],[0,0.5,0]);%右边竖条的填充 hold on; %保持当前图形及轴系的所有特性 fill([2,6,6,2],[3,3,0,0],[0,0.5,0]);%左边竖条的填充 hold on;% 保持当前图形及轴系的所有特性 t1=0:pi/60:pi; plot(4-2*sin(t1-pi/2),5-2*cos(t1-pi/2));%绘制中间的凹弧图形 grid on;%添加网格线 axis([0,9,0,9]);%定义坐标轴的比例% axis('off');%关闭所有轴标注,标记,背景 fill([1,2,2,1],[5,5,0,0],[0,0.5,0]);%中间长方形的填充 hold on;% 保持当前图形及轴系的所有特性 title('碰撞');%定义图题 x0=6; y0=5; head1=line(x0,y0,'color','r','linestyle','.','erasemode','xor','markersize',30); head2=line(x0,y0,'color','r','linestyle','.','erasemode','xor','markersize',50); %设置小球颜色,大小,线条的擦拭方式 t=0;%设置小球的初始值 dt=0.001;%设置运动周期 t1=0;%设置大球的初始值 dt1=0.001; while 1%条件表达式 t=t+dt; x1=9-1*t; y1=5; x3=6; y3=5; if t>0 x2=6; y2=5;%设置小球的运动轨迹 end if t>2.8 t=t+dt; a=sin(t-3); x1=6.1; y1=5.1; x3=4-2*sin(1.5*a); y3=5-2*cos(1.5*a);%设置大球的运动轨迹

基于MATLAB的地震正演模型实现[1]

基于MATLAB的地震正演模型实现 贾跃玮 (中国地质大学(北京) 北京100083) 摘 要 人工合成地震正演模型是进行三维模型计算的基础。针对地震勘探的原理,本文运用MATLAB强大数学计算和图像可视化功能,对一个三层介质模型制作了人工合成地震记录。文章首先说明了地震记录形成的物理机制,然后介绍了地质模型的构造及参数选择,最后针对该具体地质模型制作了合成地震记录。 关键词 地震;MATLAB;正演 0引 言 地震勘探就是利用地下介质弹性和密度的差异,通过观测和分析大地对人工激发地震波的响应,推断地下岩层的性质和形态的地球物理方法。地震勘探是钻探前勘测石油与天然气资源的重要手段,在煤田和工程地质勘查、区域地质研究和地壳研究等方面,也得到广泛应用。 人工合成二维地震模型记录是各种复杂地震模型正演计算的基础,是对地震勘探经典理论的忠实实现。在实际工作中,针对具体地质构造进行二维地震模拟能够有效帮助地球物理工作者在地震剖面上识别各种地质现象。MATLAB环境集编程、画图于一体,特别适合人工合成地震记录的快速实现。因此,我们在MATLAB环境下设计了一个三层地质模型,并对该模型模拟了地震记录,旨在可视化地观察地震波场记录特征并验证地震褶积模型。 1地震记录形成的物理机制 在地震记录上看到的波形是地震子波叠加的结果,从地下许多反射界面发生反射时形成的地震子波,振幅大小决定于反射界面反射系数的绝对值,极性的正负决定于反射系数的正负,到达时间的先后取决于界面深度和覆盖层的波速。若地震子波波形用S(t)表示,反射系数是双程垂直反射旅行时t的函数,用R(t)表示,地震记录f(t)形成的物理过程在数学上就可表示为:f(t)=S(t)3R(t)=∫0T S(τ)R(t-τ)dτ 地震子波和反射系数资料常常不易取得,因此计算时常做这样一些假设: (1)地质模型的建立是来自大量观察实际地质结构的经验性归纳总结。 (2)为了模型建立和计算过程中突出理论数值,去除了一些干扰因素,对一切衰减、噪声都不进行考虑。 (3)地层在横向上均匀,纵向上是由大量具有不同弹性性质的薄层构成。 (4)地震子波以平面波形式垂直入射到界面,各薄层的反射子波与地震子波形状相同,只是振幅及极性不同。 (5)所有波的转换、吸收及绕射等能量损失都不考虑。 基于以上这些假设条件进行地震记录合就必须已知地震子波以及地层的反射系数,而反射系数又主要由地层的波阻抗反映,所以必须首先获取地层的速度和密度资料。 速度资料可通过连续速度测井获得,密度资料可从密度测井获得,得不到密度资料时,可近似假定密度不变,以速度曲线代替波阻抗曲线来计算反射系数。加德纳根据实际资料提出了一个由速度推算密度的经验公式: ρ=0.23V0.25 (速度单位:英尺/秒) 或 ρ=0.31V0.25 (速度单位:米/秒)

完全弹性碰撞matlab

Matlab设计实验 课题名称:完全弹性碰撞 一.设计背景: 完全弹性碰撞(Perfect Elastic Collision):在理想情况下,完全弹性碰撞的物理过程满足动量守恒和能量守恒。如果两个碰撞小球的质量相等,联立动量守恒和能量守恒方程时可解得:两个小球碰撞后交换速度。如果被碰撞的小球原来静止,则碰撞后该小球具有了与碰撞小球一样大小的速度,而碰撞小球则停止。多个小球碰撞时可以进行类似的分析。 二.设计意义 真实情况下,由于小球间的碰撞并非理想的弹性碰撞,还会有能量的损失,所以最后小球还是要停下来。 所以该设计主要用于研究能量守恒中的某些问题。还有就是用于实验演示。三.程序设计 该程序主要设置了三个不同颜色的小球,在真空环境下(理想环境下)的碰撞实验演示。 该程序可以通过改变各种参数,研究各种情况下的实验数据。 程序: pole=1.8;%定义摆线的长度 xmax=2;%定义横坐标长度 ymax=2;%定义纵坐标长度 basew=2.3;%定义图中方框的宽度 baseh=2.3;%定义图中方框的高度 instant=0.2;%定义摆线间距 %三视图的初始设置 %第一幅图

figure('name','理想情况下能量守恒定律 1','position',[500,340,440,320]);%定义第一幅图的标题和位置 fill([xmax,xmax,-xmax,-xmax,xmax,xmax-0.05,xmax-0.05,- xmax+0.05,-xmax+0.05,xmax-0.05],[ymax,-ymax,- ymax,ymax,ymax,ymax-0.05,-ymax+0.05,-ymax+0.05,ymax- 0.05,ymax-0.05],[0,1,1]); %填充底座背景 hold on;%保持当前图形及坐标所有特性 fill([xmax-0.05,xmax-0.05,-xmax+0.05,-xmax+0.05],[ymax- 0.5 ,ymax-0.55,ymax-0.55,ymax-0.5],'g');%填充方框内横杆背景 hold on;%保持当前图形及坐标所有特性 text(-0.25,1.7,'1');text(0,1.7,'2');text(0.25,1.7,'3');%在坐标处标识 说明文字 text( -1.0,1.7,'a');text( -1.0,-1.7,'b');%在坐标处标识说明文字 text(1.0,1.7,'真空容器');text(-1.8,1.7,'主视图');%在坐标处标识说明文 字 axis([-basew,basew,-baseh,baseh]);%定义背景坐标范围在x(-2.3~2.3) Y(-2.3~2.3)之间 %axis('off');%覆盖坐标刻度并填充背景 theta0=7 *pi/6;%摆线1的初始角度 x0=pole*cos(theta0);%摆线1末端x坐标 y0=pole*sin(theta0)+1.5;%摆线1末端y坐标 body1=line([-instant,x0-instant],[1.5,y0],'color','r','linestyle','- ','erasemode','xor');%设置摆线1 head1=line(x0- instant,y0,'color','r','linestyle','.','erasemode','xor','markersize',40);%设置第一个小球颜色,大小 theta1=3*pi/2;%摆线2,3的角度 x1=pole*cos(theta1);%摆线2,3末端x坐标 y1=pole*sin(theta1)+1.5;%摆线2,3末端y坐标 body=line([-0.001,x1],[1.5,y1],'color','k','linestyle','- ','erasemode','xor');%设置摆线2

实验四 用MATLAB求解状态空间模型

实验四 用MATLAB 求解状态空间模型 1、实验设备 MATLAB 软件 2、实验目的 ① 学习线性定常连续系统的状态空间模型求解、掌握MATLAB 中关于求解该模型的主要函数; ② 通过编程、上机调试,进行求解。 3、实验原理说明 Matlab 提供了非常丰富的线性定常连续系统的状态空间模型求解(即系统运动轨迹的计算)的功能,主要的函数有: 初始状态响应函数initial()、阶跃响应函数step()以及可计算任意输入的系统响应数值计算函数lsim()和符号计算函数sym_lsim()。 数值计算问题可由基本的Matlab 函数完成,符号计算问题则需要用到Matlab 的符号工具箱。 4、实验步骤 ① 根据所给状态空间模型,依据线性定常连续系统状态方程的解理论,采用MATLAB 编程。 ② 在MATLAB 界面下调试程序,并检查是否运行正确。 习题1:试在Matlab 中计算如下系统在[0,5s]的初始状态响应,并求解初始状态响应表达式。 Matlab 程序如下: A=[0 1; -2 -3]; B=[]; C=[]; D=[]; x0=[1; 2]; sys=ss(A,B,C,D); [y,t,x]=initial(sys,x0,0:5); plot(t,x) 0011232????==????--????x x x

习题2:试在Matlab 中计算如下系统在[0,10s]内周期为3s 的单位方波输入下的状态响应。并计算该系统的单位阶跃状态响应表达式。 Matlab 程序如下: A=[0 1; -2 -3]; B=[0; 1]; C=[]; D=[]; x0=[1; 2]; sys=ss(A,B,C,D); [u t]=gensig('square',3,10,0.1) 0011232????==????--???? x x x

Matlab 通信系统建模与仿真例题源代码-第二章

% ch2example1prg1.m dt=1e-4; % 仿真采样间隔 T=3*1e-3; % 仿真终止时间 t=0:dt:T; input=2*cos(2*pi*1000*t); % 输入被调信号 carrier=5*cos(2*pi*1e4*t); % 载波 output=(2+0.5*input).*carrier; % 调制输出 % 作图: 观察输入信号, 载波, 以及调制输出 subplot(3,1,1); plot(t,input,'LineWidth',3);xlabel('时间 t');ylabel('被调信号'); subplot(3,1,2); plot(t,carrier,'LineWidth',3);xlabel('时间t');ylabel('载波'); subplot(3,1,3); plot(t,output,'LineWidth',3);xlabel('时间t');ylabel('调幅输出'); % ch2example1prg2.m clear; % 清空内存变量,以避免以往运行的结果影响本程序 dt=1e-5; % 仿真采样间隔 T=3*1e-3; % 仿真终止时间 t=0:dt:T; for k=1:length(t) % 基于时间流的仿真计算 input(k)=2*cos(2*pi*1000*t(k)); % 第k个仿真步进时的输入被调信号 carrier(k)=5*cos(2*pi*1e4*t(k)); % 第k个仿真步进时的载波output(k)=(2+0.5*input(k)).*carrier(k);% 第k个仿真步进时的调制输出end % 作图: 观察输入信号, 载波, 以及调制输出 subplot(3,1,1); plot(t,input,'LineWidth',3);xlabel('时间 t');ylabel('被调信号'); subplot(3,1,2); plot(t,carrier,'LineWidth',3);xlabel('时间t');ylabel('载波'); subplot(3,1,3); plot(t,output,'LineWidth',3);xlabel('时间t');ylabel('调幅输出'); % ch2example1prg3.m dt=1e-6; % 仿真采样间隔 T=2*1e-3; % 仿真的帧周期 for N=0:500 % 总共仿真的帧数 t=N*T+(0:dt:T); % 帧中的取样时刻 input=2*cos(2*pi*1005*t); % 输入被调信号 carrier=5*cos(2*pi*(1e4)*t+0.1*randn); % 载波 output=(2+0.5*input).*carrier; % 调制输出

实验利用MATLAB求取状态空间模型的相似变换及其标准型控制系统的不同状态模型实现

现代控制理论第一次上机实验报告 实验三 利用MATLAB 求取状态空间模型的相似变换及其标准型、 控制系统的不同状态模型实现 实验目的: 1、通过实验掌握线性系统的对角线标准型、约旦标准型、模态标准型以及伴随矩阵标准型的表示及相应变换阵的求解; 2、通过编程、上机调试,掌握系统可控性和可观测性的判别方法、系统的可控性和可观测性分解等; 3、加深理解由控制系统传递函数建立能控、能观、约当标准型等不同状态模型的方法。 实验要求: 1.实现同一系统传递函数的状态模型是唯一的吗? 2.系统传递函数除上面三种不同状态模型实现外,常见的还有串连实现,对否? 3.对于上述系统传递函数,其输出稳态值与输入阶跃信号幅值有何关系? 实验步骤: 1. 根据所给系统的已知条件(可自行参阅选择刘豹教材中的例题或习题),如传递函数、零极点模型或(A 、B 、C 、D ),实现状态空间模型之间的相似变换、写出其对角线标准型、约当标准型、模态标准型以及伴随矩阵标准型的表示及求解相应变换阵,采用MATLAB 的相关函数编写m-文件。 已知系统的传递函数如下: 3211()(1)( 2.5)(5)8.52012.5160.270.11 2.55 G s s s s s s s s s s ==++++++-=+++++ 运行如下m-文件,得到传递函数的状态空间模型: num=[0 0 0 1]; den=[1 8.5 20 12.5]; [A,B,C,D]=tf2ss(num,den) 得到 A = -8.5000 -20.0000 -12.5000 1.0000 0 0 0 1.0000 0 B = 1 C =

如何用matlab建立环境模型及源代码

环境建模 机器人的采摘环境,根据机械手末端识别技术,将识别的树叶,树枝等障碍物栅格化,不足一格的近似为一格,建立二维环境模型。采摘环境的建立:建立环境地图的方法主要有栅格法、自由空间法、广义锥法、链接图法、几何信息法等。【基于蚁群算法的移动机器人路径规划技术的研究刘杰闫清东】 3.1.1 可视图法 可视图法将环境中的任意障碍物描述成不规则多边形,机器人或者机械手描述为一个质点,并把起始点、目标点以及障碍物简化成的不规则多边形的顶点连接起来,同时去除和障碍物相交的直线,那么剩下的直线都是与障碍物无碰的,机器人在这些直线上选择路径就不会与障碍物发生碰撞,要搜索避障路径,只需要在这些直线上通过一些搜索算法确定路径点即可。但是,随着起始点和目标点位置的改变,可视图法就必须根据环境来重新定义,这样增加了计算量,降低了灵活性。 3.1.2 自由空间法 在自由空间中一般采用凸区法、三角形法、广义锥法等描述障碍物,并构造连通图进行路径规划。首先,它把环境空间中的障碍物简单描述成自由空间中的不规则多边形,然后,利用某些图论方法建立连通图,最后在建立好的连通图上搜索合适的路径点以至形成一条可行走的路径。这种方法优点是在确定工作环境空间以后,无论起始点和目标点的位置怎么改变,环境模型也不需要重新建立,其缺点是随着障碍物增加,算法的计算时间几何级变长,而且往往搜索到的路径都不是最优的。同时,自由空间法一般应用于二维平面空间中进行路径规划,在三维空间中很难建立环境模型,如果非要应用到三维空间中,计算量将是二维空间的无数倍。 3.2 栅格法 栅格法建立环境地图的原理是M.B.Metea首先提出的,在平面而为坐标中,用0

用matlab实现碰撞模型程序代码

用m a t l a b实现碰撞模型 程序代码 This manuscript was revised on November 28, 2020

c l c; clear; fill([6,7,7,6],[5,5,0,0],[0,0.5,0]);%右边竖条的填充 holdon;%保持当前图形及轴系的所有特性 fill([2,6,6,2],[3,3,0,0],[0,0.5,0]);%左边竖条的填充 holdon;%保持当前图形及轴系的所有特性 t1=0:pi/60:pi; plot(4-2*sin(t1-pi/2),5-2*cos(t1-pi/2));%绘制中间的凹弧图形gridon;%添加网格线 axis([0,9,0,9]);%定义坐标轴的比例% axis('off');%关闭所有轴标注,标记,背景 fill([1,2,2,1],[5,5,0,0],[0,0.5,0]);%中间长方形的填充 holdon;%保持当前图形及轴系的所有特性 title('碰撞');%定义图题 x0=6; y0=5; head1=line(x0,y0,'color','r','linestyle','.','erasemode','xor','marke rsize',30); head2=line(x0,y0,'color','r','linestyle','.','erasemode','xor','marke rsize',50);%设置小球颜色,大小,线条的擦拭方式 t=0;%设置小球的初始值 dt=0.001;%设置运动周期 t1=0;%设置大球的初始值 dt1=0.001; while1%条件表达式 t=t+dt; x1=9-1*t; y1=5; x3=6; y3=5; ift>0 x2=6; y2=5;%设置小球的运动轨迹 end ift>2.8 t=t+dt; a=sin(t-3); x1=6.1; y1=5.1; x3=4-2*sin(1.5*a); y3=5-2*cos(1.5*a);%设置大球的运动轨迹 end

相关文档
最新文档