利用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实现

现代控制理论的MATLAB实现现代控制理论是控制工程中一门重要的学科,它研究如何设计和分析控制系统以满足一定的性能指标。
MATLAB是一种功能强大的科学计算和工程仿真软件,广泛应用于控制系统设计与分析。
本文将介绍现代控制理论的一些常见方法在MATLAB中的实现。
1.线性系统的状态空间表示线性系统的状态空间表示是现代控制理论的核心内容之一、在MATLAB中,可以使用`ss`命令创建线性系统的状态空间模型。
例如,假设存在一个二阶线性时不变系统,其传递函数为:可以使用以下代码将其转换为状态空间模型:```matlabnum = [1];den = [1, 1, 1];sys = tf(num, den);ss_sys = ss(sys);```2.线性系统的传递函数表示传递函数是描述线性系统输入输出关系的一种常用表示方法。
在MATLAB中,可以使用`tf`命令创建线性系统的传递函数模型。
例如,假设存在一个二阶线性时不变系统,其状态空间描述为:```matlabA=[0,1;-1,-1];B=[0;1];C=[1,0];D=0;ss_sys = ss(A, B, C, D);```可以使用以下代码将其转换为传递函数模型:```matlabtf_sys = tf(ss_sys);```3.常见控制器的设计与分析现代控制理论中常用的控制器设计方法包括PID控制器、根轨迹法、频率域分析等。
在MATLAB中,可以使用`pid`命令创建PID控制器,并使用`rlocus`命令绘制根轨迹图。
例如,创建一个PID控制器:```matlabKp=1;Kd=0.1;pid_controller = pid(Kp, Ki, Kd);```绘制根轨迹图:```matlabsys = tf([1], [1, 1, 1]);rlocus(sys);```4.系统的频率响应分析频率响应分析是现代控制理论中常用的系统性能评估方法之一、在MATLAB中,可以使用`bode`命令绘制系统的频率响应曲线。
现代控制理论基础实验指导书200

现代控制理论基础实验指导书实验一:控制系统模型转换一、实验目的1.掌握控制系统模型转换,并使用计算机仿真软件验证。
2.学习并会简单应用MATLAB软件。
二、实验器材[1] 微型计算机[2] MATLAB软件三、实验要求与任务1.设系统的零极点增益模型为,求系统的传递函数及状态空间模型。
解:在MATLAB软件中,新建m文件,输入以下程序后保存并运行。
%Example 1%k=6;z=[-3];p=[-1,-2,-5];[num,den]=zp2tf(z,p,k)[a,b,c,d]=zp2ss(z,p,k)其中:zp2tf函数——变零极点表示为传递函数表示zp2ss函数——变零极点表示为状态空间表示记录实验结果,并给出系统的传递函数及状态空间模型。
2.给定离散系统状态空间方程求其传递函数模型和零极点模型,并判断其稳定性。
解:在MATLAB软件中,新建m文件,输入以下程序后保存并运行。
%Example 2%a=[ 0 0 ; 0 0 0; ;0 0 0];b=[1;0;1;0];c=[0,0,0,1];d=[0];[num,den]=ss2tf(a,b,c,d)[z,p,k]=ss2zp(a,b,c,d)pzmap(p,z)title('Pole-zero Map')其中:ss2tf函数——变状态空间表示为传递函数表示ss2zp函数——变状态空间表示为零极点表示pzmap ——零极点图记录实验结果,并给出系统的传递函数模型和零极点模型;绘出图形,并判断系统稳定性。
3.已知系统的传递函数为,求系统的零极点增益模型及状态空间模型。
tf2zp函数——变系统传递函数形式为零极点增益形式tf2ss函数——变系统传递函数形式为状态空间表示形式编写程序,记录实验结果,并给出系统的状态空间模型和零极点模型。
4.已知系统状态空间表达式为ss2tf函数——变状态空间表示为传递函数表示ss2zp函数——变状态空间表示为零极点表示编写程序,记录实验结果,并给出系统传递函数模型和零极点模型。
利用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编程

