利用MATLAB 实现极点配置设计状态观测器现代控制

合集下载

利用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 实现极点配置、设计状态观测器系 专业 自动化 班 姓名 学号 授课老师 预定时间实验时间实验台号一、目的要求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 实现极点配置、设计状态观测器(现代控制)

订 线实 验 报 告实验名称 利用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的状态观测器设计

基于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) - 最新版本

一. 极点配置原理假设原系统的状态空间模型为:⎩⎨⎧=+=Cxy Bu Ax x 若系统是完全可控的,则可引入状态反馈调节器,且:这时,闭环系统的状态空间模型为:()x A BK x Bv y Cx =-+⎧⎨=⎩二. 状态观测器设计原理假设原系统的状态空间模型为:⎩⎨⎧=+=Cxy Bu Ax x 若系统是完全可观的,则可引入全维状态观测器,且:ˆˆ(y y)ˆˆx Ax Bu G y Cx ⎧=++-⎪⎨=⎪⎩设ˆx x x=-,闭环系统的状态空间模型为: ()x A GC x =-解得:(A GC)t(0),t 0x ex -=≥由上式可以看出,在t 0≥所有时间内,如果(0)x =0,即状态估计值x 与x 相等。

如果(0)0x ≠,两者初值不相等,但是()A GC -的所有特征值具有负实部,这样x 就能渐进衰减至零,观测器的状态向量ˆx就能够渐进地逼近实际状态向量x 。

状态逼近的速度取决于G 的选择和A GC -的特征配置。

三. 状态观测的实现为什么要输出y 和输入u 对系统状态x 进行重构。

u Kx v =-+证明 输出方程对t 逐次求导,并将状态方程x Ax Bu =+代入整理,得2(n 1)(n 2)(n 3)21n n y Cxy CBu CAx y CBu CABu CA x y CBu CABu CA Bu CA x-----=⎧⎪-=⎪⎪--=⎨⎪⎪⎪----=⎩将等号左边分别用z 的各分量12,,,n z z z 表示,有121(n 1)(n 2)(n 3)2n n n y C z y CBu CA z z y CBu CABu x Qx z CA y CBu CABu CA Bu -----⎡⎤⎧⎡⎤⎡⎤⎢⎥⎪-⎢⎥⎢⎥⎢⎥⎪⎪⎢⎥⎢⎥⎢⎥==--==⎨⎢⎥⎢⎥⎢⎥⎪⎢⎥⎢⎥⎢⎥⎪⎣⎦⎣⎦⎢⎥⎪----⎩⎣⎦如果系统完全能观,则rankQ n =即1ˆ(Q Q)T Tx Q z -= (类似于最小二乘参数估计) 综上所述,构造一个新系统z ,它是以原系统的输出y 和输入u ,其输出经过变换1(Q Q)T T Q -后得到状态向量ˆx。

系统稳定性分析报告、利用MATLAB实现极点配置、设计状态观测器

系统稳定性分析报告、利用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求解极点配置问题

现代控制理论第四次上机实验报告实验五 利用MATLAB 求解极点配置问题实验目的:1、学习极点配置状态反馈控制器的设计算法;2、通过编程、上机调试,掌握系统极点配置设计方法。

实验步骤:1、极点配置状态反馈控制器的设计,采用MATLAB 的m-文件编程;2、在MATLAB 界面下调试程序,并检查是否运行正确。

实验要求:1、 在运行以上程序的基础上,针对状态空间模型为[]01034132x x u y x⎡⎤⎡⎤=+⎢⎥⎢⎥--⎣⎦⎣⎦=&的被控对象设计状态反馈控制器,使得闭环极点为-4和-5,并讨论闭环系统的稳态性能。

先判断系统能控性:>> A = [0 1 ;-3 -4];B = [0;1];Tc=ctrb(A,B)n=size(A);if rank(Tc)==n(1)disp('The system is controlled')elsedisp('The system is not controlled')endTc =0 11 -4The system is controlled再求状态反馈器:>> A = [0 1 ;-3 -4];B = [0;1];J = [-4 -5];K = place(A,B,J)K =即状态反馈控制器为:状态反馈闭环系统状态空间表达式:A1=A-BK=[0 1;-20 -9]配置极点前:>> A=[0 1 ;-3 -4];B=[0;1];C=[3 2];D=0;step(A,B,C,D)得到波形:配置极点后:A 变为A1>> A=[0 1 ;-20 -9];B=[0;1];C=[3 2];D=0;step(A,B,C,D)得到波形:由上述两图对比可知,配置极点后,系统动态性能变好,但是稳态误差变大。

