文档库 最新最全的文档下载
当前位置:文档库 › 基于MATLAB的控制系统状态空间 分析

基于MATLAB的控制系统状态空间 分析

基于MATLAB的控制系统状态空间    分析
基于MATLAB的控制系统状态空间    分析

现代控制理论实验指导书

实验1 用MATLAB 分析状态空间模型 1、实验设备 PC 计算机1台,MATLAB 软件1套。 2、实验目的 ① 学习系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法; ② 通过编程、上机调试,掌握系统状态空间表达式与传递函数相互转换方法。 3、实验原理说明 参考教材P56~59“2.7 用MA TLAB 分析状态空间模型” 4、实验步骤 ① 根据所给系统的传递函数或A 、B 、C 矩阵,依据系统的传递函数阵和状态空间表达式之间的关系式,采用MATLAB 编程。 ② 在MA TLAB 界面下调试程序,并检查是否运行正确。 题1.1 已知SISO 系统的传递函数为 243258()2639 s s g s s s s s ++=++++ (1)将其输入到MATLAB 工作空间; (2)获得系统的状态空间模型。 题1.2 已知SISO 系统的状态空间表达式为 112233010100134326x x x x u x x ????????????????=+????????????????----????????,[]123100x y x x ????=?????? (1)将其输入到MATLAB 工作空间; (2)求系统的传递函数。 实验2 利用MATLAB 求解系统的状态方程 1、实验设备 PC 计算机1台,MATLAB 软件1套。 2、实验目的 ① 学习系统齐次、非齐次状态方程求解的方法,计算矩阵指数,求状态响应; ② 通过编程、上机调试,掌握求解系统状态方程的方法,学会绘制状态响应曲线; ③ 掌握利用MATLAB 导出连续状态空间模型的离散化模型的方法。 3、实验原理说明 参考教材P99~101“3.8 利用MATLAB 求解系统的状态方程” 4、实验步骤 (1)根据所给系统的状态方程,依据系统状态方程的解的表达式,采用MA TLAB 编程。 (2)在MATLAB 界面下调试程序,并检查是否运行正确。 题2.1 已知SISO 系统的状态方程为

实验一MATLAB系统的传递函数和状态空间表达式的转换

实验一 MATLAB 系统的传递函数和状态空间表达式的转换 一、 实验目的 1、学习多变量系统状态空间表达式的建立方法; 2、通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数之间相互转换的方法; 3、掌握相应的MATLAB 函数。 二、 实验原理 设系统的模型如式(1.1)所示: ???+=+=D Cx y Bu Ax x ' x ''R ∈ u ∈R ’’’ y ∈R P (1.1) 其中A 为nXn 维系统矩阵、B 为nXm 维输入矩阵、C 为pXn 维输出矩阵,D 为直接传递函数。系统的传递函数和状态空间表达式之间的关系如式(1.2)所示 G(s)=num(s)/den(s)=C (SI-A)-1 B+D (1.2) 式(1.2)中,num(s)表示传递函数的分子阵,其维数是pXm ,den(s)表示传递函数的按s 降幂排列的分母。 表示状态空间模型和传递函数的MATLAB 函数如下: 函数ss (state space 的首字母)给出了状态空间模型,其一般形式是: sys=ss(A,B,C,D) 函数tf (transfer function 的首字母)给出了传递函数,其一般形式是:

G=tf(num ,den) 其中num 表示传递函数中分子多项式的系数向量(单输入单输出系统),den 表示传递函数中分母多项式的系数向量。 函数tf2ss 给出了传递函数的一个状态空间实现,其一般形式是: [A,B,C,D]=tf2ss(num,den) 函数ss2tf 给出了状态空间模型所描述系统的传递函数,其一般形式是: [num,den]=ss2tf(A,B,C,D,iu) 其中对于多输入系统,必须确定iu 的值。例如,若系统有三个输入u 1,u 2,u 3,则iu 必须是1、2、或3,其中1表示u 1,2表示u 2,3表示u 3。该函数的结果是第iu 个输入到所有输出的传递函数。 三.实验步骤及结果 1、应用MATLAB 对下列系统编程,求系统的A 、B 、C 、D 阵,然后验证传递函数是相同的。 G(s)= ?? ????+++352^12s s s s 3+4s 2+5s+1 程序和运行结果:

现代控制理论Matlab仿真

基于Matlab的GUI仿真设计 开发说明文档 学院:信息科学与工程学院 班级:自动化1001 学号:20100413 姓名: 指导教师:赵明旺 二○一三年五月

一、设计题目 设有一个弹簧-质量-阻尼器系统,安装在一个不计质量的小车上,如题图所示。u 和 y为分别为小车和质量体的位移,k、b 和 m 分别为弹簧弹性系数、阻尼器阻尼系数和质量体质量阻尼器。试建立 u 为输入,y 为输出的状态空间模型。 二、设计目的 通过Matlab的GUI界面设计,达到现代控制理论课程的学习要求,学会建立一个系统的状态空间模型,能对线性系统进行时域分析,理解能控性、能观性及李亚普洛夫稳定性的定义,设计极点配置控制系统等. 三、设计要求 使用Matlab数学工具,运用现代控制理论中的知识对一个实际的弹簧-质量-阻尼器系统进行仿真,制作出一个GUI界面,可以动态的观察质量体变化并画出波形。能控性、能观性、李亚普洛夫稳定性的判定,并配置极点构成一个闭环系统。 四、设计内容 1、菜单栏: 开始仿真(动态波形 + 动态系统) 复位(所有参数和图形全部初始化) 退出(退出GUI界面) 2、任务栏:

