《建模与仿真及其医学应用》精Word文档下载推荐.docx
《《建模与仿真及其医学应用》精Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《建模与仿真及其医学应用》精Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
(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'
)
将连续系统状态空间—离散系统状态空间
'
:
'
zoh'
零阶重构器zeroorderhold
foh'
一阶重构器firstorderhold
②[NUMd,DENd]=C2DM(NUM,DEN,Ts,'
)
将连续系统传递函数—离散系统传递函数
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'
为零阶保持器
②'
为一阶保持器
③'
tustion'
为双线性变换法,
④'
prewarp'
为改进的双线性变换法
⑤'
matched'
使连续和离散系统具有匹配的DC增益
连续系统传递函数
,采用一阶采样保持器,采样周期为
,求其离散化系统模型,并比较离散前后系统阶跃响应。
用MATLAB编写程序:
%mp2-3
sysc=tf([l-1],[145],'
td'
0.35);
%timedelay
sysd=c2d(sysc,0.l,'
)
step(sysc,sysd);
运行结果:
Transferfunction:
Samplingtime:
0.1
离散前后系统阶跃响应比较
四、实验内容
1.求解方程
在不同
值的解,
①
=1,
;
初值
②
=2,
③