05线性定常系统的MATLAB实现
- 格式:ppt
- 大小:819.00 KB
- 文档页数:61
实验二 线性连续定常系统的运动分析一、实验目的1.掌握线性连续定常系统的状态转移矩阵的求法,学会用MATLAB 求解状态转移矩阵。
2.掌握线性连续定常系统的状态方程的求解方法,学会用MATLAB 求解线性连续定常系统的时间响应,并绘制相应的状态响应曲线和输出响应曲线。
二、实验原理1.线性连续定常系统状态转移矩阵的计算设线性连续定常系统的状态空间表达式为'=+⎧⎨=+⎩x Ax Buy Cx Du ,则其状态转移矩阵为()t t e =A Φ从时间角度看,状态转移矩阵使状态向量随着时间的推移不断地作坐标变换,不断地在状态空间中作转移,故称为状态转移矩阵。
对于线性连续定常系统,其状态转移矩阵与其矩阵指数函数相同,可利用直接求解法、拉氏变换法、标准型法和待定系数法等方法对其进行求解。
(1)直接求解法220111()!2!!tk k k kk t e t t t t k k ∞====+++++∑A A I A A A Φ(2)拉氏变换法()11()t t e L s --⎡⎤==-⎣⎦A I A Φ(3)标准型法对系统矩阵A 进行线性非奇异变换,将其变换为对角线矩阵或约旦矩阵1-=A P AP ,其中P 为非奇异变换阵。
状态转移矩阵为1()t t t e e -==A A P P Φ,其中1-=A P AP若A 的特征值12,,,n λλλ两两互异,则A 为对角线矩阵,此时1110()0n t tt t e t e e e λλ--⎡⎤⎢⎥===⎢⎥⎢⎥⎣⎦A A P P P P Φ 若A 有n 重特征值i λ,则A 为约旦矩阵,此时1111(1)!()0i i i i i ttt n t t tte te t e n t e e te e λλλλλ---⎡⎤⎢⎥-⎢⎥===⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦A A Q Q Q Q Φ (4)待定系数法根据凯莱-哈密顿(以下简称C-H )定理,线性连续定常系统的状态转移矩阵为110110()()()()()n tj n j n j t ea t a t a t a t ---====+++∑A A I A A Φ其中,011(),(),,()n a t a t a t -为t 的标量函数,可按A 的特征值确定。
基于MATLAB的线性系统稳定性分析及应用线性系统稳定性分析及应用是控制理论中的重要内容之一、MATLAB是一种强大的数学计算工具,可以用于线性系统的稳定性分析和应用。
本文将介绍线性系统稳定性分析的基本理论,以及如何使用MATLAB进行稳定性分析和应用。
一、线性系统稳定性分析基本理论1.线性系统稳定性定义:线性系统是指系统的输入和输出满足线性关系的系统。
线性系统稳定性是指当系统的输入有界时,系统输出也是有界的,不会发散或震荡。
2.线性时不变系统:线性时不变系统是指系统的特性不随时间变化而变化,可以通过线性时间不变微分方程来描述。
3.BIBO稳定性:BIBO代表有界输入有界输出,是指当系统的输入信号是有界的时候,系统输出也是有界的。
BIBO稳定性是判断线性系统稳定性的一种方法。
4.线性系统稳定性判据:-零输入稳定性(ZIS):当系统的输入为零时,系统输出是否趋于零,来判断系统的稳定性。
-零状态稳定性(ZSS):当系统的初始状态为零时,系统输出是否趋于零,来判断系统的稳定性。
-有界输入有界输出稳定性(BIBO稳定性):当系统的输入信号是有界的时,系统输出是否有界,来判断系统的稳定性。
二、MATLAB线性系统稳定性分析方法1. 频率域法:通过计算系统的传递函数的频率响应来分析系统的稳定性。
MATLAB提供了函数freqresp来计算系统的频率响应,并可以使用bode函数来绘制频率响应曲线。
2. 极点分析法:通过分析系统的极点位置来判断系统的稳定性。
MATLAB提供了函数pole来计算系统的极点,并可以使用pzmap函数来绘制极点分布图。
3.等价传递函数法:将系统的状态空间方程转化为等价的传递函数形式,然后通过分析传递函数的特性来判断系统的稳定性。
MATLAB提供了ss2tf函数来将状态空间方程转化为传递函数形式。
三、MATLAB线性系统稳定性应用1.控制系统设计:将线性系统的稳定性分析方法应用于控制系统的设计中,可以通过稳定性判据来选择合适的控制策略,以保证系统的稳定性。
实验五用MATLAB判定系统的能控性1、实验设备MATLAB软件2、实验目的①学习线性定常连续系统的状态空间模型的能控性判定、掌握MATLAB中关于该模型判定的主要函数;②通过编程、上机调试,进行模型判定。
3、实验原理说明对于连续的线性定常系统,采用代数判据判定状态能控性需要计算能控性矩阵。
Matlab提供的函数ctrb()可根据给定的系统模型,计算能控性矩阵Qc=[B AB … An-1B]能控性矩阵函数ctrb()的主要调用格式为:Qc = ctrb(A,B)Qc = ctrb(sys)其中,第1种输入格式为直接给定系统矩阵A和输入矩阵B,第2种格式为给定状态空间模型sys。
输出矩阵Qc为计算所得的能控性矩阵。
基于能控性矩阵函数ctrb()及能控性矩阵Qc的秩的计算rank(),就可以进行连续线性定常系统的状态能控性的代数判据判定。
也可用函数Judge_contr()通过调用能控性矩阵函数ctrb()和计算矩阵秩的函数rank(),完成能控性代数判据的判定。
4、实验步骤①根据所给状态空间模型,依据线性定常连续系统状态方程计算能控性矩阵,采用MATLAB 编程。
在MATLAB界面下调试程序,并检查是否运行正确。
习题1:试在Matlab中计算如下系统的状态能控性。
Matlab源程序如下:A=[1 3 2; 0 2 0; 0 1 3];B=[2 1; 1 1; -1 -1];sys=ss(A,B,[],[]);Judge_contr(sys);函数Judge_contr()的源程序为:function Judge_contr(sys)Qc=ctrb(sys);n=size(sys.a);if rank(Qc)==n(1)disp('The system is controlled')elsedisp('The system is not controlled')end表明所判定的系统状态不能控。
实验一 线性连续定常系统模型一、实验目的1.掌握线性连续定常系统的状态空间模型,学会在MATLAB 中建立系统状态空间表达式的方法。
2.熟悉线性连续定常系统的状态空间表达式、传递函数等数学模型的相互转换,学会用MATLAB 实现系统的模型转换。
3.掌握线性连续定常系统的对角线标准形变换和约当标准形变换,学会用MATLAB 进行线性变换。
二、实验原理1.由传递函数建立状态空间表达式设线性连续定常系统的传递函数为()()11101110121210121210()()()n n n n n n n n n n n n nn n n n n b s b s b s b Y s G s U s s a s a s a N s s s s b b s a s a s a s s D s ββββ------------++++==++++++++=+=++++++(1)()()N s D s 只含有两两互异极点时的情况 设()D s 可分解为:()()()()12n D s s p s p s p =+++则()()1()()()ni n n i iN s c Y s G s b b U s D s s p ===+=++∑若令状态变量为1()()i iX s U s s p =+(1,2,,i n = ),则 1()()()ni i n i Y s c X s b U s ==+∑因此,状态变量和输出满足以下关系:1, 1,2,,i i i n i i n i x p x u i n y c x b u ==-+=⎧⎪⎨=+⎪⎩∑ 将上式写成矩阵形式,可得系统的状态空间表达式为:[]111222*********n n n n n n x p x x p x x p x x x y c c c b ux ⎧-⎡⎤⎡⎤⎡⎤⎡⎤⎪⎢⎥⎢⎥⎢⎥⎢⎥-⎪⎢⎥⎢⎥⎢⎥⎢⎥=+⎪⎢⎥⎢⎥⎢⎥⎢⎥⎪⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎪⎣⎦⎣⎦⎣⎦⎨⎡⎤⎪⎢⎥⎪⎢⎥⎪=+⎢⎥⎪⎢⎥⎪⎣⎦⎩(2)()()N s D s 含有重极点时的情况 例如()D s 可分解为:()()()()314n D s s p s p s p =+++则()()()()()()131112324111()ni n n i iY s N s c c c c G s b b U s D s s p s p s p s p ===+=++++++++∑ 若令状态变量为()()1,3111()(), 1,2,3()1, 4,5,,ii ii X s U s i s p X s U s i n s p -+⎧==⎪+⎪⎨⎪==⎪+⎩则1,11,1,11,11,311,14, 1,2, 3, 4,5,,i i i i i i i i ni i i i ni i xp x x i x p x u i x p x u i n y c x c x b u+===-+=⎧⎪=-+=⎪⎪=-+=⎨⎪⎪=++⎪⎩∑∑ ,故系统状态空间表达式为: []11111121121311344411121311121344101001101n n n n n n x p x x p x x p x u x p x x p x x x x y c c c c c b ux x ⎧-⎡⎤⎡⎤⎡⎤⎡⎤⎪⎢⎥⎢⎥⎢⎥⎢⎥-⎪⎢⎥⎢⎥⎢⎥⎢⎥⎪⎢⎥⎢⎥⎢⎥⎢⎥-=+⎪⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎣⎦⎨⎡⎤⎢⎥⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦ ⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩2.状态空间表达式转化为传递函数矩阵设线性连续定常系统的状态空间表达式为n n n r m n m r ⨯⨯⨯⨯=+⎧⎨=+⎩xA xB u yC xD u 其中12n x x x ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦x 为n 维状态变量,12r u u u ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦u 为r 维输入变量,12m y y y ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦y 为m 维输出变量,n n ⨯A 为n n ⨯维系统矩阵,n r ⨯B 为n r ⨯维输入矩阵,m n ⨯C 为m n ⨯维输出矩阵,m r ⨯D 为m r ⨯维前馈矩阵。
实验五用MATLAB判定系统的能控性1、实验设备MATLAB软件2、实验目的①学习线性定常连续系统的状态空间模型的能控性判定、掌握MATLAB中关于该模型判定的主要函数;②通过编程、上机调试,进行模型判定。
3、实验原理说明对于连续的线性定常系统,采用代数判据判定状态能控性需要计算能控性矩阵。
Matlab提供的函数ctrb()可根据给定的系统模型,计算能控性矩阵Qc=[B AB … An-1B]能控性矩阵函数ctrb()的主要调用格式为:Qc = ctrb(A,B)Qc = ctrb(sys)其中,第1种输入格式为直接给定系统矩阵A和输入矩阵B,第2种格式为给定状态空间模型sys。
输出矩阵Qc为计算所得的能控性矩阵。
基于能控性矩阵函数ctrb()及能控性矩阵Qc的秩的计算rank(),就可以进行连续线性定常系统的状态能控性的代数判据判定。
也可用函数Judge_contr()通过调用能控性矩阵函数ctrb()和计算矩阵秩的函数rank(),完成能控性代数判据的判定。
4、实验步骤①根据所给状态空间模型,依据线性定常连续系统状态方程计算能控性矩阵,采用MATLAB 编程。
在MATLAB界面下调试程序,并检查是否运行正确。
习题1:试在Matlab中计算如下系统的状态能控性。
Matlab源程序如下:A=[1 3 2; 0 2 0; 0 1 3];B=[2 1; 1 1; -1 -1];sys=ss(A,B,[],[]);Judge_contr(sys);函数Judge_contr()的源程序为:function Judge_contr(sys)Qc=ctrb(sys);n=size(sys.a);if rank(Qc)==n(1)disp('The system is controlled')elsedisp('The system is not controlled')end表明所判定的系统状态不能控。
实验三:线性控制系统的MATLAB时域分析一、实验目的1、掌握如何使用Matlab进行系统的稳定性分析;2、掌握如何使用Matlab进行系统的时域分析。
二、实验目标(1)、能够掌握线性系统稳定性的MATLAB判定方法;(2)、掌握MATLAB动态性能分析;(3)、掌握二阶系统的时域分析方法。
三、实验内容(一)线性系统稳定性的MATLAB判定方法传递函数32432()72424()()10355024C s s s sG sR s s s s s+++==++++,利用MATLAB命令判断系统的稳定性。
1、基础知识:系统的稳定性,根据系统传递函数(s)极点的实部来进行判断:稳定——全为负,临界稳定——有一个为0,不稳定——有一个为负。
在MA TLAB命令中,roots、tf2zp()、pzmap()指令可以用于判断系统的稳定性。
(1)直接求特征多项式的根A、roots()可以直接求出传递函数的特征方程p=0在复数范围内的解x,该函数的调用格式为:x=roots(p) ,返回值为特征方程的根(即传递函数的极点)。
系统的特征方程式432103550240s s s s++++=,直接在MATLAB的命令窗口中输入:>> p=[1,10,35,50,24];>> x=roots(p)按回车键,在MATLAB命令窗口中观察运算结果,如右图所示,特征根的实部全部为负数,系统稳定。
B、利用tf2zp()命令可以将传递函数的一般形式转换成传递函数的零点、极点及增益。
直接在MATLAB的命令窗口中输入:>> num=[1,7,24,24];den=[1,10,35,50,24];[z,x,k]=tf2zp(num,den);x按回车键,在MATLAB命令窗口中观察运算结果,如右图所示,特征根的实部全部为负数,系统稳定。
(2)零极点分布图pzmap()函数绘制连续系统的零、极点(系统特征方程的根)图,从而分析系统的稳定性,该函数调用格式为:pzmap(num,den)在MATLAB的命令窗口中输入:>> num=[1,7,24,24];den=[1,10,35,50,24];pzmap(num,den)按回车键,在MATLAB图形窗口得出零极点分布图,如右图所示,特征根的实部全部为负数,系统稳定。
MATLAB中的线性系统控制设计引言:线性系统控制是现代控制理论中的核心内容之一,它在自动控制领域中起着至关重要的作用。
而MATLAB作为一种强大的数值计算和数据可视化工具,对于线性系统控制的设计和分析提供了全面的支持和便利。
本文将介绍MATLAB中的线性系统控制设计方法,从系统建模、控制器设计、仿真分析等方面着重展开。
第一部分:系统建模在进行线性系统控制设计之前,我们首先需要对要控制的系统进行建模。
系统建模是确定系统动力学特性的过程,常见的方法有传递函数法和状态空间法。
在MATLAB中,可以使用Transfer Function Objects(传递函数对象)或State Space Objects(状态空间对象)来方便地进行系统建模。
传递函数法是一种常用的线性系统描述方法,通过将系统的输入-输出关系用有理函数表示。
在MATLAB中,可以使用tf函数来创建传递函数对象,并设置相应的参数,如分子多项式和分母多项式的系数。
例如,我们可以使用以下代码来创建一个传递函数对象G:G = tf([1 2],[1 3 2])同样地,状态空间法是描述线性系统的另一种方法,它以系统的状态变量为基础,并使用矩阵形式的状态方程和输出方程进行描述。
在MATLAB中,可以使用ss函数来创建状态空间对象,并设置相应的参数,如状态矩阵、输入矩阵、输出矩阵等。
例如,我们可以使用以下代码来创建一个状态空间对象sys:A = [0 1; -2 -3];B = [0; 1];C = [1 0];D = 0;sys = ss(A,B,C,D)第二部分:控制器设计控制器是线性系统控制设计中的关键部分,它根据系统的输入和输出信号,通过某种控制算法来调节输出信号使其满足要求。
在MATLAB中,可以使用Control System Toolbox(控制系统工具箱)提供的函数和工具来进行控制器的设计。
常见的控制器设计方法包括比例控制器、积分控制器、微分控制器、PID控制器等。