2、 分析极点配置对稳态性能有何影响?如何消除对稳态性能的负面影响?答:配置极点后动态性能变好,但是稳态误差不能消除。

实验五利用MATLAB求解极点配置问题

实验五利用MATLAB求解极点配置问题

现代控制理论第四次上机实验报告实验五 利用MATLAB 求解极点配置问题实验目的:1、学习极点配置状态反馈控制器的设计算法;2、通过编程、上机调试,掌握系统极点配置设计方法。

实验步骤:1、极点配置状态反馈控制器的设计,采用MATLAB 的m-文件编程;2、在MATLAB 界面下调试程序,并检查是否运行正确。

实验要求:1、 在运行以上程序的基础上,针对状态空间模型为[]01034132x x u y x⎡⎤⎡⎤=+⎢⎥⎢⎥--⎣⎦⎣⎦=&的被控对象设计状态反馈控制器,使得闭环极点为-4和-5,并讨论闭环系统的稳态性能。

先判断系统能控性:>> A = [0 1 ;-3 -4];B = [0;1];Tc=ctrb(A,B)n=size(A);if rank(Tc)==n(1)disp('The system is controlled')elsedisp('The system is not controlled')endTc =0 11 -4The system is controlled再求状态反馈器:>> A = [0 1 ;-3 -4];B = [0;1];J = [-4 -5];K = place(A,B,J)K =17.0000 5.0000即状态反馈控制器为:状态反馈闭环系统状态空间表达式:A1=A-BK=[0 1;-20 -9]配置极点前:>> A=[0 1 ;-3 -4];B=[0;1];C=[3 2];D=0;step(A,B,C,D)得到波形:配置极点后:A变为A1>> A=[0 1 ;-20 -9];B=[0;1];C=[3 2];D=0;step(A,B,C,D)得到波形:由上述两图对比可知,配置极点后,系统动态性能变好,但是稳态误差变大。

2、 分析极点配置对稳态性能有何影响?如何消除对稳态性能的负面影响?答:配置极点后动态性能变好,但是稳态误差不能消除。

现代控制理论状态反馈和状态观测器的设计实验报告

现代控制理论状态反馈和状态观测器的设计实验报告

现代控制理论状态反馈和状态观测器的设计实验报告本次实验是关于现代控制理论中状态反馈与状态观测器的设计与实现。

本次实验采用MATLAB进行模拟与仿真,并通过实验数据进行验证。

一、实验目的1、学习状态反馈控制的概念、设计方法及其在实际工程中的应用。

3、掌握MATLAB软件的使用方法。

二、实验原理1、状态反馈控制状态反馈控制是指将系统状态作为反馈控制的输出,通过对状态反馈控制器参数的设计,使系统的状态响应满足一定的性能指标。

状态反馈控制的设计步骤如下:(1) 确定系统的状态方程,即确定系统的状态矢量、状态方程矩阵和输出矩阵;(2) 设计状态反馈控制器的反馈矩阵,即确定反馈增益矩阵K;(3) 检验状态反馈控制器性能是否满足要求。

2、状态观测器(1) 确定系统的状态方程;(2) 设计观测器的状态估计矩阵和输出矩阵;(3) 检验观测器的状态估计精度是否符合标准。

三、实验内容将简谐信号加入单个质点振动系统,并对状态反馈控制器和状态观测器进行设计与实现。

具体实验步骤如下:1、建立系统状态方程:(1)根据系统的物理特性可得单自由度振动系统的运动方程为:m¨+kx=0(2)考虑到系统存在误差、干扰等因素,引入干扰项,得到系统状态方程:(3)得到系统状态方程为:(1)观察系统状态方程,可以发现系统状态量只存在于 m 行 m 到 m 行 n 之间,而控制量只存在于 m 行 1 到 m 行 n 之间,满足可控性条件。

(2)本次实验并未给出状态变量的全部信息,只给出了系统的一维输出,因此需要设计状态反馈器。

(3)我们采用极点配置法进行状态反馈器设计。