现代控制理论实验报告姓名:班级:学号:目录一.实验设备二.实验目的三.实验步骤一、实验设备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。
基于matlab的状态观测器设计

基于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来保证。
实验 6 极点配置与全维状态观测器的设计

实验 6 极点配置与全维状态观测器的设计一、实验目的1. 加深对状态反馈作用的理解。
2. 学习和掌握状态观测器的设计方法。
二、实验原理在MATLAB 中,可以使用acker 和place 函数来进行极点配置,函数的使用方法如下:K = acker(A,B,P) A,B为系统系数矩阵,P为配置极点,K为反馈增益矩阵。
K = place(A,B,P) A,B为系统系数矩阵,P为配置极点,K为反馈增益矩阵。
[K,PREC,MESSAGE] = place(A,B,P) A,B为系统系数矩阵,P为配置极点,K为反馈增益矩阵,PREC 为特征值,MESSAGE 为配置中的出错信息。
三、实验内容1.已知系统(1)判断系统稳定性,说明原因。
(2)若不稳定,进行极点配置,期望极点:-1,-2,-3,求出状态反馈矩阵k。
(3)讨论状态反馈与输出反馈的关系,说明状态反馈为何能进行极点配置?(4)使用状态反馈进行零极点配置的前提条件是什么?1.(1)(2)代码:a=[-2 -1 1;1 0 1;-1 0 1];b=[1,1,1]';p=[-1,-2,-3]';K=acker(a,b,p)K =-1 2 4(3)讨论状态反馈与输出反馈的关系, 说明状态反馈为何能进行极点配置?在经典控制理论中,一般只考虑由系统的输出变量来构成反馈律,即输出反馈。
在现代控制理论的状态空间分析方法中,多考虑采用状态变量来构成反馈律,即状态反馈。
从状态空间模型输出方程可以看出,输出反馈可视为状态反馈的一个特例。
状态反馈可以提供更多的补偿信息,只要状态进行简单的计算再反馈,就可以获得优良的控制性能。
(4)使用状态反馈配置极点的前提是系统的状态是完全可控的。
2.已知系统设计全维状态观测器,使观测器的极点配置在12+j,12-j 。
(1)给出原系统的状态曲线。
(2)给出观测器的状态曲线并加以对比。
(观测器的初始状态可以任意选取)观察实验结果,思考以下问题:(1)说明反馈控制闭环期望极点和观测器极点的选取原则。
实验2 利用MATLAB判断系统的稳定性

G=Gt' (3)极点配置状态反馈系统的实现 根据(2)中的运行结果,用 SIMULINK 搭建仿真模型,实现极点配置状态反馈系统,绘制 系统的单位阶跃响应曲线
Step 1
x2 1 s Integrator 4
3
Gain 9
1 Gain 11
3 Gain 12
x1 1 s
Integrator 5
2 Gain 10
x
0 2
1 3
x
0 1u
y 1 0
K=
31
G=
9
7
三
:
示
波
器
图
形
四: a:
b
:
五:
(2)实验体会。
1:带有状态观测器的状态反馈系统在不同初始条件下更加稳定,反馈平稳,图像更加平缓, 稳定性更强。 2:初始状态值越大,系统稳定性 越低,、反馈时间越长,系统平稳所需时间越长。
[z,p,k]=ss2zp(A,B,C,D,1)
z= -4.3028 -0.6972
p= -1.6506 -0.1747 + 1.5469i -0.1747 - 1.5469i
k= 1
二:已知系统的状态方程和输出方程如下,用状态反馈使闭环系统的极点为-2+j、-2-j,
由于状态变量不能量测,设计状态观测器使观测器的极点为-6,-6
2 Gain 4
4 Out 4
Scope
4.实验报告: (1)写出将实验内容的程序和运行结果。
0 1 0 1
x 一:)判定系统的稳定性
0
0
1
x
- 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 软件
[0410x y ⎢=⎢⎢--⎣=理想闭环系统的极点为(1)采用直接计算法进行闭环系统极点配置;(2)采用Ackermann
订 线
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 = 4
0 -10。