建模: 状态空间模型建立;传递函数模型建立 系统分析: 系统状态和输出响应计算及输出;能控性判定; 能观性判定;李雅普洛夫稳定性判定 系统综合: 极点配置控制系统设计;状态观测器设计(选作);带状态观测器的极点配置控制系统(选作) 3、系统模型参数: k:弹簧弹性系数 b: 阻尼器阻尼系数 m: 质量体质量 4、系统输出参数: 输出变量: 质量体位移y + 状态变量(x1 & x2) 输出形式: 图形 + 数据 输出数据包括: 状态空间模型\传递函数模型\系统分析结论\状态反馈律\状态观测器\闭环系统模型等 5、仿真参数: 仿真时间:设置仿真时间 仿真步长:设置仿真步长 图形输出刷新时间速率: 设置图形输出刷新时间步长(如0.3秒) 6、系统输入参数: 输入信号:零输入响应 + 阶跃响应+ 任意输入信号(即任意输入表达式来表示输入任意信号,变量为t) 初始状态:系统初始状态 系统期望极点:一般配置在虚轴左边,此时闭环系统稳定 五、仿真系统介绍(含界面解图)

现代控制理论课程设计(大作业)

现代控制理论课 程设计报告 题目打印机皮带驱动系统能控能观和稳定性分析 项目成员史旭东童振梁沈晓楠 专业班级自动化112 指导教师何小其 分院信息分院 完成日期 2014-5-28

目录 1. 课程设计目的 (3) 2.课程设计题目描述和要求 (3) 3.课程设计报告内容 (4) 3.1 原理图 (4) 3.2 系统参数取值情况 (4) 3.3 打印机皮带驱动系统的状态空间方程 (5) 4. 系统分析 (7) 4.1 能控性分析 (7) 4.2 能观性分析 (8) 4.3 稳定性分析 (8) 5. 总结 (10)

项目组成员具体分工 打印机皮带驱动系统能控能观和稳定性 分析 课程设计的内容如下: 1.课程设计目的 综合运用自控现代理论分析皮带驱动系统的能控性、能观性以及稳定性,融会贯通并扩展有关方面的知识。加强大家对专业理论知识的理解和实际运用。培养学生熟练运用有关的仿真软件及分析,解决实际问题的能力,学会使用标准、手册、查阅有关技术资料。加强了大家的自学能力,为大家以后做毕业设计做很好的铺垫。 2.课程设计题目描述和要求 (1)环节项目名称:能控能观判据及稳定性判据 (2)环节目的: ①利用MATLAB分析线性定常系统的可控性和客观性。 ②利用MATLAB进行线性定常系统的李雅普诺夫稳定性判据。 (3)环节形式:课后上机仿真 (4)环节考核方式: 根据提交的仿真结果及分析报告确定成绩。 (5)环节内容、方法: ①给定系统状态空间方程,对系统进行可控性、可观性分析。 ②已知系统状态空间方程,判断其稳定性,并绘制出时间响应曲线验

证上述判断。 3.课程设计报告内容 3.1 原理图 在计算机外围设备中,常用的低价位喷墨式或针式打印机都配有皮带驱动器。它用于驱动打印头沿打印页面横向移动。图1给出了一个装有直流电机的皮带驱动式打印机的例子。其光传感器用来测定打印头的位置,皮带张力的变化用于调节皮带的实际弹性状态。 图1 打印机皮带驱动系统 3.2 系统参数取值情况 表1打印装置的参数

现代控制理论MATLAB编程

现代控制理论实验报告 姓名: 班级: 学号:

目录一.实验设备 二.实验目的 三.实验步骤

一、实验设备 PC计算机1台,MATLAB软件1套。 二、实验目的 1.学习系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法; 2.通过编程、上机调试、掌握系统状态空间表达式与传递函数相互转换方法; 3.学习MATLAB的使用方法。 三、实验步骤 1、根据所给系统的结构图写出死循环系统的传递函数,若K=10,T=0.1时阶跃输出下的系统输出响应,并采用MATLAB编程。 2、在MATLAB接口下调试程序,并检查是否运行正确。 3、给出定二阶系统结构图: 图为二阶系统结构图 (1)求二阶系统的闭环循环传递函数

?(s )=)(1)(s G s G +=K S TS K ++2 (2)若K=10,T=0.1,仿真给出阶跃下的系统输出响应 把K T 代入方程得Φ(S )= = 1)MATLAB 命令得出的系统响应曲线在MATLAB 上输入下列指 令:>> num=[100];>> den=[1,10,100];>> step(num,den)程序运行后显示的时域动态响应曲线(如图2) 图为 时域动态响应曲线 2)、用进行Simulink 进行仿真