采用 MATLAB 工具箱函数,计算出极点:(4) 根据极点求解反馈矩阵,得到状态反馈增益矩阵K:(1)通过矩阵计算得到系统的可观性矩阵:(2)由若干个实测输出建立观测器,可将观测器矩阵与可观测性矩阵组合成 Hankel 矩阵,求解出状态观测器系数矩阵:(3)根据系统的状态方程和输出方程,设计观测方程和状态估计方程,如下:4、调试控制器和观测器(1)经过上述设计步骤,将反馈矩阵和观测矩阵带入 MATLAB 工具箱函数进行仿真。

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

利用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 AwBy Fu =++ b x w Ly =+基于降阶观测器的输出反馈控制器是:ˆˆˆˆ()[()]()b a bb 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,2223j λ=-±,希望的观测器极点是(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 ===进一步比较两个系统的带宽。

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

利用MATLAB 实现极点配置、设计状态观测器现代控制
sys=ss(A1,B,C,D);
G1=zpk(sys)
结果:Zero/pole/gain:
(s^2 + 5s + 15)
-------------------------
(s+1) (s+1.999) (s+3.001)
则其极点为-1 ,-2 ,-3
(2)
程序:
>> A=[0 1 0;0 0 1;-4 -3 -2];
y=[1 7 24 24]x
通过状态反馈使系统的闭环极点配置在[-30 -1.2 ]位置上,求出状态反馈矩阵K,验证闭环极点,并绘制闭环系统的阶跃响应曲线进行对比。
程序>> 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];
(2)分别选取K=[0 3 0].K=[1 3 2],K=[0 3 1]为状态反馈矩阵,求解闭环系统的零点,极点和传递函数,并判断系统的能控性和能观测性。它们是否发生改变?为什么?
(1)
程序
>> A=[0 1 0;0 0 1;-12 -16 -7];
B=[0;0;1];
C=[6 6 0];
D=0;
sys=ss(A,B,C,D);
k=place(A,B,p);
A1=A-B*k;
G1=ss(A1,B,C,D);
t=0:0.5:20;
u=ones(size(t));
y2=lsim(G1,u,t);
y1=lsim(G,u,t);
plot(t,y1,':',t,y2,'-')
蓝色为配置前,绿色为配置后

系统稳定性分析报告、利用MATLAB实现极点配置、设计状态观测器

系统稳定性分析报告、利用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设计状态观测器

利用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^计状态观测器实验目的:1、学习观测器设计算法;2、通过编程、上机调试,掌握基于观测器的输出反馈控制系统设计方法。

实验步骤的m-文件编程;1、基于观测器的输出反馈控制系统的设计,采用MATLAB2、在MATLAB界面下调试程序,并检查是否运行正确。

实验要求1.在运行以上例程序的基础上,考虑图 6.3所示的调节器系统, 试针对被控对象设计基于全阶观测器和降阶观测器的输出反馈控制器。

设极点配置部分希望的闭环极点是/1,2 = -2 ± j 2j3,希望的观测器极点是(a)对于全阶观测器,片=_8和卩2=-8 ;(b)对于降阶观测器,卩=-8。

