实验六利用MATLAB设计状态观测器
利用MATLAB 实现极点配置、设计状态观测器(现代控制)
实 验 报 告实验名称 利用MATLAB 实现极点配置、设计状态观测器系 专业 自动化 班姓名 学号 授课老师 预定时间 实验时间实验台号 一、目的要求1、掌握状态反馈和输出反馈的概念及性质。
2、掌握利用状态反馈进行极点配置的方法。
学会用MATLAB 求解状态反馈矩阵。
3、掌握状态观测器的设计方法。
学会用MATLAB 设计状态观测器。
4、熟悉分离定理,学会设计带有状态观测器的状态反馈系统。
原理简述状态反馈和输出反馈设线性定常系统的状态空间表达式为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-1 某系统状态方程如下[]010100134326100x x u y x⎡⎤⎡⎤⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥----⎣⎦⎣⎦=& [](s+ (s^2 + +------------------------------------(s+30) (s+ (s^2 + +>> A=[-10 -35 -50 -24;1 0 0 0;0 1 0 0;0 0 1 0];B=[1;0;0;0];C=[1 7 24 24];D=0;G=ss(A,B,C,D);p=[-30 +4i ];k=place(A,B,p);A1=A-B*k;G1=ss(A1,B,C,D);t=0::20;u=ones(size(t));y2=lsim(G1,u,t);y1=lsim(G,u,t);plot(t,y1,':',t,y2,'-')蓝色为配置前,绿色为配置后题5-3 某系统状态空间描述如下[]010100134326100x x u y x⎡⎤⎡⎤⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥----⎣⎦⎣⎦=& 设计全维状态观测器,要求状态观测器的极点为[]123---。
利用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 实现极点配置、设计状态观测器系 专业 自动化 班 姓名 学号 授课老师 预定时间实验时间实验台号一、目的要求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. 极点配置原理假设原系统的状态空间模型为:⎩⎨⎧=+=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的状态观测器设计
基于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实现极点配置、设计状态观测器
实用实验报告实验名称系统稳定性分析、利用MATLAB 实现极点配置、设计状态观测器系专业班姓名学号授课老师预定时间实验时间实验台号一、目的要求掌握系统稳定性的概念。
学会使用MATLAB 确定线性定常系统和非线性定常系统的稳定性。
掌握状态反馈和输出反馈的概念及性质。
掌握利用状态反馈进行极点配置的方法。
学会用MATLAB 求解状态反馈矩阵。
掌握状态观测器的设计方法。
学会用MATLAB 设计状态观测器。
熟悉分离定理,学会设计带有状态观测器的状态反馈系统。
二、原理简述函数 eig( )的调用格式为V=eig(A) 返回方阵A 的特征值。
函数 roots( )的调用格式为roots(den),其中den 为多项式的系数行向量。
计算多项式方程的解。
函数 pole ( )的调用格式为pole(G),其中G 为系统的LTI 对象。
计算系统传递函数的极点。
函数 zpkdata( )的调用格式为[z,p,k]=zpkdata(G,’v’),其中G 为系统LTI 对象。
返回系统的零点、极点和增益。
函数 pzmap( )的调用格式为pzmap(G),其中G 为LTI 对象。
绘制系统的零点和极点。
对于线性定常连续系统x Ax ,若 A是非奇异矩阵,则原点是其唯一的平衡状态。
统在原点处大范围渐近稳定的充分条件是:存在李氏函数v(x) x T px,且v(x)正定,v(x)负定。
如果 SISO 线性定常系统完全能控,则可通过适当的状态反馈, 将闭环系统极点配置到任意期望的位置。
MATLAB 提供的函数 acker( )是用 Ackermann 公式求解状态反馈阵 K。
MATLAB 提供的函数 place( )也可求出状态反馈阵 K。
如果线性定常系统完全能观测,则可构造全维(基本)观测器。
全维(基本)状态观测器的状态方程为观测器的反馈矩阵 L 为其中为系统的能观测矩阵。
其中为期望的状态观测器的极点。
观测器设计是极点配置的对偶问题,故可利用函数 acker( )和 place( )进行求解。
基于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来保证。
基于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来保证。
利用MATLAB设计状态观测器
数
L=(acker(A’,C’,V))’ 得到。其中的 V 是由期望的观测器极点所构成的向量。类似的,也可以用
L=(place(A’,C’,V))’ 来确定一般系统的观测器矩阵,但这里要求 V 不包含相同的极点。
5.3.2 降阶观测器设计
∫ٛ x
y C
-K ~x
A
Fˆ
Cˆ
w~ ∫ٛ
Bˆ
Aˆ
降阶观测器 Dˆ
图 5.2 基于降阶观测器的反馈控制系统
容易证明,误差向量 e = xb − ~xb = w − w~ 满足方程
e& = (A bb − LA b ) 完全能观,则一定可以通过选取一个适当的矩阵 L ,使得误差动态系
试应用 MATLAB 软件,设计一个全维观测器,使得观测器极点是 μ1 = −5 + j5 3 , μ1 = −5 − j5 3 , μ3 = −10 。
配置全阶观测器极点的M-文件为:
a=[0 1 0;0 0 1;1.244 0.3965 -3.145];
19
b=[0;0;1.244]; c=[1 0 0]; v=[-5+j*5*sqrt(3) -5-j*5*sqrt(3) -10]; l=(acker(a',c',v))'
其中: x, u 和 y 分别是系统的 n 维状态向量、 m 维控制输入向量和 p 维测量输出向量,
A, B 和 C 是已知的适当维数常数矩阵。根据系统模型(5.1)和输入输出信息来人为地构
造一个系统,使得其输出 ~x(t) 随着时间的推移逼近系统的真实状态 x(t) ,即
lim[~x(t) − x(t)] = 0
基于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来保证。
基于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来保证。
基于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来保证。
系统稳定性分析报告、利用MATLAB实现极点配置、设计状态观测器
实用实验报告实验名称系统稳定性分析、利用MATLAB 实现极点配置、设计状态观测器系专业班姓名学号授课老师预定时间实验时间实验台号一、目的要求掌握系统稳定性的概念。
学会使用MATLAB 确定线性定常系统和非线性定常系统的稳定性。
掌握状态反馈和输出反馈的概念及性质。
掌握利用状态反馈进行极点配置的方法。
学会用MATLAB 求解状态反馈矩阵。
掌握状态观测器的设计方法。
学会用MATLAB 设计状态观测器。
熟悉分离定理,学会设计带有状态观测器的状态反馈系统。
二、原理简述函数 eig( )的调用格式为V=eig(A) 返回方阵A 的特征值。
函数 roots( )的调用格式为roots(den),其中den 为多项式的系数行向量。
计算多项式方程的解。
函数 pole ( )的调用格式为pole(G),其中G 为系统的LTI 对象。
计算系统传递函数的极点。
函数 zpkdata( )的调用格式为[z,p,k]=zpkdata(G,’v’),其中G 为系统LTI 对象。
返回系统的零点、极点和增益。
函数 pzmap( )的调用格式为pzmap(G),其中G 为LTI 对象。
绘制系统的零点和极点。
对于线性定常连续系统x Ax ,若 A是非奇异矩阵,则原点是其唯一的平衡状态。
统在原点处大范围渐近稳定的充分条件是:存在李氏函数v(x) x T px,且v(x)正定,v(x)负定。
如果 SISO 线性定常系统完全能控,则可通过适当的状态反馈, 将闭环系统极点配置到任意期望的位置。
MATLAB 提供的函数 acker( )是用 Ackermann 公式求解状态反馈阵 K。
MATLAB 提供的函数 place( )也可求出状态反馈阵 K。
如果线性定常系统完全能观测,则可构造全维(基本)观测器。
全维(基本)状态观测器的状态方程为观测器的反馈矩阵 L 为其中为系统的能观测矩阵。
其中为期望的状态观测器的极点。
观测器设计是极点配置的对偶问题,故可利用函数 acker( )和 place( )进行求解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
现代控制理论第五次上机实验报告
实验六 利用MATLAB 设计状态观测器
实验目的:
1、学习观测器设计算法;
2、通过编程、上机调试,掌握基于观测器的输出反馈控制系统设计方法。
实验步骤
1、基于观测器的输出反馈控制系统的设计,采用MA TLAB 的m -文件编程;
2、在MA TLAB 界面下调试程序,并检查是否运行正确。
实验要求
1.在运行以上例程序的基础上,考虑图6.3所示的调节器系统,试针对被控对象设计基于全阶观测器和降
阶观测器的输出反馈控制器。
设极点配置部分希望的闭环极点是1,22j λ=-± (a ) 对于全阶观测器,18μ=-和
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 ===
进一步比较两个系统的带宽。
图6.3 调节器系统
设计闭环极点:
>> a=[0 1;0 -2];
b=[0;1];
c=[4 0];
v1=[-2+j*2*sqrt(3) -2-j*2*sqrt(3)];
K=acker(a,b,v1)
K =
16.0000 2.0000
全阶状态观测器:
>> v2=[-8 -8];
G=(acker((a-b*K)',c',v2))'
G =
3
降阶状态观测器:
>> T1 =[0 1;4 0] ;
>> T =[0 0.25;1 0]; >> a1 =T1*a*T
b1 =T1*b;
c1 =c*T;
Aaa=-2;
Aab=0;
Aba=4;
Abb=0;
Ba=1;
Bb=0;
v3=-8;
l=(acker(Aaa,Aba,v3)) Ahat=Abb-l*Aab
Bhat=Ahat*l+Aba-l*Aaa Fhat=Bb-l*Ba
a1 =
-2 0
4 0
l =
1.5000
Ahat =
Bhat =
7
Fhat =
-1.5000
全阶观测器响应:
>> sys=ss(a-b*K,[0;0],eye(2),0); t=0:0.01:4;
x=initial(sys,[1;0],t);
x1=[1 0 ]*x';
x2=[0 1 ]*x';
subplot(4,2,1);plot(t,x1),grid title('x1')
ylabel('x1')
subplot(4,2,2);plot(t,x2),grid title('x2')
ylabel('x2')
sys1=ss(a-G*c,[0;0],eye(2),0); t=0:0.01:4;
e=initial(sys1,[1;0],t);
e1=[1 0 ]*x'+x1;
e2=[0 1 ]*x'+x2;
subplot(4,2,3);plot(t,e1),grid title('全阶状态观测x1') ylabel('x1guji')
subplot(4,2,4);plot(t,e2),grid title('全阶状态观测x2')
ylabel('x2guji')
降阶观测器响应:
>> sys2=ss(Aaa-l*Aba,1,eye(1),0); t=0:0.01:4;
e3=initial(sys2,1,t);
e4=e3'+x1;
e5=x2;
subplot(4,2,5);plot(t,e4),grid
title('降阶状态观测x1')
ylabel('x1guji')
subplot(4,2,6);plot(t,e5),grid
title('降阶状态观测x2')
ylabel('x2guji')
由上述两图对比可得,降阶观测器衰减速度比全阶观测器快,带宽比全阶观测器窄。
2.假设SISO 受控系统的开环传递函数为
2
1()G s s = (1)若根据系统的性能指标要求,希望配置的系统极点为
12,33,22j λλ=-=-±
求受控系统的状态反馈矩阵。
(2)设计观测器反馈系数矩阵L ,使全维状态观测器的希望极点均为-3.
状态反馈矩阵:
>> A=[0 1 0;0 0 1;0 0 -1];
B=[0;0;1];
C=[1 0 0];
J= [-3 -2+j*2 -2-j*2];
K=acker(A,B,J)
K =
24 20 6
全维观测器:
>> v=[-3 -3 -3];
L=acker(A,B,v)
L =
27 27 8
实验心得:
这次实验做的很艰难,但一点点弄出来之后对观测器的理解也表的更加深刻,通过matlab编程仿真更加形象地了解了全阶观测器和降阶观测器的特点。