启动Simulink并打开一个空白的模块编辑窗口,画出所需模块,并给出正确参数,将画出的所有模块链接起来(如图1),构成一个原系统的框图描述(如图3)。选择仿真控制参数,启动仿真过程。仿真结果示波器显示如图4。 图3二阶系统的Simulink(仿真)

《现代控制理论》.

《现代控制理论》实验指导书 俞立徐建明编 浙江工业大学信息工程学院 2007年4月

实验1 利用MATLAB 进行传递函数和状态空间模型间的转换 1.1 实验设备 PC 计算机1台(要求P4-1.8G 以上),MATLAB6.X 或MATLAB7.X 软件1套。 1.2 实验目的 1、学习系统状态空间模型的建立方法、了解状态空间模型与传递函数相互转换的方法; 2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的方法。 1.3 实验原理说明 设系统的状态空间模型是 x Ax Bu y Cx Du =+?? =+?& (1.1) p y R ∈其中:n x R ∈是系统的状态向量,是控制输入,m u R ∈是测量输出,A 是维状态矩阵、是维输入矩阵、是n n ×m n ×n p ×B D C 维输出矩阵、是直接转移矩阵。系统传递函数和状态空间模型之间的关系如式(1.2)所示。 1()()G s C sI A B D ?=?+ (1.2) 表示状态空间模型和传递函数的MATLAB 函数。 函数ss (state space 的首字母)给出了状态空间模型,其一般形式是 SYS = ss(A,B,C,D) 函数tf (transfer function 的首字母)给出了传递函数,其一般形式是 G=tf(num,den) 其中的num 表示传递函数中分子多项式的系数向量(单输入单输出系统),den 表示传递函数中分母多项式的系数向量。 函数tf2ss 给出了传递函数的一个状态空间实现,其一般形式是 [A,B,C,D]=tf2ss(num,den) 函数ss2tf 给出了状态空间模型所描述系统的传递函数,其一般形式是 [num,den]=ss2tf(A,B,C,D,iu) 其中对多输入系统,必须确定iu 的值。例如,若系统有三个输入和,则iu 必须是1、2或3,其中1表示,2表示,3表示。该函数的结果是第iu 个输入到所有输出的传递函数。 21,u u 3u 1u 2u 3u 1.4 实验步骤 1、根据所给系统的传递函数或(A 、B 、C 、D ),依据系统的传递函数阵和状态空间模型之间的关系(1.2),采用MATLAB 的相关函数编写m-文件。 2、在MATLAB 界面下调试程序。 例1.1 求由以下状态空间模型所表示系统的传递函数, ?? ? ? ? ?????=?????? ?????+???????????????????????=??????????321321321]001[1202505255100010x x x y u x x x x x x &&&

实验八MATLAB状态空间分析报告

实验八 线性系统的状态空间分析 §8.1 用MATLAB 分析状态空间模型 1、状态空间模型的输入 线性定常系统状态空间模型 x Ax Bu y Cx Du =+=+ 将各系数矩阵按常规矩阵形式描述。 [][][]11 121120 10 1;;;n n n nn n n A a a a a a a B b b b C c c c D d ==== 在MA TLAB 里,用函数SS()来建立状态空间模型 (,,,)sys ss A B C D = 例8.1 已知某系统微分方程 22d d 375d d y y y u t t ++= 求该系统的状态空间模型。 解:将上述微分方程写成状态空间形式 0173A ??=??--??,01B ??=???? []50C =,0D = 调用MATLAB 函数SS(),执行如下程序 % MATLAB Program example 6.1.m A=[0 1;-7 -3]; B=[0;1]; C=[5 0]; D=0; sys=ss(A,B,C,D) 运行后得到如下结果 a = x1 x2 x1 0 1

x2 -7 -3 b = u1 x1 0 x2 1 c = x1 x2 y1 5 0 d = u1 y1 0 Continuous-time model. 2、状态空间模型与传递函数模型转换 状态空间模型用sys 表示,传递函数模型用G 表示。 G=tf(sys) sys=ss(G) 状态空间表达式向传递函数形式的转换 G=tf(sys) Or [num,den]=ss2tf(A,B,C,D) 多项式模型参数 [num,den]=ss2tf(A,B,C,D,iu) [z,p,k]=ss2zp(A,B,C,D,iu) 零、极点模型参数 iu 用于指定变换所需的输入量,iu 默认为单输入情况。 传递函数向状态空间表达式形式的转换 sys=ss(G) or [A,B,C,D]=tf2ss(num,den) [A,B,C,D]=zp2ss(z,p,k) 例 8.2 11122211220.560.050.03 1.140.2500.1101001x x u x x u y x y x -??????????=+??????????-????????????????=??????? ????? 试用矩阵组[a ,b ,c ,d]表示系统,并求出传递函数。

利用MATLAB设计状态观测器—现代控制理论实验报告

实验六利用MATLAB设计状态观测器 ******* 学号 1121*****

实验目的: 1、学习观测器设计算法; 2、通过编程、上机调试,掌握基于观测器的输出反馈控制系统设计方法。 实验原理: 1、全阶观测器模型: () ()x Ax Bu L y Cx A LC x Bu Ly =++-=-++ 由极点配置和观测器设计问题的对偶关系,也可以应用MATLAB 中极点配置的函数来确定所需要的观测器增益矩阵。例如,对于单输入单输出系统,观测器的增益矩阵可以由函数 L=(acker(A ’,C ’,V))’ 得到。其中的V 是由期望的观测器极点所构成的向量。类似的,也可以用 L=(place(A ’,C ’,V))’ 来确定一般系统的观测器矩阵,但这里要求V 不包含相同的极点。 2、降阶观测器模型: ???w Aw By Fu =++ b x w Ly =+ 基于降阶观测器的输出反馈控制器是: ????()[()]()b a b b a b w A FK w B F K K L y u K w K K L y =-+-+=--+ 对于降阶观测器的设计,使用MATLAB 软件中的函数 L=(acker(Abb’,Aab’,V))’ 或 L=(place(Abb’,Aab’,V))’ 可以得到观测器的增益矩阵L 。其中的V 是由降阶观测器的期望极点所组成的向量。 实验要求 1.在运行以上例程序的基础上,考虑图6.3所示的调节器系统,试针对被控对象设计基于全阶观测器和降 阶观测器的输出反馈控制器。设极点配置部分希望的闭环极点是1,22j λ=-± (a ) 对于全阶观测器,1 8μ=-和 28μ=-; (b ) 对于降阶观测器,8μ=-。 比较系统对下列指定初始条件的响应: (a ) 对于全阶观测器: 1212(0)1,(0)0,(0)1,(0)0x x e e ==== (b ) 对于降阶观测器: 121(0)1,(0)0,(0)1x x e === 进一步比较两个系统的带宽。

控制系统状态空间分析的 MATLAB 设计

《控制系统状态空间分析的MATLAB 设计》 摘要 线性系统理论主要研究线性系统状态的运动规律和改变这些规律的可能性与实施方法;它包含系统的能控性、能观测性、稳定性分析、状态反馈、状态估计及补偿器的理论和设计方法。本文说明,线性变换不改变系统的传递函数,基于状态空间的极点配置不需要附加矫正装置,是改变系统指标的简单可行的重要技术措施;全维状态观测器与降维观测器不影响系统的输出响应。 关键词:状态反馈、极点配置、全维状态观测器、降维观测器 前言 线性系统理论是现代控制理论的基础,主要研究线性系统状态的运动规律 和改变这些规律的可能性与实施方法;建立和揭示系统结构、参数、行为和性能之间的关系。它包含系统的能控性、能观测性、稳定性分析、状态反馈、状态估计及补偿器的理论和设计方法。 该报告结合以线性定常系统作为研究对象,分析控制系统动态方程,系统 可控标准型,线性变换传递函数及其不变性,系统可控性与可观测性。系统状态观测器及降维观测器对系统的阶跃响应的影响,并分别绘制模型,及其系统阶跃响应的仿真。 正文 1. 已知系统动态方程: x?=[?0.40?0.01100?1.49.8?0.02]x +[6.309.8]u y =[0 1]x 2. 设计内容及要求:

验证线性变换传递函数不变性,适当配置闭环适当配置系统闭环极点,使 σ%<15%、t s <4s ,以及当系统闭环极点为λ1,2=-3±j4时设计系统的降维状态观测器也使σ%<15%、t s <4s ,并绘制带反馈增益矩阵K 的降维状态观测器及其系统仿真。 3. 系统设计: 1)求系统可控标准型动态方程; >> A1=[-0.4 0 -0.01;1 0 0;-1.4 9.8 -0.02]; >> B1=[6.3;0;9.8]; >> C1=[0 0 1]; >> D1=0; >> G1=ss(A1,B1,C1,D1); >> n=size(G1.a); >> Qc=ctrb(A1,B1); >> pc1=[0 0 1]*inv(Qc); >> Pc=inv([pc1;pc1*A1;pc1*A1*A1]); >> G2 = ss2ss(G1,inv(Pc)); >> Gtf=tf(G2); 程序运行结果知n=3,原系统是可控的且可控标准型为: x?=[0 1 00 01?0.0980.006 ?0.42]x?+[001 ]u y ?=[61.74 ?4.99.8]x? 传递函数为: G (s )=9.8s 2?4.9s+61074 s 3+0.42s 2?0.006s+0.098 2)计算系统的单位阶跃响应 >> hold on >> grid on;hold on; >> step(G1,t,'b-.') >> step(Gtf,t,'r--')