比较系统对下列指定初始条件的响应:(a)对于全阶观测器:X i(O) =1,X2(0) =0,8(0) =1,62(0) =0(b)对于降阶观测器:X i(0) =1,X2(0) =0,6(0) =1进一步比较两个系统的带宽jfj -图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)16.0000 2.0000全阶状态观测器:>> v2=[-8 -8];G=(acker((a-b*K)',c',v2))'降阶状态观测器:>> T1 =[0 1;4 0];>> T =[0 0.25;1 0];>> a1 =T1*a*Tb1 =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*AabBhat=Ahat*l+Aba-l*AaaFhat=Bb-l*Baa1 =-21.5000Ahat =Bhat =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';sub plot(4,2,1); plot(t,x1),grid title('x1') ylabel('x1') sub plot(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;sub plot(4,2,3); plot(t,e1),gridtitle('全阶状态观测x1') ylabel('x1guji')sub plot(4,2,4); plot(t,e2),grid title('全阶状态观测x2') ylabel('x2guji')vUglSSJFile Edit View Insert Tools Desktop VViirdow Help\ ® 凰4 凰□CN全阶状态现测疋5CN降阶观测器响应:>> sys2=ss(Aaa-l*Aba,1,eye(1),0);t=0:0.01:4;e3=initial(sys2,1,t);e4=e3'+x1;e5=x2;sub plot(4,2,5); plot(t,e4),gridtitle('降阶状态观测x1') ylabel('xlguji')sub plot(4,2,6); plot(t,e5),grid title('降阶状态观测x2') ylabel('x2guji')lie Edit View Insert Tooh Desktop Window Help由上述两图对比可得,降阶观测器衰减速度比全阶观测器快,2.假设SISO 受控系统的开环传递函数为G(s)=丄 s(1)若根据系统的性能指标要求,希望配置的系统极点为人=—3, )23 = -2 ± j 2求受控系统的状态反馈矩阵。

现代控制理论-010(5.3.5 应用MATLAB求解极点配置问题)

现代控制理论-010(5.3.5 应用MATLAB求解极点配置问题)
t
单位阶跃响应: 改善动态性能; 消除静态误差。
output
1.4
1.2
1
0.8
0.6
0.4
0.2
0 0 0.5 1 1.5 time (sec) 2 2.5 3
期望的闭环特征多项式是所要设计的状态反馈增益矩阵是相应的闭环系统状态矩阵闭环传递函数当参考输入为单位阶跃时输出的稳态值开环系统是稳定的且开环传递函数开环系统的稳态误差开环系统是无静差的
现代控制理论
Modern Control Theory (10)


浙江工业大学 信息与控制研究所
5.3.5 应用MATLAB求解极点配置问题 提供了两个函数: acker:基于爱克曼公式,单输入系统,多重极点 place:多输入系统,相同极点个数不超过B的秩 对单输入系统,所得的K是一致的 K=acker(A,B,J) K=place(A,B,J)
闭环传递函数
2s + 3 G(s) = 2 s + 9 s + 20
当参考输入为单位阶跃时,输出的稳态值
1 y (∞) = lim y (t ) = lim sG ( s ) = G统是稳定的,且开环传递函数 开环系统的稳态误差
y o (∞ ) = 3 =1 3
证明: Γ = ⎡ B AB A 2 B ⎢ zc
⎣ 0 CB CAB ⎡ A B ⎤ ⎡0 S 1 ⎤ =⎢ C 0 ⎥⎢I 0 ⎥ ⎦ ⎣ ⎦⎣
其中S1 = [ B AB 关。
A n −1 B
A n + r − 2 B] 是 n × (n + r − 1)m
An−1B] 的行向量线性无
原系统的能控性 ⇒ [ B AB
对增广系统设计状态反馈控制律

基于MATLAB的状态观测器设计

基于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来保证。

最新现代控制实验第四次

最新现代控制实验第四次

现代控制实验第四次------------------------------------------作者xxxx------------------------------------------日期xxxx利用MATLAB求解极点配置问题学电信学院院:自动化1002专业:学号:学生:王洋指导教师:张勇2013年5月7日实验四 利用MATLAB 求解极点配置问题实验目的:1、学习极点配置状态反馈控制器的设计算法;2、通过编程、上机调试,掌握系统极点配置设计方法。

实验步骤1、极点配置状态反馈控制器的设计,采用MATLAB 的m-文件编程; 2、在MATL AB 界面下调试程序,并检查是否运行正确。

实验要求1、 在运行以上程序的基础上,针对状态空间模型为[]01034132x x u y x⎡⎤⎡⎤=+⎢⎥⎢⎥--⎣⎦⎣⎦= 的被控对象设计状态反馈控制器,使得闭环极点为—4和—5,并讨论闭环系统的稳态性能。

A=[0 1;—3 -4]; B=[0;1]; C=[3 2]; D=[0];[num,den]=s s2tf(A,B ,C,D)>> A=[0 1;—3 —4];B=[0;1];C=[3 2];D=[0];[num,den]=ss2tf(A,B,C,D)num =0 2。

00003。

0000den =1 4 3原系统的传递函数为:G(s)=2s+3 s2+4s+3原系统:对给定的初始状态(0)x,可以应用MATLAB提供的函数initial画出闭环系统的状态响应曲线。

已知X(0)=[1],执行以下的M-文件:A=[0 1;-3—4];B=[0;1];sys=ss(A,[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(2,1,1);plot(t,x1),gridtitle('Response to Initial Condition') ylabel('x1')subplot(2,1,2);plot(t,x2),gridylabel(’x2')原系统的输出响应为:A=[01;-3 —4];B=[0;1];C=[3 2];D=0;step(A,B,C,D)配置极点后的系统:x,可以应用MATLAB提供的函数initial画对给定的初始状态(0)出闭环系统的状态响应曲线。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 软件
⎣[
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。

相关文档
最新文档