利用MATLAB 实现极点配置、设计状态观测器(现代控制系统)
利用MATLAB设计状态观测器

利用MATLAB 设计状态观测器本节将介绍用MATLAB 设计状态观测器的若干例子。
我们将举例说明全维状态观测器和最小阶状态观测器设计的MATLAB 方法。
------------------------------------------------[例1] 考虑一个调节器系统的设计。
给定线性定常系统为Cxy Bu Ax x =+=& 式中]01[,10,06.2010=⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡=C B A且闭环极点为)2,1(==i s i μ,其中4.28.1,4.28.121j j −−=+−=μμ期望用观测-状态反馈控制,而不是用真实的状态反馈控制。
观测器的期望特征值为821−==μμ试采用MATLAB 确定出相应的状态反馈增益矩阵K 和观测器增益矩阵e K 。
[解]对于题中给定的系统,可利用如下MATLAB Program 1来确定状态反馈增益矩阵K和观测器增益K。
矩阵eMATLAB Program 1% Pole placement and design of observer ------% ***** Design of a control system using pole-placement% technique and state observer. Solve pole-placement% problem *****% ***** Enter matrices A,B,C,and D *****A=[0 1;20.6 0];B=[0;1]C=[1 0];D=[0];% ***** Check the rank of the controllability matrix Q *****Q=[B A*B];Rank(Q)ans=2% ***** Since the rank of the controllability matrix Q is 2, % arbitrary pole placement is possible *****% ***** Enter the desired characteristic polynomial by% defining the following matrix J and computingpoly(J) *****J=[-1.8+2.4*i 0;0 -1.8-2.4*i];Poly(J)ans=1.000 3.6000 9.0000% ***** Enter characteristic polynomial Phi *****Phi=polyvalm(poly(J),A);% ***** State feedback gain matrix K can be given by ***** K=[0 1]*inv(Q)*PhiK=29.6000 3.6000% ***** The following program determines the observer matrix Ke *****% ***** Enter the observability matrix RT and check its rank *****RT=[C’ A’*C’];rank(RT)ans=2% ***** Since the rank of the observability matrix is 2, design of% the observer is possible *****% **** Enter the desired characteristic polynomial by defining % the following matrix J0 and entering statement poly(JO) *****JO=[-8 0;0 -8];Poly(JO)ans=1 16 64% ***** Enter characteristic polynomial Ph ***** Ph=polyvalm(ply(JO),A);% ***** The observer gain matrix Ke is obtained from ***** Ke=Ph*(inv(RT’))*[0;1]Ke=16.000084.60000求出的状态反馈增益矩阵K 为[]6.36.29=K观测器增益矩阵e K 为⎥⎦⎤⎢⎣⎡=6.8416e K 该观测-状态反馈控制系统是4阶的,其特征方程为0=+−+−C K A sI BKA sI e通过将期望的闭环极点和期望的观测器极点代入上式,可得5764.3746.1306.19)8)(4.28.1)(4.28.1(2342++++=+++−+=+−+−s s s s s j s j s C K A sI BK A sI e这个结果很容易通过MATLAB得到,如MATLAB Program 2所示(MATLAB Program 2是K已MATLAB Program1的继续。
matlab的自动控制原理实现

第 5 章 MATLAB在自动控制原理中的应用
对象名称 tf对象 (传递函数) 属性名称 den 意 义 传递函数分母系数 属性值的变量类型 由行数组组成的单元阵列
num
variable k
传递函数分子系数
传递函数变量 增益 极点
由行数组组成的单元阵列
s、z、p、k、z-1中之一 二维矩阵 由行数组组成的单元阵列
第 5 章 MATLAB在自动控制原理中的应用
第5章 MATLAB在自动控制原理的应用
5.1 控制系统模型 5.2 控制系统的时域分析
5.3 控制系统的根轨迹
5.4 控制系统的频域分析 5.5 系统的状态空间分析函数 5.6 极点配置和观测器设置 5.7 最优控制系统设计
x
p
i
x
D Dd
第 5 章 MATLAB在自动控制原理中的应用
2. 连续系统与采样系统之间的转换函数 函数名 c2d 功 能 调用格式 sysd = c2d(sysc,Ts,method)
连续系统转换为采样系统
d2c
d2d
采样系统转换为连续系统
采样系统改变采样频率
sysc = d2c(sysd,method)
第 5 章 MATLAB在自动控制原理中的应用
2.LTI模型的复杂模型组合 对复杂系统的任意组合,在MATLAB中,则采用集成的软件包,让机器自动去完 成复杂的组合,人们只要输入各环节的LTI模型和相应的联接矩阵与输入矩阵,指定 输出变量,软件包会自动判别输入的模型表述方式,作出相应的运算并最后给出组 合后系统的状态方程。在求解过程中,主要涉及append( )函数和connect( )函数。 通常,由以下五个步骤来完成: ①对方框图中的各个环节进行编号,建立它们的对象模型。 ②利用append函数命令建立无连接的状态空间模型。 sap=append(s1,s2,…,sm) ③按规定写出系统的互联接矩阵q 互联矩阵q中的每一行由组合系统的一个输入编号和构成该输入的其它输出编号 组成,其中该行的第一个元素为该输入的编号,接下来的元素则由构成该输入的其 它子框的输出编号组成,如果为负反馈,则编号应取负号。 ④选择组合系统中需保留的对外的输入和输出端的编号并列出。 Inputs=[i1,i2, …] outputs=[j1, j2,…] ⑤用connect命令生成组合后的系统。
基于Matlab的高阶阶系统单位阶跃响应主导极点分析

基于Matlab的高阶阶系统单位阶跃响应主导极点分析1. 引言在控制系统的设计和分析中,经常会遇到高阶阶系统。
高阶阶系统的单位阶跃响应主导极点分析是一项重要的任务。
通过分析系统的主导极点,可以对系统的动态性能进行评估,并在必要时进行控制器的调整和优化。
Matlab是一种强大的数值计算和编程环境,支持矩阵计算、绘图和数据分析等功能。
本文将介绍在Matlab中对高阶阶系统进行单位阶跃响应主导极点分析的方法和步骤。
2. 单位阶跃响应主导极点分析方法单位阶跃响应主导极点分析是通过分析系统的单位阶跃响应以及极点的位置来评估系统的动态特性。
主导极点是决定系统响应快慢的关键因素。
在Matlab中,可以使用控制系统工具箱中的函数来进行单位阶跃响应主导极点分析。
以下是一套基本的步骤:1.定义系统传递函数:在Matlab中,可以使用tf函数定义系统的传递函数。
例如,对于一个二阶系统,可以定义如下:sys = tf([b0 b1 b2], [a0 a1 a2]);其中b0, b1, b2和a0, a1, a2分别是系统的分子和分母多项式的系数。
2.绘制单位阶跃响应曲线:使用step函数可以绘制系统的单位阶跃响应曲线。
例如:step(sys);该命令将绘制系统的单位阶跃响应曲线。
3.分析主导极点:观察单位阶跃响应曲线,可以确定系统的主导极点。
主导极点是响应曲线上最快的极点。
4.评估系统的动态性能:根据主导极点的位置和单位阶跃响应曲线的特点,可以评估系统的动态性能。
例如,主导极点越远离虚轴,系统的动态响应速度越快。
5.进行控制器调整和优化:根据动态性能评估结果,可以对控制器进行调整和优化,以满足设计要求。
3. 实例分析为了更好地理解基于Matlab的高阶阶系统单位阶跃响应主导极点分析的方法,我们将介绍一个实例。
假设有一个三阶系统,传递函数为:G(s) = (s+2) / ((s+1)(s+3))我们可以在Matlab中进行如下操作:b = [12];a = conv([11], [13]);sys = tf(b, a);step(sys);运行上述代码后,将绘制出系统的单位阶跃响应曲线。
基于matlab gui的控制系统界面设计毕业设计论文

基于MATLAB GUI的控制系统界面设计摘要:MATLAB语言是一种十分有效的工具,能容易地解决在系统仿真及控制系统设计领域的教学与研究中遇到的问题,它可以将使用者从频繁的底层编程中解放出来,把有限的宝贵时间更多地华仔解决科学问题上。
MATLABA GUI是MATLAB人际交互界面。
由于GUI本身提供了windows基本控件的支持,并且具有良好的时间驱动机制,同时提供了MATLAB数学库的接口,所以GUI对于控制系统仿真的平台设计显得十分合适。
GUI对于每个用户窗口生成.fig和.m 文件。
前者负责界面的设计信息,后者负责后台代码的设计。
本文界面设计主要基于MATLAB GUI平台,结合控制系统基础理论和MATLAB控制系统工具箱,实现了用于控制系统界面的设计。
主要包括:进行常规控制环节(比如PID)的图形界面设计,能够在已知传输函数的情况下,输出常用响应曲线。
关键词:控制系统;MATLAB GUI;计算机设计Control system based on MATLAB GUI interface designAbstract: MATLAB language is a very effective tool,and can be easily resolved in the system simulation and control system of teaching in the field of computer-aided design and research problems,it could be the bottom of the user from tedious programming liberate the limted spend more valuable time to solve scientific problems. The MATLAB GUI is the interative interface.As the GUI itself provides the basic control windows support,and has a good mechanism for event-driven,while providing the MATLAB Math Library interface,the GUI for control system simulation platform for the design of it is suitable. GUI window generated for each user.Figand .M file. The former is responsible for the design of the interfaceinformation,which is responsible for the design of the background code.Research done in this article is mainly based on MATLAB GUI platform,the basis of combination of control syetem theory and MATLAB Control System Toolbox,the realization of control systems for computer-aided analysis and design software.Mainly includes:routine control links,such as PID,graphical interface design,can in the known transfer function of the case,the output respnonse curve is commonly used.Key words: Control System;MATLAB GUI;Computer design目录1 概述 (1)1.1 本文研究的目的以及意义 (1)1.2 已了解的本课题国内外研究现状 (1)1.3 本课题研究内容 (3)2 控制系统与MATLAB语言 (3)2.1 控制系统理论基础 (3)2.1.1 控制系统的古典理论与现代理论 (3)2.1.2 控制系统理论的基本内容 (4)2.2 MATLAB语言与控制系统工具箱 (4)2.2.1 MATLAB软件介绍 (5)2.2.2 控制系统工具箱介绍 (7)3 MATLAB简介及应用 (9)3.1 MATLAB GUI (9)3.2 图形用户界面设计工具的启动 (10)3.2.1图形用户界面设计工具的启动方式 (10)3.2.2 菜单方式 (10)3.2.3 图形用户界面设计窗口 (13)3.3 图形用户界面开发环境(GUIDE) (14)3.4 控件对象及属性 (16)3.5 菜单设计 (18)3.5.1 建立用户菜单 (18)3.5.2 菜单对象常用属性 (18)3.5.3 快捷菜单 (18)3.5.4 对话框设计 (19)3.5.5 公共对话框 (19)3.6 GUI程序设计 (19)4 GUI控制系统界面 (20)4.1 GUI控制系统界面设计 (20)4.1.1 具体设计步骤 (20)4.2 具体实现过程 (23)4.2.1 运行效果 (23)4.2.2 实现代码 (24)[参考文献] (25)附录 (26)谢辞 (29)1 概述1.1 本文研究的目的以及意义自动控制原理是自动控制专业和自动化专业的主要课程之一[3],是研究自动控制技术的基础理论课,是必修的专业基础课程。
利用matlab实现极点配置、设计状态观测器(现代控制)

实 验 报 告实验名称 利用MATLAB 实现极点配置、设计状态观测器系 专业 自动化 班 姓名 学号 授课老师 预定时间实验时间实验台号一、目的要求1、掌握状态反馈和输出反馈的概念及性质。
2、掌握利用状态反馈进行极点配置的方法。
学会用MATLAB 求解状态反馈矩阵。
3、掌握状态观测器的设计方法。
学会用MATLAB 设计状态观测器。
4、熟悉分离定理,学会设计带有状态观测器的状态反馈系统。
二、原理简述1、状态反馈和输出反馈设线性定常系统的状态空间表达式为Cxy Bu Ax x =+=如果采用状态反馈控制规律u= r-Kx ,其中 r 是参考输入,则状态反馈闭环系统的传递函数为:B BK A sIC G k 1)]([---=2、极点配置如果 SISO 线性定常系统完全能控,则可通过适当的状态反馈, 将闭环系统极点配置到任意期望的位置。
MATLAB 提供的函数acker( )是用Ackermann 公式求解状态反馈阵K 。
该函数的调用格 式为K=acker(A,B,P)其中A 和B 分别为系统矩阵和输入矩阵。
P 是期望极点构成的向量。
MATLAB 提供的函数place( )也可求出状态反馈阵K 。
该函数的调用格式为 K=place(A,B,P)函数place( )还适用于多变量系统极点配置,但不适用含有多重期望极点的问题。
函数acker( )不适用于多变量系统极点配置问题,但适用于含有多重期望极点问题。
三、仪器设备PC 计算机,MATLAB 软件⎣[y1=lsim(G,u,t); plot(t,y1,':',t,y2,'-')蓝色为配置前,绿色为配置后题5-3 某系统状态空间描述如下[]010100134326100x x u y x⎡⎤⎡⎤⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥----⎣⎦⎣⎦= 设计全维状态观测器,要求状态观测器的极点为[]123---。
程序>> A=[0 1 0;0 0 1;-4 -3 -2];B=[1;3;-6]'; C=[1 0 0]; D=0;p=[-1 -2 -3]; L=(acker(A',C',p))' 结果:L = 40 -10。
利用MATLAB 实现极点配置、设计状态观测器(现代控制)

订 线实 验 报 告实验名称 利用MATLAB 实现极点配置、设计状态观测器系 专业 自动化 班 姓名 学号 授课老师 预定时间实验时间实验台号一、目的要求1、掌握状态反馈和输出反馈的概念及性质。
2、掌握利用状态反馈进行极点配置的方法。
学会用MATLAB 求解状态反馈矩阵。
3、掌握状态观测器的设计方法。
学会用MATLAB 设计状态观测器。
4、熟悉分离定理,学会设计带有状态观测器的状态反馈系统。
二、原理简述1、状态反馈和输出反馈设线性定常系统的状态空间表达式为Cxy Bu Ax x=+=如果采用状态反馈控制规律u= r-Kx ,其中 r 是参考输入,则状态反馈闭环系统的传递函数为:B BK A sIC G k 1)]([---=2、极点配置如果 SISO 线性定常系统完全能控,则可通过适当的状态反馈, 将闭环系统极点配置到任意期望的位置。
MATLAB 提供的函数acker( )是用Ackermann 公式求解状态反馈阵K 。
该函数的调用格 式为K=acker(A,B,P)其中A 和B 分别为系统矩阵和输入矩阵。
P 是期望极点构成的向量。
MATLAB 提供的函数place( )也可求出状态反馈阵K 。
该函数的调用格式为 K=place(A,B,P)函数place( )还适用于多变量系统极点配置,但不适用含有多重期望极点的问题。
函数acker( )不适用于多变量系统极点配置问题,但适用于含有多重期望极点问题。
三、仪器设备PC 计算机,MATLAB 软件[0410x y ⎢=⎢⎢--⎣=理想闭环系统的极点为(1)采用直接计算法进行闭环系统极点配置;(2)采用Ackermann订 线y1=lsim(G,u,t); plot(t,y1,':',t,y2,'-')蓝色为配置前,绿色为配置后题5-3 某系统状态空间描述如下[]010100134326100x x u y x⎡⎤⎡⎤⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥----⎣⎦⎣⎦= 设计全维状态观测器,要求状态观测器的极点为[]123---。
matlab设计状态反馈矩阵运行步骤

matlab设计状态反馈矩阵运行步骤步骤1:定义系统模型我们需要定义系统的状态空间模型。
状态空间模型由系统的状态方程和输出方程组成。
我们可以使用matlab中的tf函数或ss函数来创建系统模型。
例如,如果我们有一个传递函数为G(s)的系统模型,我们可以使用tf函数将其转换为状态空间模型:```G = tf([1],[1 2 1]);sys = ss(G);```在这个例子中,我们创建了一个传递函数为1/(s^2 + 2s + 1)的系统模型,并将其转换为状态空间模型。
步骤2:选择反馈增益矩阵接下来,我们需要选择反馈增益矩阵K。
反馈增益矩阵的选择决定了状态反馈的效果。
一般来说,我们可以使用极点配置方法来选择反馈增益矩阵。
极点配置方法可以使系统的极点移动到我们期望的位置,从而改变系统的响应特性。
在matlab中,我们可以使用place函数来进行极点配置。
place函数需要输入系统模型、期望的极点位置和对应的增益矩阵,然后返回一个满足极点配置要求的反馈增益矩阵。
例如,如果我们希望系统的极点位于-1和-2处,我们可以使用以下代码选择反馈增益矩阵:```desired_poles = [-1 -2];K = place(sys.A, sys.B, desired_poles);```在这个例子中,我们将系统模型的A矩阵和B矩阵作为输入,以及期望的极点位置,然后使用place函数计算反馈增益矩阵K。
步骤3:计算闭环系统的状态空间模型有了反馈增益矩阵K之后,我们可以计算闭环系统的状态空间模型。
闭环系统的状态空间模型由系统的A矩阵、B矩阵、C矩阵和D矩阵组成。
我们可以使用matlab中的feedback函数来计算闭环系统的状态空间模型。
feedback函数需要输入系统模型、反馈增益矩阵和反馈信号的位置,然后返回闭环系统的状态空间模型。
例如,如果我们希望将反馈信号加到系统的输入端,我们可以使用以下代码计算闭环系统的状态空间模型:```feedback_sys = feedback(sys, K, 1);```在这个例子中,我们将系统模型、反馈增益矩阵和反馈信号的位置作为输入,然后使用feedback函数计算闭环系统的状态空间模型。
现代控制理论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(仿真)图4仿真结果示波器显示(仿真输出)(3) 调整比例系数K,使之从零开始增加。
同时,观察仿真曲线的变化,并给出过阻尼、临界、欠阻尼的条件。
当K=0时的仿真曲线当K=1时的仿真曲线当K=2.5时的仿真曲线当K=3。
5时的仿真曲线当K=4时的仿真曲线根据调整比例系数K,使之从零开始增加,同时观察仿真曲线的变化,得出以下结论;过阻尼的条件:K>2.5时;临界阻尼条件:K=2.5时;欠阻尼的条件:K<2。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实 验 报 告
实验名称 利用MATLAB 实现极点配置、设计状态观测器
系 专业 自动化 班 学号 授课老师 预定时间
实验时间
实验台号
一、目的要求
1、掌握状态反馈和输出反馈的概念及性质。
2、掌握利用状态反馈进行极点配置的方法。
学会用MATLAB 求解状态反馈矩阵。
3、掌握状态观测器的设计方法。
学会用MATLAB 设计状态观测器。
4、熟悉分离定理,学会设计带有状态观测器的状态反馈系统。
二、原理简述
1、状态反馈和输出反馈
设线性定常系统的状态空间表达式为
Cx
y Bu Ax x
=+=
如果采用状态反馈控制规律u= r-Kx ,其中 r 是参考输入,则状态反馈闭环系统的传递函数为:
B BK A sI
C G k 1)]([---=
2、极点配置
如果 SISO 线性定常系统完全能控,则可通过适当的状态反馈, 将闭环系统极点配置到任意期望的位置。
MATLAB 提供的函数acker( )是用Ackermann 公式求解状态反馈阵K 。
该函数的调用格 式为
K=acker(A,B,P)
其中A 和B 分别为系统矩阵和输入矩阵。
P 是期望极点构成的向量。
MATLAB 提供的函数place( )也可求出状态反馈阵K 。
该函数的调用格式为 K=place(A,B,P)
函数place( )还适用于多变量系统极点配置,但不适用含有多重期望极点的问题。
函数acker( )不适用于多变量系统极点配置问题,但适用于含有多重期望极点问题。
三、仪器设备
PC 计算机,MATLAB 软件
四、容步骤、数据处理
⎣[
蓝色为配置前,绿色为配置后
题5-3 某系统状态空间描述如下
[]010100134326100x x u y x
⎡⎤⎡⎤
⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥----⎣⎦⎣⎦=
设计全维状态观测器,要求状态观测器的极点为[]123---。
程序>> A=[0 1 0;0 0 1;-4 -3 -2];
B=[1;3;-6]'; C=[1 0 0]; D=0;
p=[-1 -2 -3]; L=(acker(A',C',p))' 结果:L = 4
0 -10
题5-4已知系统。