现代控制理论MATLAB算法

现代控制理论MATLAB 实现 例6.1.2系统的线性化模型如下 []x Cx y u x Bu Ax x 00 01101001100 1000010000 1 0. ==? ????? ??????-+????????? ???-=+= 其中x 是系统的状态变量,y 是小车的位移,u 是作用小车的力 1在Ae e =. 作用下的误差如下。M 文件如下 得到的如下的结果:

设计一个状态观测器,使得观测器极点是 10,10,322,3224321-=-=+-=+-=u u j u j u 解 观测器模型如下 Ly Bu x LC A x ++-=~ . )(~ 运行如下m 文件

状态估计的误差状态方程为: e LC A e )(. -= 以下进一步通过仿真来检验观测器的效果,取初始误差向量为 []T e 1.01.021)0(-= 执行如下m 文件 状态估计的误差曲线如下

降维观测器的题:例6,3,2考虑系统 Cx y Bu Ax x =+=. 其中,[]001,100,6116100010=?? ?? ? ?????=??????????---=C B A 设计一个具有极点u1=-10,u2=-10,的降维的观测器。 因此降阶观测器的增益矩阵是L=[]T 514,具有期望极点的降阶观测器为 u y w w ? ? ? ???+??????--+??????---=10260191616114~.~ 跟踪控制器的设计例5.4.1已知被控对象的状态空间模型为 []x y u x x 21104310 . =??????+? ?????--= 设计状态反馈控制器,使得闭环极点为-4和-5,和跟踪控制器。并讨论闭环系统

实验八MATLAB状态空间分析

实验八 线性系统得状态空间分析 §8、1 用MATLAB 分析状态空间模型 1、状态空间模型得输入 线性定常系统状态空间模型 将各系数矩阵按常规矩阵形式描述。 [][] [] 11121120101;;; n n n nn n n A a a a a a a B b b b C c c c D d ====?L L L ?L ?L ? 在MA TLAB 里,用函数SS()来建立状态空间模型 例8、1 已知某系统微分方程 求该系统得状态空间模型。 解:将上述微分方程写成状态空间形式 , , 调用MATLAB 函数SS(),执行如下程序 % MATLAB Program example 6、1、m A=[0 1;-7 -3]; B=[0;1]; C=[5 0]; D=0; sys=ss(A,B,C,D) 运行后得到如下结果 a = x1 x2 x1 0 1 x2 -7 -3 b = u1 x1 0 x2 1 c =

x1 x2 y1 5 0 d = u1 y1 0 Continuous-time model 、 2、状态空间模型与传递函数模型转换 状态空间模型用sys 表示,传递函数模型用G 表示。 G=tf(sys) sys=ss(G) 状态空间表达式向传递函数形式得转换 G=tf(sys) Or [num,den]=ss2tf(A,B,C,D) 多项式模型参数 [num,den]=ss2tf(A,B,C,D,iu) [z,p,k]=ss2zp(A,B,C,D,iu) 零、极点模型参数 iu 用于指定变换所需得输入量,iu 默认为单输入情况。 传递函数向状态空间表达式形式得转换 sys=ss(G) or [A,B,C,D]=tf2ss(num,den) [A,B,C,D]=zp2ss(z,p,k) 例 8、2 11122211220.560.050.03 1.140.2500.1101001x x u x x u y x y x -??????????=+??????????-????????????????=??????? ?????&& 试用矩阵组[a ,b ,c ,d]表示系统,并求出传递函数。 % MATLAB Program example 6、2、m a=[-0、56 0、05;-0、25 0]; b=[0、03 1、14;0、11 0]; c=[1 0;0 1]; d=zeros(2,2); sys=ss(a,b,c,d) G1=tf(sys) G2=zpk(sys) 运行后得到如下结果

实验二利用MATLAB求取线性系统的状态空间模型的解

现代控制理论第一次上机实验报告 实验二 利用MATLAB 求取线性系统的状态空间模型的解 实验目的: 1、根据状态空间模型分析系统由初始状态和外部激励所引起的响应; 2、通过编程、上机调试,掌握系统运动的分析方法。 实验原理: 一、系统时域响应的求解方法 给定系统的状态空间模型: ()()()()()() x t Ax t Bu t y t Cx t Du t =+=+ (2.1) 设系统的初始时刻00t =,初始状态为(0)x ,则系统状态方程的解为 0()0 ()(0)()(0)()t At At A t At A t x t e x e e Bu d e x e Bu d ττττττ--=+=+?? (2.2) 输出为 ()0()(0)()()t At A t y t Ce x C e Bu d Du t τττ-=++? (2.3) 包括两部分,第一部分是由系统自由运动引起的,是初始状态对系统运动的影响;第二部分是由控制输入引起的,反映了输入对系统状态的影响。输出()y t 由三部分组成。第一部分是当外部输入等于零时,由初始状态0()x t 引起的,故为系统的零输入响应;第二部分是当初始状态0()x t 为零时,由外部输入引起的,故为系统的外部输入响应;第三部分是系统输入的直接传输部分。 实验步骤 1、构建系统的状态空间模型,采用MA TLAB 的m-文件编程; 2、求取系统的状态和输出响应; 3、在MA TLAB 界面下调试程序,并检查是否运行正确。

实验要求 1、在运行以上程序的基础上,应用MA TLAB 验证一个振动现象可以由以下系统产生: 01()10x t x ??=??-?? 证明该系统的解是 cos sin ()(0)sin cos t t x t x t t ??=??-?? 假设初始条件0(0) 1x ??=???? ,用Matlab 观察该系统解的形状。 m-程序如下: A=[0 1;-1 0]; B=[0;0]; D=B; C=[1 0;0 1]; sys=ss(A,B,C,D); x0=[0;1]; t=[0:0.01:20]; [y,T,x]=lsim(sys,u,t,x0) subplot(2,1,1),plot(T,x(:,1)) xlabel('Time(sec)'),ylabel('X_1') subplot(2,1,2),plot(T,x(:,2)) xlabel('Time(sec)'),ylabel('X_2') 仿真结果如下:

利用MATLAB对状态空间模型进行分析

实验2 利用MATLAB 对状态空间模型进行分析 2.1 实验设备 同实验1。 2.2 实验目的 1、根据状态空间模型分析系统由初始状态和外部激励所引起的响应; 2、通过编程、上机调试,掌握系统运动的分析方法。 2.3 实验原理说明 给定系统的状态空间模型: ) ()()()()()(t t t t t t Du Cx y Bu Ax x +=+=& (2.1) 设系统的初始时刻,初始状态为,则系统状态方程的解为 )0(x 00=t ∫∫??+=+=t t t t t t e e e e e t 0 )(0 d )()0(d )()0()(τ ττ τττ Bu x Bu x x A A A A A (2.2) 输出为 )(d )()0()(0 )(t e e t t t t Du Bu C x C y A A ++=∫?τττ (2.3) )(t x 包括两部分,第一部分是由系统自由运动引起的,是初始状态对系统运动的影响; 第二部分是由控制输入引起的,反映了输入对系统状态的影响。输出由三部分组成。第一部分是当外部输入等于零时,由初始状态引起的,故为系统的零输入响应;第二 部分是当初始状态为零时,由外部输入引起的,故为系统的外部输入响应;第三部分是系统输入的直接传输部分。 )(t y )(0t x )(0t x MATLAB 函数: 函数initial(A,B,C,D,x0)可以得到系统输出对初始状态x0的时间响应; 函数step(A,B,C,D)给出了系统的单位阶跃响应曲线; 函数impulse(A,B,C,D) 给出了系统的单位脉冲响应曲线; 函数 [y,T,x]=lsim(sys,u,t,x0) 给出了一个状态空间模型对任意输入的响应,其中的sys 表示贮存在计算机内的状态空间模型,它可以由函数sys=ss(A,B,C,D)得到,x0是初始状态。 u 2.4 实验步骤 1、构建系统的状态空间模型,采用MATLA 的m-文件编程; 2、求取系统的状态和输出响应; 3、在MATLA 界面下调试程序,并检查是否运行正确。 例2.1 考虑由以下状态方程描述的系统: ?? ? ???=????????????????????=??????12)0()0(,51010212121x x x x x x && 求该系统状态对初始状态的时间响应。 编写和执行以下m-文件

现代控制理论matlab

控制理论的matlab方法 系统的三种描述: 状态空间表达式ss: A=[1 0 0;0 1 0;0 0 1]; B=[1;1;1]; %注意是分号分开,因为需要一个列矩阵。A与B必须有相同的行数!!C=[1 1 1] D=0 转换成系统 Sys=ss(A,B,C,D); 传递函数表达式tf: num=[1 1]; den=[1,2,5]; sys2=tf(num,den) Transfer function: s + 1 ------------- s^2 + 2 s + 5 零极点增益表达式apk: z=1 p=[-2.5+3.7081i,-2.5-3.7081i] k=1 sys3=zpk(z,p,k)

Zero/pole/gain: (s-1) --------------- (s^2 + 5s + 20) 传递函数变换运算:传递函数分部展开: G s=k+ r i s?p i ∞ i=1 num=[1 1]; den=[1,2,5]; [r p k]=residue(num,den); r = 0.5000 0.5000 p = -1.0000 + 2.0000i -1.0000 - 2.0000i k = [] 不同表达之间的转换: ss = 状态空间表达式 tf = 传递函数 zp = 零极点模型

所以又以下组合: [num,den]=ss2tf(A,B,C,D) [z,p,k]= ss2zp(A,B,C,D) [A,B,C,D]=tf2ss(num,den) [A,B,C,D]=zp2ss(z,p,k) 求最小实现: 返回最小的状态空间表达式[As,Bs,Cs,Ds] = minreal(A,B,C,D) 求单个输入的传递函数: [num den]=ss2tf(A,B,C,D,iu) iu 指第n个输入 求稳态输出: Gss=dcgain(sys) 求特征值和特征向量 >> X=[3,-1,-2;2,0,-2;2,-1,-1]; >> [P,lambda]=eig(X) P = 0.7276 -0.5774 0.7210 0.4851 -0.5774 0.0615 0.4851 -0.5774 0.6902

北京交通大学现代控制理论matlab实验报告

实验一利用MATLAB进行线性系统 的模型转换及联结 课程:现代控制理论 姓名:王柬文 学号:11212070 班级:自动化1103 指导教师:张勇

标题 (1) 目录 (2) 一实验目的: (3) 二实验原理: (3) 三实验步骤: (7) 四实验要求: (7) 五实验内容: (9) 1 (9) 2 (18) 3 (29) 4 (36) 5 (37) 六实验感想: (40)

一 实验目的: 1、学习系统状态空间模型的建立方法、了解状态空间模型与传递函数、零极点模型之间相互转换的方法; 2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的方法。 3、通过编程、上机调试,掌握系统模型的联结方法。 二 实验原理: 一、连续系统 (1)状态空间模型 x Ax Bu y Cx Du =+=+ (1.1) 其中:n x R ∈是系统的状态向量,m u R ∈是控制输入,p y R ∈是测量输出,A 是n n ?维状态矩阵、B 是n m ?维输入矩阵、C 是p n ?维输出矩阵、D 是直接转移矩阵。在MATLAB 中,用(A,B,C,D )矩阵组表示。 系统传递函数和状态空间模型之间的关系如式(1.2)所示。 1()()G s C sI A B D -=-+ (1.2) (2)传递函数模型 1110 1110 ()(),()m m m m n n n n b s b s b s b num s H s m n den s a s a s a s a ----++++==≤++++ 在MATLAB 中,直接用分子/分母的系数表示 1010[,,,][,, ,] m m n n num b b b den a a a --== (3)零极点增益模型 1212()()() ()()()() m n s z s z s z H s k s p s p s p ---=--- 在MATLAB 中,用[z, p, k]矢量组表示,即

Matlab在自动控制中的应用

MATLAB在控制理论中的应用 摘要:为解决控制理论计算复杂问题,引入了MATLAB。以经典控制理论和现代控制理论中遇到的一些问题为具体实例,通过对比的手法,说明了MATLAB 在控制理论应用中能节省大量的计算工作量,提高解题效率。 引言:现代控制理论是自动化专业一门重要的专业基础课程,内容抽象,且计算量大,难以理解,不易掌握。采用MATLAB软件计算现代控制理论中的问题可以很好的解决这些问题。自动控制理论分为经典控制理论和现代控制理论,在控制理论学习中,经常要进行大量的计算。这些工作如果用传统方法完成,将显得效率不高,额误差较大。因此。引用一种借助于计算机的高级语言来代替传统方法就显得十分必要。MATLAB集科学计算,可视化,程序设计于一体,对问题的描述与求解较为方便,在控制理论的学习中是一种备受欢迎的软件。 MATLAB简介:MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB 可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 1、MATLAB在系统的传递函数和状态空间模型之间的相互转换的应用:例1:求以下状态空间模型所表示系统的传递函数: 解:执行以下的M-文件:

实验八MATLAB状态空间分析知识讲解

实验八M A T L A B状态 空间分析

实验八 线性系统的状态空间分析 §8.1 用MATLAB 分析状态空间模型 1、状态空间模型的输入 线性定常系统状态空间模型 x Ax Bu y Cx Du =+=+ 将各系数矩阵按常规矩阵形式描述。 [][][]11 121120 10 1;;;n n n nn n n A a a a a a a B b b b C c c c D d ==== 在MATLAB 里,用函数SS()来建立状态空间模型 (,,,)sys ss A B C D = 例8.1 已知某系统微分方程 22d d 375d d y y y u t t ++= 求该系统的状态空间模型。 解:将上述微分方程写成状态空间形式 0173A ??=??--??,01B ??=???? []50C =,0D = 调用MATLAB 函数SS(),执行如下程序 % MATLAB Program example 6.1.m A=[0 1;-7 -3]; B=[0;1]; C=[5 0]; D=0;

sys=ss(A,B,C,D) 运行后得到如下结果 a = x1 x2 x1 0 1 x2 -7 -3 b = u1 x1 0 x2 1 c = x1 x2 y1 5 0 d = u1 y1 0 Continuous-time model. 2、状态空间模型与传递函数模型转换 状态空间模型用sys表示,传递函数模型用G表示。 G=tf(sys) sys=ss(G) 状态空间表达式向传递函数形式的转换 G=tf(sys) Or [num,den]=ss2tf(A,B,C,D)多项式模型参数[num,den]=ss2tf(A,B,C,D,iu) [z,p,k]=ss2zp(A,B,C,D,iu)零、极点模型参数 iu用于指定变换所需的输入量,iu默认为单输入情况。传递函数向状态空间表达式形式的转换 sys=ss(G)

现代控制理论Matlab实验报告

现代控制理论第一次Matlab 实验报告 一、实验目的: 1、学习系统状态空间模型的建立方法、了解状态空间模型与传递函数、零极点模型之间相互转换的方法; 2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的方法。 3、通过编程、上机调试,掌握系统模型的联结方法。 二、实验过程 实验题目1: (1)在运行以上例程序的基础上,应用MATLAB 求下面传递函数阵的状态空间实现 232252()234 s s s G s s s s +????++??=+++ 提示:num =[0 0 1 2;0 1 5 3] (2)Matlab 源程序 num=[0 0 1 2;0 1 5 3]; den=[1 2 3 4]; [A,B,C,D]=tf2ss(num,den); (3)实验结果 A = -2 -3 -4 1 0 0 0 1 0 B = 1 C = 0 1 2 1 5 3 D =

实验题目2: (1)一个双输入双输出系统 112233412311022711353x x x x u x x -????????????????=+????????????????-???????? 11223120011x y x y x ????????=?????????????? 求出此模型的能控标准型和能观标准型。 提示:写出两个子系统的传递函数模型,进而求出这两个传递函数模型的能控标准型实现或能观标准型实现,讨论是否能通过子系统的能控标准型实现或能观标准型实现求出原来系统的能控标准型和能观标准型。 (2)Matlab 源程序 A=[4 1 -2;1 0 2;1 -1 3]; B=[3 1;2 7;5 3]; C=[1 2 0;0 1 1]; D=[0 0;0 0]; [num1,den1]=ss2tf(A,B,C,D,1); [num2,den2]=ss2tf(A,B,C,D,2); (3)实验结果: num1 = 0 7.0000 -19.0000 -36.0000 0 7.0000 -20.0000 -23.0000 den1 = 1.0000 -7.0000 15.0000 -9.0000 num2 = 0 15.0000 -86.0000 135.0000 0 10.0000 -60.0000 98.0000 den2 =

Matlab在《现代控制理论》教学中的运用

Matlab在《现代控制理论》教学中的运用 摘要:Matlab软件是进行控制系统分析与计算的辅助工具,通过应用Matlab软件对控制系统的分析与计算的实例,说明Matlab可以计算控制系统的参数,使控制问题变得简单,从而可以提高学生的学习效率,提高学习兴趣。《现代控制理论》教学中,Matlab是分析系统的有效工具。 关键词:Matlab;现代控制理论;系统 《现代控制理论》为自动化及相关专业的本科生开设的课程。现代控制理论是建立在状态空间法基础上的,其对控制系统的分析与设计主要是通过对系统的状态方程来描述,主要方法就是时间域方法。包括线性系统和非线性系统,定常系统和时变系统,单输入单输出系统和多输入多输出系统。现代控制理论的控制系统的分析与设计中采用了现代数学作为工具,因此,将带来大量的计算。在《现代控制理论》的教学中,如果系统的设计等都采用手算的方法,显然是不太合适的。 Matlab是matrix和laboratory两个词的组合,意为矩阵实验室,用于数值计算、系统分析、系统的仿真,Matlab 不断发展的工具箱使其日益丰富,作为一个功能强大的软件平台,它代表了当今国际科学计算软件的先进水平。在《现代控制理论》教学中,利用Matlab来计算控制系统的计算

与仿真问题,可以加深对《现代控制理论》这门课的理解,形成良好的互动。 本文将对《现代控制理论》教学中Matlab的应用做些探讨。 一、Matlab在系统稳定性分析中李雅普诺夫处理方法中的应用 例,应用李雅普诺夫方程方法分析系统稳定性。 解:原点是系统的唯一平衡点。解李雅普诺夫方程 ATP+PA=-1 系统是二阶的,故 P=P11 P12P12 P22x 将矩阵A和P的表达式带入李雅普诺夫方程中,得 得方程组-2P12=-12P11-P12-P22=04P12-2P22=-1 求解方程组,可得 P11 P12P12 P22=1 验证矩阵P的正定性,算得P的各阶行列式都大于0,故P为正定的,故系统是渐近稳定的。 从上面的解题步骤我们可以看到计算有点繁琐,现在应用Matlab函数P=lyap(A’,Q),求解李雅普诺夫方程ATP+PA=-Q。 采用Matlab编程实现如下 从中得到P的特征值一个为0.6910,一个为1.8090,

现代控制理论习题MATLAB作业

第一章:控制系统状态空间模型 1.由传递函数求状态空间表达式: 已知传递函数G (S )=32 1010 +6510 s s s s +++,求其状态空间空间表达式的相应矩阵A ,B ,C ,D 。 2.由状态空间表达式求传递函数:

第二章 系统的运动分析 1.单位阶跃响应: >> A=[-1 -1;6.5 0];B=[1 1;1 0]; >> C=[1 0;0 1];D=[0 0 ;0 0] >> step(A,B,C,D) -0. -0.-0.-0.0.0.0.T o : O u t (1)0 246810120.1.T o : O u t (2 ) 024681012 S t ep R esponse Ti m e (seconds) A m p l i t u d e 2.脉冲响应 >> A=[0 1;-1 -1];B=[0;1]; >> C=[1 0];D=[0] >> impulse(A,B,C,D) >> title('Unit-Impulse Response') 0246 810 12 -0.0.0.0.0.0.0.T i m e (seconds) A m p l i t u d e

3.初始状态响应 >> A=[0 1;-10 -5];B=[0;0];D=B; >> C=[1 0;0 1]; >> x0=[2;1]; >> [y, x, t]=initial(A,B,C,D,x0); >> plot(t;x(:,1),t,x(:,2)) (坐标标注程序代码省略) -3-2 -1 1 2 3 R esponse t o I ni t i al C ondi t i on t i m e(sec) x 1 x 2 4.线性定常离散系统单位阶跃响应 >> num=[2,-3.4,1.5]; den=[1,-1.6,0.8]; >> dstep(num,den) 0102030 405060 -0.0.1.Ti m e (seconds) A m p l i t u d e

相关文档
相关文档 最新文档