《simulink及模型转换》由会员分享,可在线阅读,更多相关《simulink及模型转换(96页珍藏版)》请在金锄头文库上搜索。
1、.,通常用颜色来区分程序内容的类别: 绿色:注释部分程序不执行 黑色:程序主题部分 红色:属性值的设定 蓝色:控制流程,比for,ifthen等语句,t=0:0.1:7; x=sin(t); plot(t,x,k); title(正弦曲线); xlabel(x轴); ylabel(y轴);,s=0; a=12,13,14;15,16,17;18,19,20;21,22,23; for k=a s=s+k; s end disp(s);%输出行向量,.,.,Simulink在系统仿真中的应用,Simulink是一种用于在MATLAB下建立模块化的集成软件工具包。,Simulink建模的基础知识,
2、Simulink含两层含义:“Simu”表示仿真(simulation);而link表示它能够进行系统连接,即:把一系列模块连接起来,构成复杂的系统模型。正是由于它的这些功能和特色,使得它成为计算机仿真领域首选的仿真环境。,前面涉及到的仿真都是较为简单的静态仿真,为了处理更复杂的和时间有关的动态系统,就必须学习simulink的使用。Simulink是matlab提供的实现系统建模和仿真的一个软件包。它让用户把精力从编程转向模型的构造。,.,启动simulink, 只需要在 matlab命 令窗口输入: simulink 或者单击命 令窗口里 工具栏上 的按钮。,Simulink库浏览器,.,
3、模型窗口,Simulink最让人振奋的一点就是支持图形用户界面。,.,SIMULINK的基本操作,1、SIMULINK窗口:库浏览器、 SIMULINK模型窗口,2、 SIMULINK模块操作: 模块是建立SIMULINK模型的基本单元,用适当的方式把各种 模块连接在一起就能够建立任何动态系统模型。,选取模块、放大或缩小模块、改变模块名字,双击某一模块或在模块上单击鼠标右键,选择Block Parameters可以对参数进行设置,选择Block Properties可以设置和查看模块的特性。,模块的连线:移动鼠标到某一模块的输出端,鼠标的箭头会变成十字形光标,按住鼠标左键移动鼠标到另一模块的输
4、入端,当十字光标出现重影时,释放左键即可。P115,.,2 SIMULINK的基本模块,在SIMULINK中包含: 连续系统模块库(Continuous)、 离散系统模块库(Discrete)、 数学运算模块库(Math)、 非线性模块库(Nonlinear)、 信号与系统模块库(Signal den=conv( conv(conv(1 0 0,3 1),conv(1 2,1 2), 5 0 3 8 ); printsys(num,den,s); tf(num,den),.,3系统的零极点(ZPK)形式模型,在MATLAB中零极点可以分别定义为,使用zpk( )函数建立零极点形式的系统模型,其
5、基本格式为,如果已知传递函数,可按以下方法求得z和p,.,运行命令,结果为,z=-4; p=-1 -2 -3; k=5; sys=zpk(z,p,k),.,4系统的部分分式形式,传递函数也可以表示成为部分分式或留数形式,如下式,例,写出以下传递函数的部分分式形式,运行命令,结果为,这表示,residue,余数,.,5系统的状态空间(state space)模型,在MATLAB中建立系统模型的基本格式,.,例:某线性定常系统的状态空间表达式如下,请输入到MATLAB的work space中去。,运行命令,结果为,.,4.2.2 离散系统数学模型,离散系统常用的数学模型通常可以用差分方程、脉冲传递
6、函数(或Z传递函数)、状态空间表达式三种形式对系统加以描述。,1系统差分方程形式模型,.,函数tf( )也可建立脉冲传递函数的系统模型,其基本格式为,其中,Ts为系统采样周期。,对于离散系统,也可以用zpk( )函数建立零极点模型,基本格式为,3系统的状态空间模型,在MATLAB中建立系统模型的基本格式,printsys(num,den, z),.,例, 假设某离散系统的脉冲传递函数为,采样周期为 T=0.1秒,将其输入到MATLAB的workspace中,并且绘制零、极点分布图。并且将该离散系统脉冲传递函数模型转换成状态空间表达式。,再输入,输入下列语句,运行结果为,num=0.31 0.5
7、7 0.38 0.89; den=1 3.23 3.98 2.22 0.47; Gyu=tf(num,den,0.1),.,计算机绘制出零极点分布图pzmap,再输入,得到,.,4.2.3 系统模型参数的获取,对于连续系统,调用格式为,对于离散系统,调用格式为,V表示返回的数据行向量,只适用于单输入单输出系统。,.,4.3 系统数学模型的转换,4.3.1 系统模型向状态方程形式转换,直接利用MATLAB函数实现所需要的系统模型向状态方程的转换,基本格式为,(注意:在英语中, 2和to谐音),【例4-2】 已知系统传递函数如下,应用MATLAB的函数将其转换为状态方程形式的模型。,可以将任意线性
8、定常系统模型转换为状态方程,.,MATLAB求解m文件如下:,运行结果为,num=12 24 0 20; den=2 4 6 2 2; A,B,C,D=tf2ss(num,den),.,4.3.2 系统模型向传递函数形式转换,1状态空间模型向传递函数形式转换,MATLAB提供了函数ss2tf( )实现将状态空间方程转换为传递函数形式,基本格式为,其中,iu用于指定变换所使用的输入量。,还可以采用下面的方式,即,.,【例4-3】 某线性定常系统的状态空间表达式如下,求该系统的传递函数。,编写m文件如下:,运行结果为,A=0 1 0;0 0 1;-10 -17 -8;B=0;0;1; C=5 6
9、1;D=0; num,den=ss2tf(A,B,C,D);G=tf(num,den),.,例,某线性定常系统的状态空间表达式如下,求该系统的传递函数矩阵。,输入并且运行以下程序,计算机输出:,.,计算机输出的计算结果表明,传递函数矩阵为,.,2零极点增益模型向传递函数形式转换,其基本格式,或,.,【例4-4】 对于例4-3题中的线性定常系统,将其转换为zpk形式,编写m文件如下,运行结果为,.,例,某线性定常系统的状态空间表达式如下,将其转换成ZPK形式,输入并且运行以下程序,计算机输出:,.,计算机输出的计算结果表明,传递函数矩阵的ZPK形式为,.,4.3.4 传递函数形式与部分分式形式的
10、转换,MATLAB提供函数residue( )实现极点留数的求取,其基本格式为,【例4-5】 某系统的传递函数如下,求它的部分分式形式。,编写m文件如下,运行结果为,表示,.,如果此时在命令窗口中输入,则计算机返回,可见,residue( )函数,既可以将传递函数形式转换成部分分式形式,也可以将部分分式形式转换成传递函数形式。,.,4.3.5 连续和离散系统之间的转换,如果对离散化处理结果提出具体的转换方式要求,则可以采用c2d或c2dm函数进行,基本格式为,(其中,Gc表示连续系统模型,Ts表示系统采样周期,method指定转换方式。“zoh”表示采用零阶保持器; “foh”表示采用一阶保持
11、器。),【例4-6】 某连续系统的状态空间表达式如下,采用零阶保持器将其离散化,设采样周期为0.1秒,求离散化的系统方程。,.,编写m文件如下,运行结果为,计算结果表示离散化后的系统方程为,.,Ad,Bd,Cd,Dd = C2DM(A,B,C,D,Ts,method),NUMd,DENd = C2DM(NUM,DEN,Ts,method),SYSD = C2D(SYSC,Ts,METHOD),A=0 1 0;0 0 1;-10 -17 -8;B=0;0;1; C=5 6 1;D=0; Ad,Bd,Cd,Dd=c2dm(A,B,C,D,0.1),.,模型转换的函数小结,residue:传递函数模
12、型与部分分式模型互换 ss2tf: 状态空间模型转换为传递函数模型 ss2zp: 状态空间模型转换为零极点增益模型 tf2ss: 传递函数模型转换为状态空间模型 tf2zp: 传递函数模型转换为零极点增益模型 zp2ss: 零极点增益模型转换为状态空间模型 zp2tf: 零极点增益模型转换为传递函数模型,.,状态空间SS,传递函数tf,零极点ZP,极点留数,ss2tf,tf2ss,zp2ss,ss2zp,zp2tf,tf2zp,residue,ss2ss,.,SYS = SS2SS(SYS,T) performs the similarity transformation z = Tx on
13、the state vector x of the state-space model SYS. The resulting state-space model is described by: . -1 z = TAT z + TB u -1 y = CT z + D u or, in the descriptor case, -1 . -1 TET z = TAT z + TB u -1 y = CT z + D u . SS2SS is applicable to both continuous- and discrete-time models. For LTI arrays SYS,
14、 the transformation T is performed on each individual model in the array.,.,4.4 控制系统模型的连接,系统模型连接的方式主要有串联、并联、反馈等形式。MATLAB提供了模型连接函数。,4.4.2 模型并联,对于SISO系统,其基本格式为,对于MIMO系统,其基本格式为,in1,in2指定了相连接的输入端。out1,out2指定了 进行信号相加的输出端。,.,.,.,Denos Example Consider a state-space system sys1 with five inputs and four ou
15、tputs and another system sys2 with two inputs and three outputs. Connect the two systems in series by connecting outputs 2 and 4 of sys1 with inputs 1 and 2 of sys2. outputs1 = 2 4; inputs2 = 1 2; sys = series(sys1,sys2,outputs1,inputs2),.,4.4.3 反馈连接,对于SISO系统,其基本格式为,其中,sign缺省时即为负反馈,sign=1时为正反馈。,对于MI
16、MO系统,其基本格式为,其中,feedin为sys1的输入向量,用来指定sys1的哪些输入与反馈环节相连接;feedout为sys1的输出向量,用来指定sys1的哪些输出端用于反馈。,.,.,【例4-7】 已知系统如图所示,利用MATLAB求出系统的状态空间表达式。,其中 sys1: , ;,sys2:,编写m文件如下,.,计算机的运行结果为,表示该反馈系统的状态空间表达式为,.,4.5 系统模型的实现,根据状态空间表达形式不同,系统状态空间实现可分为: 能控标准型实现,能观测标准型实现,对角线标准型实现, 约旦标准型实现。,设系统的微分方程为,设状态变量为,写成状态空间表达式形式为能控标准型,.,如果系统微分方程为,两边进行拉氏变换,得到传递函数,引入辅助变量 z,.,写成矩阵形式,.,【例4-8】 已知系统的状态空间表达式如下,求线性变换,将其变换成能控标准形。,编写并运行以下m文件,运行结