华中科技大学现代控制理论3.6Matlab问题.ppt
《华中科技大学现代控制理论3.6Matlab问题.ppt》由会员分享,可在线阅读,更多相关《华中科技大学现代控制理论3.6Matlab问题.ppt(69页珍藏版)》请在三一办公上搜索。
1、Ch.3 线性系统的时域分析,目录(1/1),目 录概述3.1 线性定常连续系统状态方程的解3.2 状态转移矩阵及其计算 3.3 线性时变连续系统状态方程的解3.4 线性定常连续系统的离散化3.5 线性定常离散系统状态方程的解3.6 Matlab问题本章小结,Matlab问题(1/3),3.6 Matlab问题本章中涉及的计算问题主要有矩阵指数函数的计算、系统运动轨迹的计算(即状态空间模型的求解)以及连续系统的离散化(采样)。基于Matlab的基本函数和工具箱,可以进行上述系统运动分析的计算和仿真。,Matlab问题(2/3),为更好地进行动态系统运动分析的计算和仿真,编著者设计了一个Matl
2、ab符号化和图形化的控制系统运动分析软件平台lti_analysis。这里将涉及新的Matlab程序设计方法,如使用符号计算工具箱进行矩阵指数函数和运动轨迹的符号计算、使用图形用户界面(GUI)设计控制系统仿真与实验的软件平台。,Matlab问题(3/3),下面分别介绍基于Matlab的上述问题的程序编制和计算方法,主要有矩阵指数函数的计算线性定常连续系统的状态空间模型求解 连续系统的离散化线性定常离散系统的状态空间模型求解 线性定常系统的运动分析的符号计算和仿真平台,矩阵指数函数的计算(1/1),3.6.1 矩阵指数函数的计算矩阵指数函数的计算问题有两类,一类是数值计算,即给定矩阵A和具体的
3、时间t的值,计算矩阵指数eAt的值;另一类是符号计算,即在给定矩阵A下,计算矩阵指数函数eAt的封闭的(解析的)矩阵函数表达式。数值计算问题可由基本的Matlab函数完成,符号计算问题后一类则需要用到Matlab的符号工具箱。下面就分别介绍eAt的数值计算eAt的符号计算,eAt的数值计算(1/4),1.eAt的数值计算在Matlab中,给定矩阵A和时间t的值,计算矩阵指数eAt的值可以直接采用基本矩阵函数expm()。Matlab的expm()函数采用帕德(Pade)逼近法计算矩阵指数eAt,精度高,数值稳定性好。expm()函数的主要调用格式为Y=expm(X)其中,X为输入的需计算矩阵指
4、数的矩阵,Y为计算的结果。,eAt的数值计算(2/4),Matlab问题3-1 试在Matlab中计算例3-1中矩阵A在t=0.3时的矩阵指数eAt的值。Matlab程序m3-1如下。Matlab程序m3-1执行结果如下。,在Matlab中还有3个计算矩阵指数eAt的函数,分别是expmdemo1(),expmdemo2()和expmdemo3()。expmdemo1()就是expm(),采用帕德逼近法计算矩阵指数;而expmdemo2()采用节中介绍的利用泰勒级数展开法来计算,精度较低;expmdemo3()采用节中介绍的利用特征值和特征向量来计算对角线矩阵,进而通过对角线矩阵的矩阵指数计算
5、原矩阵的矩阵指数。,eAt的数值计算(3/4),eAt的数值计算(4/4),expmdemo3()的计算精度取决于特征值、特征向量、指数函数exp()的计算精度,由于这3种计算有良好的计算方法,因此expmdemo3()的计算精度最高。但expmdemo3()只能计算矩阵的独立特征向量数等于矩阵的维数,即矩阵能变换为对角线矩阵的情况,因此,在不能判定矩阵是否能变换为对角线矩阵时,尽量采用函数expm()。,eAt的符号计算(1/8),2.eAt的符号计算在Matlab中,对给定矩阵A,可通过符号计算工具箱的函数expm()计算变量t的矩阵指数函数eAt的表达式。在使用Matlab的符号计算工具
6、箱计算时,需要定义符号变量,输入符号表达式与符号矩阵。下面介绍使用符号计算工具箱需要的基本操作。,eAt的符号计算(2/8),1)定义符号变量定义(指定)符号变量的语句的格式为syms t s x.该语句将符号t,s,x,定义为符号变量。在该语句后,就可以输入和计算符号表达式与符号矩阵。,eAt的符号计算(3/8),2)输入符号表达式符号表达式的输入可采用赋值语句的方式,如赋值语句f1=sin(x)2+cos(y)3-3为定义符号表达式变量f1为表达式。在Matlab中,符号表达式的输入采用符号串的形式,其表达式的格式与Matlab的数值计算的格式基本一致。,eAt的符号计算(4/8),3)输
7、入符号矩阵Matlab中符号矩阵的输入采用函数sym()。sym()的调用格式为S=sym(A)该函数的功能为将符号串A转换为符号矩阵,其中符号串A的格式与使用Matlab进行数值计算时矩阵的计算公式格式基本一致。如f2=sym(x2+sqrt(1-x)y*x;1+z x+z3)的函数sym()将符号串x2+sqrt(1-x)y*x;1+z x+z3转换为如下表示的符号矩阵,eAt的符号计算(5/8),在给符号表达式变量和符号矩阵变量赋值后,在Matlab 7.0中就可以像数值计算公式那样直接采用算术运算符“+”,“-”,“*”,“/”,“”,以及exp(),expm()等函数进行符号计算。如
8、,在前面的符号表达式变量f1和符号矩阵变量f2赋值后,执行符号计算公式f3=f1*f2就进行如下符号表达式的计算,eAt的符号计算(6/8),使用Matlab的符号工具箱的函数expm()可直接计算关于符号矩阵变量A的矩阵指数函数eA的表达式。符号计算函数expm()的调用格式为expA=expm(A)其中,输入矩阵A为Matlab的符号矩阵,输出矩阵expA为计算所得的eA的Matlab符号矩阵。Matlab问题3-2 试在Matlab中计算例3-1中矩阵A的矩阵指数eAt。,eAt的符号计算(7/8),Matlab程序m3-2如下。其中t定义为符号变量,输入矩阵A为一般Matlab的数值矩
9、阵,表达式A*t即为Matlab的符号矩阵。Matlab程序m3-2执行结果如下。上述计算结果与例3-1的计算结果完全一致。,例3-1的计算结果,eAt的符号计算(8/8),Matlab有着功能非常强大的符号计算功能,包括符号微分、符号积分、符号矩阵运算、符号线性方程组解、符号非线性方程组解、符号常微分方程组解等,还可以与符号计算软件Maple混合编程,调用Maple的其他符号计算功能。,线性定常连续系统的状态空间模型求解(1/2),3.6.2 线性定常连续系统的状态空间模型求解 Matlab提供了非常丰富的线性定常连续系统的状态空间模型求解(即系统运动轨迹的计算)的功能,主要的函数有初始状态
10、响应函数initial()、阶跃响应函数step()以及可计算任意输入的系统响应函数lsim(),但这里主要是计算其系统响应的数值解。,线性定常连续系统的状态空间模型求解(2/2),对系统运动分析问题,有时需要求解系统响应的函数表达式。为此,编著者编写了专门用于求解系统响应函数表达式的Matlab符号计算函数sym_lsim()。下面将分别介绍状态空间模型求解的Matlab程序编制和计算问题,主要内容有:初始状态响应函数initial()、阶跃响应函数step()、任意输入的系统响应函数lsim(),以及任意输入的符号响应函数sym_lsim()。,初始状态响应函数initial()(1/8)
11、,1.初始状态响应函数initial()初始状态响应函数initial()主要是计算状态空间模型(A,B,C,D)的初始状态响应,其主要调用格式为initial(sys,x0,t)y,t,x=initial(sys,x0,t)其中sys为输入的状态空间模型;x0为给定的初始状态;t为指定仿真计算状态响应的时间区间变量(数组)。第1种调用格式的输出格式为输出响应曲线图,第2种调用格式的输出为数组形式的输出变量响应值y,仿真时间坐标数组t,状态变量响应值x。,初始状态响应函数initial()(2/8),Matlab中,时间区间变量(数组)t有三种格式:t=Tintial:dt:Tfinal 表示
12、仿真时间段为Tintial,Tfinal,仿真时间步长为dtt=Tintial:Tfinal 表示仿真时间段为Tintial,Tfinal,仿真时间步长dt缺省为1t=Tfinal 表示仿真时间段为0,Tfinal,系统自动选择仿真时间步长dt若时间数组缺省(没有指定),表示系统自动选择仿真时间区间0,Tfinal和仿真时间步长dt。,初始状态响应函数initial()(3/8),Matlab问题3-3 试在Matlab中计算例3-1中如下系统在0,5s的初始状态响应。Matlab程序m3-3如下。其中,最后一句语句plot(t,x)是以时间坐标数组t为横坐标,绘出x中存储的2维状态向量x(t
13、)的随时间变化的轨迹。,初始状态响应函数initial()(4/8),Matlab程序m3-3执行结果如图3-4所示。,图3-4 Matlab问题3-3的状态响应曲线图,初始状态响应函数initial()(5/8),Matlab提供的函数initial()只能计算出状态响应的计算值,若需要计算状态响应的表达式则需要根据前面介绍的符号工具箱,自己编程实现状态响应函数表达式的求解。Matlab问题3-4 试在Matlab中计算Matlab问题3-3的初始状态响应表达式。Matlab程序m3-4如下。,初始状态响应函数initial()(6/8),Matlab程序m3-4执行结果如下。在Matlab
14、程序m3-3中运用了绘图函数plot()。Matlab提供了非常强大的绘图功能,可以绘2维曲线图、3维曲面图、4维切片图以及动态图形(动画),其中函数plot()是主要的2维曲线绘图函数,主要调用格式为:plot(Y)plot(X,Y)plot(X,Y,LineSpec,PropertyName,PropertyValue),例3-3的计算结果,初始状态响应函数initial()(7/8),第1种调用格式的输入Y为mn矩阵,其输出为矩阵Y的每一列画一条曲线,共n条曲线的曲线图。该曲线图的横坐标为1至m的自然数。对第2种调用格式,若X和Y为向量,则长度必须相等,输出为一条X为横坐标轴的曲线。若X
15、为向量,Y为矩阵,则X的长度等于Y的行数或者列数。这时输出为Y的列向量或者行向量对应的,以X为横坐标轴的一组曲线。若Y为向量,X为矩阵,则Y的长度等于X的行数或者列数。这时输出为X的列向量或者行向量对应的,以Y为纵坐标轴的一组曲线。,初始状态响应函数initial()(8/8),第3种调用格式的LineSpec为指定输出曲线的线型、颜色、曲线数据点的标记符号。而PropertyName和PropertyValue则用于指定图的一些特性,如图名、坐标名与刻度等。,阶跃响应函数step()(1/2),2.阶跃响应函数step()阶跃响应函数step()可用于计算在单位阶跃输入和零初始状态(条件)下
16、传递函数模型的输出响应,或状态空间模型的状态和输出响应,其主要调用格式为step(sys,t)y,t=step(sys,t)y,t,x=step(sys,t)其中,对第1、2种调用格式,sys为传递函数模型变量或状态空间模型变量;对第3种方式,sys为状态空间模型变量。t为指定仿真计算状态响应的时间数组,其格式与初始状态响应函数initial()一样,也可以缺省。,阶跃响应函数step()(2/2),第1种调用格式的输出为输出响应的图形输出,而第2、3种调用格式的输出为将输出响应、时间坐标数组、状态响应赋值给指定的数组变量。阶跃响应函数step()的使用方法与前面介绍的initial()函数相
17、似,这里不再赘述。,任意输入的系统响应函数lsim()(1/10),3.任意输入的系统响应函数lsim()任意输入的系统响应函数lsim()可用于计算在给定的输入信号序列(输入信号函数的采样值)下传递函数模型的输出响应,或状态空间模型的状态和输出响应,其主要调用格式为lsim(sys,u,t,x0)y,t,x=lsim(sys,u,t,x0)其中,sys为传递函数模型变量或状态空间模型变量;t为时间坐标数组;u是输入信号u(t)对应于时间坐标数组t的各时刻输入信号采样值组成的数组,是求解系统响应必须给定的;,任意输入的系统响应函数lsim()(2/10),x0是初始状态向量。当输入的sys为传
18、递函数模型时,x0的值不起作用,可以缺省。函数lsim()的第1种调用格式的输出为将输出响应和输入信号序列绘在一起的曲线图,第2种调用格式的输出与前面介绍的2个响应函数一样。,任意输入的系统响应函数lsim()(3/10),输入变量u(t)的值u可以为用户需要的任意输入函数根据时间坐标数组t进行采样获得,也可以采用Matlab中的信号生成函数gensig()产生。gensig()的调用格式为u,t=gensig(type,tau)u,t=gensig(type,tau,Tf,Ts)其中,type为选择信号类型的符号串变量;tau为以秒为单位的信号周期;Tf和Ts分别为产生信号的时间长度和信号的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华中科技大学 现代 控制 理论 3.6 Matlab 问题
链接地址:https://www.31ppt.com/p-6449121.html