利用MATLAB 实现极点配置、设计状态观测器(现代控制系统)
- 格式:doc
- 大小:102.50 KB
- 文档页数:14
利用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的高阶阶系统单位阶跃响应主导极点分析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语言是一种十分有效的工具,能容易地解决在系统仿真及控制系统设计领域的教学与研究中遇到的问题,它可以将使用者从频繁的底层编程中解放出来,把有限的宝贵时间更多地华仔解决科学问题上。
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 实现极点配置、设计状态观测器系 专业 自动化 班 姓名 学号 授课老师 预定时间实验时间实验台号一、目的要求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 实现极点配置、设计状态观测器系 专业 自动化 班 姓名 学号 授课老师 预定时间实验时间实验台号一、目的要求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设计状态反馈矩阵运行步骤步骤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函数计算闭环系统的状态空间模型。
现代控制理论实验报告姓名:班级:学号:目录一.实验设备二.实验目的三.实验步骤一、实验设备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。
河南工业大学《现代控制理论》实验报告专业: 自动化 班级: F1203 姓名: 蔡申申 学号:201223910625完成日期:2015年1月9日 成绩评定:一、实验题目:状态反馈控制器设计二、实验目的1. 掌握状态反馈和输出反馈的概念及性质。
2. 掌握利用状态反馈进行极点配置的方法。
学会用MATLAB 求解状态反馈矩阵。
3. 掌握状态观测器的设计方法。
学会用MATLAB 设计状态观测器。
三、实验过程及结果1. 已知系统u x x ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=111100020003.[]x y 3333.02667.04.0= (1)求解系统的零点、极点和传递函数,并判断系统的能控性和能观测性。
A=[-3 0 0;0 2 0;0 0 -1];B=[1;1;1];C=[0.4 0.266 0.3333];[z p k]=ss2zp(A,B,C,0)系统的零极点:z =1.0017-1.9997p =-3-12k =0.9993[num den]=ss2tf(A,B,C,0)num =0 0.9993 0.9973 -2.0018den =1 2 -5 -6系统的传递函数:G1=tf(num,den)G1 =0.9993 s^2 + 0.9973 s - 2.002-----------------------------s^3 + 2 s^2 - 5 s - 6Continuous-time transfer function.Uc=ctrb(A,B); rank(Uc)ans =3满秩,系统是能控的。
Vo=obsv(A,C); rank(Vo)ans =3满秩,系统是能观的。
(2)分别选取K=[0 3 0],K=[1 3 2],K=[0 16 /3 –1/3](实验中只选取其中一个K为例)为状态反馈矩阵,求解闭环系统的零点、极点和传递函数,判断闭环系统的能控性和能观测性。
基于MATLAB 的状态观测器设计预备知识: 极点配置基于状态反馈的极点配置法就是通过状态反馈将系统的闭环极点配置到期望的极点位置上,从而使系统特性满足要求。
1. 极点配置原理假设原系统的状态空间模型为:⎩⎨⎧=+=Cxy Bu Ax x 若系统是完全可控的,则可引入状态反馈调节器,且:Kx u input -=这时,闭环系统的状态空间模型为:⎩⎨⎧=+-=Cxy Bu x )BK A (x 2. 极点配置的MATLAB 函数 在MATLAB 控制工具箱中,直接用于系统极点配置的函数有acker()和place()。
调用格式为:K=acker(A,C,P) 用于单输入单输出系统其中:A ,B 为系统矩阵,P 为期望极点向量,K 为反馈增益向量。
K=place(A,B,P)(K,prec,message)=place(A,B,P)place()用于单输入或多输入系统。
Prec 为实际极点偏离期望极点位置的误差;message 是当系统某一非零极点偏离期望位置大于10%时给出的警告信息。
3. 极点配置步骤:(1)获得系统闭环的状态空间方程;(2)根据系统性能要求,确定系统期望极点分布P ;(3)利用MATLAB 极点配置设计函数求取系统反馈增益K ; (4)检验系统性能。
已知系统模型如何从系统的输入输出数据得到系统状态?初始状态:由能观性,从输入输出数据确定。
不足:初始状态不精确,模型不确定。
思路:构造一个系统,输出逼近系统状态称为是的重构状态或状态估计值。
实现系统状态重构的系统称为状态观测器。
观测器设计状态估计的开环处理:但是存在模型不确定性和扰动!初始状态未知!应用反馈校正思想来实现状态重构。
通过误差来校正系统:状态误差,输出误差。
基于观测器的控制器设计系统模型若系统状态不能直接测量,可以用观测器来估计系统的状态。
L是观测器增益矩阵,对偏差的加权。
真实状态和估计状态的误差向量误差的动态行为:的极点决定了误差是否衰减、如何衰减?通过确定矩阵L来保证。
实 验 报 告
实验名称 利用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已知系统。