《建模与仿真及其医学应用》精.docx
- 文档编号:2937930
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:22
- 大小:194.86KB
《建模与仿真及其医学应用》精.docx
《《建模与仿真及其医学应用》精.docx》由会员分享,可在线阅读,更多相关《《建模与仿真及其医学应用》精.docx(22页珍藏版)》请在冰豆网上搜索。
《建模与仿真及其医学应用》精
《建模与仿真及其医学应用》
实验讲义
天津医科大学生物医学工程系
2004年
实验一系统建模的MATLAB实现
一、实验目的:
1.学习MATLAB基本知识。
2.掌握数学模型的MATLAB实现:
时域模型、状态空间模型和零极点模型。
3.学习用MATLAB实现系统外部模型到内部模型的转换。
4.学习用MATLAB实现系统模型的连接:
串联、并联、反馈连接。
5.了解模型降阶的MATLAB实现。
二、实验内容
1.系统的实现、外部模型到内部模型的转换
(1)给定连续系统的传递函数
,利用MATLAB建立传递函数模型,微分方程,并转换为状态空间模型。
(2)已知某系统的状态方程的系数矩阵为:
利用MATLAB建立状态空间模型,并将其转换为传递函数模型和零极点模型。
(3)已知系统的零极点传递函数为
,利用MATLAB转换为传递函数模型和状态空间模型。
2.系统的离散、连接、降阶
(1)给定连续系统的传递函数
,将该连续系统的传递函数用零阶重构器和一阶重构器转换为离散型传递函数,抽样时间T=1秒。
(2)该系统与系统
分别①串联②并联③负反馈连接,求出组成的新系统的传递函数模型。
(3)将串联组成的新系统进行降阶处理,求出降阶后系统的模型,并用plot图形比较降阶前后系统的阶跃响应。
要求:
将以上过程用MATLAB编程(M文件)实现,运行输出结果。
三、实验说明—关于系统建模的主要MATLAB函数
1.建立传递函数模型:
tf函数:
格式:
sys=tf(num,den)
num=[bm,bm-1,……,b0]分子多项式系数
den=[an,an-1,……,a0]分母多项式系数
2.建立状态空间模型:
ss函数:
格式:
sys=ss(a,b,c,d)%a,b,c,d为状态方程系数矩阵
sys=ss(a,b,c,d,T)%产生离散时间状态空间模型
3.建立零极点模型的函数:
zpk
格式:
sys=zpk(z,p,k)
4.模型转换函数:
tf2sstf2zpss2tfss2zpzp2tfzp2ss
%2为to的意思
格式:
[a,b,c,d]=tf2ss(num,den)
[z,p,k]=tf2zp(num,den)
[num,den]=ss2tf(a,b,c,d,iu)%iu指定是哪个输入
[z,p,k]=ss2zp(a,b,c,d,iu)]
[num,den]=zp2tf(z,p,k)
[a,b,c,d]=zp2ss(z,p,k)
5.模型的连接
串联:
sys=series(sys1,sys2)
并联:
sys=parallel(sys1,sys2)
反馈连接:
sys=feedback(sys1,sys2,sign)%负反馈时sign可忽略;正反馈时为1。
6.系统扩展:
把若干个子系统组成系统组。
格式:
sys=append(sys1,sys2,…)
7.模型降阶
(1)基于平衡的状态空间实现--balreal
格式:
sysb=balreal(sys)
[sysh,g,T,Ti]=balreal(sys)
sys为原系统,sysb(sysh)为平衡实现系统,g为平衡对角线矩阵,T为状态变换矩阵,Ti是前者的逆矩阵。
两种格式的区别:
前者只给出原系统的一个平衡的状态空间实现,而后者还给出平衡实现的对角线矩阵g,从中可以看出哪个状态变量该保留,哪个状态变量该删去,从而实现降阶。
(2)降阶的实现—modred
格式:
rsys=modred(sys,elim)
rsys=modred(sys,elim,’mde’)
rsys=modred(sys,elim,’del’)
强调:
这里的sys应是函数balreal()变换的模型,elim为待消去的状态,’mde’指降阶中保持增益匹配,’del’指降阶中不保持增益匹配。
8.连续系统模型离散化
函数:
C2DMConversionofcontinuousLTIsystemstoiscrete-time.
格式:
①[Ad,Bd,Cd,Dd]=C2DM(A,B,C,D,Ts,'method')
将连续系统状态空间—离散系统状态空间
'method':
'zoh'零阶重构器zeroorderhold
'foh'一阶重构器firstorderhold
②[NUMd,DENd]=C2DM(NUM,DEN,Ts,'method')
将连续系统传递函数—离散系统传递函数
G(s)=NUM(s)/DEN(s)toG(z)=NUMd(z)/DENd(z).
四、实验报告要求
1.整理好经过运行并证明是正确的程序,必要的地方加上注释。
2.给出实验的结果。
实验二连续系统的数字仿真
一、计算机仿真
在计算机支持下进行的现代仿真技术称为计算机仿真。
仿真不单纯是对模型的实验,它包括建立模型、仿真运行和分析研究仿真结果,即建模——实验——分析的全过程。
MATLAB提供各种用于系统仿真的函数,用户可以通过m文件调用指令和函数进行系统仿真,也可以通过Simulink工具箱,进行面向系统结构方框图的系统仿真。
这两种方式可解决任意复杂系统的动态仿真问题,前者编辑灵活,而后者直观性强,实现可视化编辑。
内容:
连续系统仿真:
数值积分法、离散相似法
离散事件系统仿真
SIMULINK动态仿真
二、基于数值积分法的连续系统仿真
1.数值积分法的MATLAB函数
MATLAB的工具箱提供了各种数值积分方法函数:
格式:
[T,Y]=solver(‘F’,TSPAN,Yo,OPTIONS)
solver为微分方程的求解函数名。
F为系统模型文件名,模型为
TSPAN=[ToTfinal]为积分区间,初值—终值,
Yo为系统输出初始值,即To时刻的初值列向量;
OPTIONS设置积分相对允误’RelTol’和绝对允误’AbsTol’,
缺省时,RelTol=1e-3,AbsTol=1e-6.
输出参数T和Y为列向量,T为时刻向量,Y表示不同时刻的函数值。
系统模型函数的编写格式是固定的,如果其格式没有按照要求去编写则将得出错误的求解结果,系统模型函数的引导语句为:
functionxdot=模型函数名(t,x,附加参数)
其中t为时间变量,x为状态变量,xdot为状态变量的导数。
如果有附加参数需要传递,则可以列出,中间用逗号分开。
solver:
ode23Runge-Kutta法三阶积分算法、二阶误差估计、变积分步长的低阶算法
ode45Runge-Kutta法,变步长的中等阶次积分算法
ode113变阶的Adams-Bashforth-Moulton,多步长
ode15s改进的Gear法,用于刚性方程的求解。
例:
求微分方程
,
,
先建立一个系统模型文件(m文件函数)dfun.m
functiony=dfun(t,x)
y=sqrt(x)+5;
然后建立m文件mp2-1
%mp2-1
[t,x]=ode23('dfun',[010],1)
plot(t,x)
结果:
tx
01.0000
0.01331.0803
0.08001.4890
0.27202.7263
0.56854.7800
1.03568.3035
1.758914.3405
2.758923.6778
3.758934.0341
4.758945.3214
5.758957.4815
6.758970.4721
7.758984.2612
8.758998.8230
9.7589114.1365
10.0000117.9384
2.对于高阶常微分方程,
则可以选择一组状态变量
,将原高阶微分方程模型变换成以下的一阶微分方程组形式:
例:
可变换成
functiomy=vdp_eq(t,x,mu)
y=[x
(2);-mu*(x
(1).^2-1).*x
(2)-x
(1)]
三、基于离散相似法的连续系统仿真
所谓离散相似法是首先将连续系统模型离散化,得到等价的或相似的离散化的模型,然后对相似的离散模型进行仿真计算。
根据这一原理,首先应将连续时间系统模型转换为等价的离散时间系统模型。
连续系统离散化处理是通过①转移矩阵法;②采样和信号保持器;③变换法(如双线性变换)来实现的。
1.转移矩阵法的实现:
如果连续系统的状态空间模型为:
则其离散状态空间模型为:
其中
状态转移矩阵(矩阵指数)
由此可知,利用状态方程离散化时的主要问题是如何计算
、
。
对于一阶、二阶环节,
、
可以用解析方法求出来,而对于高阶及多输入多输出系统,就要采用数值解法。
MATLAB提供了计算矩阵指数的函数——expm,
EXPMMatrixexponential.
EXPM(X)isthematrixexponentialofX.EXPMiscomputedusingascalingandsquaringalgorithmwithaPadeapproximation.
EXPM1,EXPM2andEXPM3arealternativemethods.
例:
,
求
、
。
%mp2-2
A=[01;0-1];%Definesystemmatrices
B=[0;1];
t=0.1
symstau%Definetautobesymbolic
phi=expm(A*t)%Symbolicallycalculatee^(A*t)
phim1=int(expm(A*(t-tau)),tau,0,t)*B
phim=sym2poly(phim1)%将符号运算转换为数值
结果:
phi=1.00000.0952
00.9048
phim1=[-9/10+exp(-1/10)]
[1-exp(-1/10)]
phim=0.0048
0.0952
2.采样和信号保持器以及双线性变换法的实现:
MATLAB还提供了通过采样和信号保持器以及双线性变化法将连续系统模型转换为离散时间系统模型的函数C2D,调用格式为
sysd=c2d(sys,Ts,method)
其中,sys为线性连续时间系统;Ts为采样时间;sysd为等价的离散时间系统。
method为离散化方法,可以选用:
①'zoh'为零阶保持器
②'foh'为一阶保持器
③'tustion'为双线性变换法,
④'prewarp'为改进的双线性变换法
⑤'matched'使连续和离散系统具有匹配的DC增益
例:
连续系统传递函数
,采用一阶采样保持器,采样周期为
,求其离散化系统模型,并比较离散前后系统阶跃响应。
用MATLAB编写程序:
%mp2-3
sysc=tf([l-1],[145],'td',0.35);%timedelay
sysd=c2d(sysc,0.l,'foh')
step(sysc,sysd);
运行结果:
Transferfunction:
Samplingtime:
0.1
离散前后系统阶跃响应比较
四、实验内容
1.求解方程
在不同
值的解,
①
=1,
;初值
;
②
=2,
;初值
;
③
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 建模与仿真及其医学应用 建模 仿真 及其 医学 应用
![提示](https://static.bdocx.com/images/bang_tan.gif)