利用matlab 实现极点配置、设计状态观测器现代控制)
状态反馈实验报告总结(3篇)

第1篇一、实验背景在现代控制理论中,状态反馈是控制系统设计中的重要方法之一。
它通过将系统的状态信息反馈到控制输入,实现对系统动态特性的调节和优化。
本实验旨在通过MATLAB软件,验证状态反馈在控制系统设计中的应用,并分析其效果。
二、实验目的1. 理解状态反馈的原理和设计方法;2. 掌握状态反馈在控制系统中的应用;3. 分析状态反馈对系统性能的影响;4. 比较不同状态反馈策略的优劣。
三、实验内容1. 系统模型建立:根据实验要求,建立被控对象的传递函数模型。
2. 状态反馈设计:采用极点配置法,将闭环系统的极点配置在期望的位置上,实现状态反馈。
3. 仿真分析:通过MATLAB软件进行仿真实验,分析不同状态反馈策略对系统性能的影响。
4. 结果比较:比较不同状态反馈策略的优劣,总结实验结论。
四、实验步骤1. 系统模型建立:根据实验要求,建立被控对象的传递函数模型。
2. 状态反馈设计:根据极点配置法,确定闭环系统的极点位置,设计状态反馈控制器。
3. 仿真分析:在MATLAB软件中,搭建仿真模型,设置不同状态反馈策略,进行仿真实验。
4. 结果比较:分析仿真结果,比较不同状态反馈策略的优劣。
五、实验结果与分析1. 系统模型建立根据实验要求,建立被控对象的传递函数模型如下:G(s) = 1 / (s^2 + 2s + 2)2. 状态反馈设计采用极点配置法,将闭环系统的极点配置在期望的位置上,设计状态反馈控制器如下:K = [k1, k2]其中,k1和k2为待定系数。
通过求解以下方程组,确定k1和k2的值:(sI - A - BK)^-1B = C其中,A为系统矩阵,B为输入矩阵,C为输出矩阵,I为单位矩阵。
3. 仿真分析在MATLAB软件中,搭建仿真模型,设置不同状态反馈策略,进行仿真实验。
(1)无状态反馈将K置为零,观察系统响应。
(2)状态反馈根据上述设计的控制器,设置不同的k1和k2值,观察系统响应。
4. 结果比较通过仿真实验,比较不同状态反馈策略的优劣。
现代控制原理matlab实验报告1

现代控制原理matlab实验报告实验一.利用MATLAB进行线性系统的模型转换及联结一.实验目的1、学习系统状态空间模型的建立方法、了解状态空间模型与传递函数、零极点模型之间相互转换的方法;2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的方法。
3、通过编程、上机调试,掌握系统模型的联结方法。
二.实验步骤1、根据所给系统的已知条件,如传递函数、零极点模型或(A 、B 、C 、D ),实现状态空间模型、传递函数模型、零极点增益模型之间的转换,采用MATLAB 的相关函数编写m -文件。
2、应用系统建模工具,并联、串联、闭环、反馈等函数解决实际问题。
3、在MA TLAB 界面下调试程序。
三.实验要求1.在运行以上例程序的基础上,应用MA TLAB 求下面传递函数阵的状态空间实现232252()234s s s G s s s s +⎡⎤⎢⎥++⎣⎦=+++提示:num =[0 0 1 2;0 1 5 3] 解:num=[0 0 1 2;0 1 5 2]; den=[1 2 3 4];[A,B,C,D]=tf2ss(num,den) A =-2 -3 -4 1 0 0 0 1 0 B =1 0 0 C =0 1 2 1 5 2 D =0 02.一个双输入双输出系统112233412311022711353x x x x u x x -⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦⎣⎦11223120011x y x y x ⎡⎤⎡⎤⎡⎤⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎣⎦求出此模型的能控标准型和能观标准型。
提示:写出两个子系统的传递函数模型,进而求出这两个传递函数模型的能控标准型实现或能观标准型实现,讨论是否能通过子系统的能控标准型实现或能观标准型实现求出原来系统的能控标准型和能观标准型。
解:A=[4 1 -2;1 0 2;1 -1 3]; B=[3 1;2 7;5 3]; C=[1 2 0;0 1 1]; D=[0];[num1,den1]=ss2tf(A,B1,C1,D) [num2,den2]=ss2tf(A,B2,C2,D)得到: num1 =0 7.0000 -19.0000 -36.0000den1 =1.0000 -7.0000 15.0000 -9.0000num2 =0 10.0000 -60.0000 98.0000den2 =1.0000 -7.0000 15.0000 -9.0000实验二.利用MATLAB 求取线性系统的状态空间模型的解并分析其稳定性一. 实验目的1、根据状态空间模型分析系统由初始状态和外部激励所引起的响应;2、了解系统稳定性的判定方法(直接法和间接法);3、通过编程、上机调试,掌握系统运动的分析方法。
MATLAB配置倒立摆系统极点

现代控制理论MATLAB计算学院:电气工程学院专业班级:电气工程及其自动化1403班学生:王宁学号:140301308摘要:讨论了采用MATLAB语言编程实现控制系统的空间状态方程模型建立,及离散化,判断能控性,能观性,阶跃响应,实现控制系统极点任意配置。
并以倒立摆系统为实例计算。
关键词:空间状态方程;控制系统;极点配置目录一.绪论3〔1〕MATLAB及其控制系统工具箱简介3〔2〕状态反应极点配置3〔3〕能控性和能观性3〔4〕MATLAB编程3二.MATLAB计算5〔1〕状态空间方程5〔2〕求解离散化x(t)6〔3〕阶跃响应6〔4〕判断能控性能观性7〔5〕极点配置7〔6〕结论9三.总结9一.绪论〔1〕MATLAB及其控制系统工具箱简介MATLAB是一套高性能的数值计算和可视化软件,具有工程计算,算法研究,符号运算,建模和仿真,原形开发,数据分析及可视化,科学和工程绘图,应用程序设计等功能,MATLAB包含了涉及多种学科的众多工具。
其中,控制系统工具箱主要处理以传递函数为主要特征的经典控制和以状态方程为特征的现代控制中的问题,为用户提供了用于处理和分析线性时不变〔LTI〕模型,它支持连续系统和离散系统,单输入单输出〔SISO〕系统和多输入多输出〔MIMO〕系统。
利用该工具箱中的函数不但可以实现系统模型的建立,转换,分析和处理,还可以进展控制系统的设计。
〔2〕状态反应极点配置状态空间中的极点配置设计方法是根本的设计方法之一。
如果系统是完全状态可控的,那么,要求的Z平面上闭环极点可以选择,并且,以这些极点为闭环极点的系统可以设计。
这种在Z平面设置期望的闭环极点的设计方法,称为极点配置设计法。
在极点配置设计方法中,将反应全部状态变量,使得全部闭环极点均设置在各期望的位置上。
然而,实际的控制系统中,量测到全部[4]状态变量是不可能的,不是全部状态变量都可以用于反应。
为了实现状态反应,估计这些未知的状态变量是很必要的,这种估计可以用状态观测器进展。
现代控制理论状态反馈和状态观测器的设计实验报告

现代控制理论状态反馈与状态观测器的设计实验报告
LT ac ker(AT ,CT , P)
或
LT place( AT ,CT , P)
其中 P 为给定的极点,L 为状态观测器的反馈阵。
例 3 已知开环系统
其中
x• Ax bu y Cx
0 1 0 0
A=
0
0
1
,b=
0
,C= 1
0
0
6 11 6 1
(1)
现代控制理论状态反馈与状态观测器的设计实验报告
其中 A : n n; B : n r;C :: m n
引入状态反馈,使进入该系统的信号为ຫໍສະໝຸດ u r Kx(2)
式中 r 为系统的外部参考输入,K 为 n n 矩阵、
可得状态反馈闭环系统的状态空间表达式为
(3) 可以证明,若给定系统就是完全能控的,则可以通过状态反馈实现系统
设计全维状态观测器,使观测器的闭环极点为-2 j2 3 ,-5、
解 为求出状态观测器的反馈矩阵 L,先为原系统构造一对偶
系统,
z AT C T n
w
BT
z
然后采用极点配置方法对对偶系统进行闭环极点位置的配置,得
到反馈阵 K,从而可由对偶原理得到原系统的状态观测器的反馈阵 L。
现代控制理论状态反馈与状态观测器的设计实验报告
K=acker(A,b,p) 式中,p 为给定的极点,K 为状态反馈阵。
对于多变量系统的极点配置,MATABLE 控制系统工具箱也给出了函数
place(),其调用格式为
K=place(A,B,P)
例2 已知系统的状态方程为
0 0 4 1 2 0
•
x
10
状态观测器设计

基于MATLAB的状态不雅测器设计之吉白夕凡创作预备知识:极点配置基于状态反应的极点配置法就是通过状态反应将系统的闭环极点配置到期望的极点位置上,从而使系统特性满足要求.1. 极点配置原理假设原系统的状态空间模型为:若系统是完全可控的,则可引入状态反应调节器,且:这时,闭环系统的状态空间模型为: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来包管.也即极点配置问题.要使得误差衰减到零,需要选取一个适当的矩阵L,使得A-LC 是稳定的.若能使得矩阵A-LC有适当的特征值,则可以使得误差具有一定的衰减率.由于因此,问题转化为的极点配置问题.该极点配置问题可解的条件:能控;等价于能不雅定理:系统可以任意配置不雅测器极点的充分需要条件是(C, A)能不雅.不雅测器的增益矩阵可以依照极点配置办法来设计,求解的极点配置问题,得到增益矩阵k;不雅测器增益矩阵例考虑由以下系数矩阵给定的系统设计一个不雅测器,使不雅测器两个极点都是-2.检验系统的能不雅性:系统是能不雅的,因此问题可解.要求确定不雅测器增益矩阵使得矩阵A-LC具有两个相同的特征值-2.由于期望的特征值多项式是比较两个多项式,可以得到,所求的不雅测器是也可利用MATLAB命令来计算不雅测器增益矩阵:L=(acker(A’,C’,V))’L=(place(A’,C’,V))’不雅测器设计时注意的问题:(1)不雅测器极点比系统极点快2~5倍;(2)并不是越快越好.例2:某系统首先对系统的能控性进行判断,以编程方法实现a=[-1 -2 -2;0 -1 1;1 0 -1];b=[2;0;1]; %输入a,b矩阵q=[b a*b a^2*b]rank(q)计算结果为q的秩为3,因此该系统为完全能控型系统,在满足系统要求的前提下,理论上能任意配置期望极点.不雅测器的设计首先检验系统的是否完全能不雅a=[-1 -2 -2;0 -1 1;1 0 -1];c=[1 0 0];q=[c;c*a;c*a*a]rank(q)rank(q)=3说明系统是完全能不雅的下面就是不雅测器期望极点选择,一般为了考虑不雅测器的响应速度要比闭环系统快,又要考虑搅扰抑制,一般极点为闭环极点的2---5倍.由此可进一步求出不雅测器增益矩阵la=[-1 -2 -2;0 -1 1;1 0 -1];c=[1 0 0];pe=[-12;-3+0.88*i;-3-0.88*i];lt=acker(a',c',pe);l=lt'求得l=[15;1.872;-25.2592];下面可构建Simulink图,据此不雅察不雅测器的跟踪能力跟踪效果图如下可见,单路跟踪效果较好.利用状态空间,可以便利地设计全维不雅测器,各路跟踪效果如下:据此发明不雅测器跟踪效果较好.利用状态估量值的反应控制器是基于不雅测器的输出反应控制系统结构图:例3:系统状态空间模型的系数矩阵:系统能控、能不雅.状态反应控制器:闭环矩阵:特征多项式:选取则闭环极点状态不成测,设计状态不雅测器.选取不雅测器极点:应用极点配置办法,可得不雅测器增益矩阵不雅测器模型:按照别离性原理,由以上辨别得到的状态反应和不雅测器增益矩阵可机关基于不雅测器的输出反应控制器:系统的动态特性:对象和误差的初始条件:系统曲线:总结从以上的设计可总结出状态空间的控制器的设计思路.1.首先对不雅测器的能不雅性与能控性进行判断;2.如果完全能不雅或能控,则进行以下阐发;如果不是,可以进行能控与能不雅分化出来;3.如果使用原系统状态反应,可以按照系统要求进行极点配置,进而设计出控制器;如果还需要设计不雅测器,可合理配置不雅测器极点,进而设计整个系统.4.如果使用不雅测器状态反应,由于别离定理,不雅测器与反应可辨别设计,所以设计过程基本和上面一样;5.对于以上系统都存在较大的余差,故需设计参考输入,或者采纳积分控制器都可以很好的消除稳态余差.。
实用文档之状态观测器设计

实用文档之"基于MATLAB 的状态观测器设计"预备知识: 极点配置基于状态反馈的极点配置法就是通过状态反馈将系统的闭环极点配置到期望的极点位置上,从而使系统特性满足要求。
1. 极点配置原理假设原系统的状态空间模型为:⎩⎨⎧=+=Cxy Bu Ax x 若系统是完全可控的,则可引入状态反馈调节器,且:Kx u input -=这时,闭环系统的状态空间模型为:⎩⎨⎧=+-=Cx y 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来保证。
状态观测器设计
基于M A T L A B的状态观测器设计预备知识:极点配置基于状态反馈的极点配置法就是通过状态反馈将系统的闭环极点配置到期望的极点位置上,从而使系统特性满足要求。
1. 极点配置原理假设原系统的状态空间模型为:若系统是完全可控的,则可引入状态反馈调节器,且:这时,闭环系统的状态空间模型为: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来保证。
也即极点配置问题。
要使得误差衰减到零,需要选取一个适当的矩阵L,使得A-LC是稳定的。
状态观测器设计
基于M A T L A B的状态观测器设计预备知识:极点配置基于状态反馈的极点配置法就是通过状态反馈将系统的闭环极点配置到期望的极点位置上,从而使系统特性满足要求。
1. 极点配置原理假设原系统的状态空间模型为:若系统是完全可控的,则可引入状态反馈调节器,且:这时,闭环系统的状态空间模型为: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来保证。
也即极点配置问题。
要使得误差衰减到零,需要选取一个适当的矩阵L,使得A-LC是稳定的。
状态观测器设计
基于MATLA B的状态观测器设计预备知识: 极点配置基于状态反馈的极点配置法就是通过状态反馈将系统的闭环极点配置到期望的极点位置上,从而使系统特性满足要求。
1. 极点配置原理假设原系统的状态空间模型为:⎩⎨⎧=+=Cxy Bu Ax x 若系统是完全可控的,则可引入状态反馈调节器,且:Kx u input -=这时,闭环系统的状态空间模型为:⎩⎨⎧=+-=Cxy Bu x )BK A (x 2. 极点配置的MATLAB 函数在MA TLAB 控制工具箱中,直接用于系统极点配置的函数有acker ()和place ()。
调用格式为:K =ack er(A ,C ,P) 用于单输入单输出系统其中:A,B 为系统矩阵,P 为期望极点向量,K 为反馈增益向量。
K=pl ace(A ,B,P)(K,pre c,messag e)=pla ce(A,B,P)pl ace ()用于单输入或多输入系统.Prec 为实际极点偏离期望极点位置的误差;mess age 是当系统某一非零极点偏离期望位置大于10%时给出的警告信息.3. 极点配置步骤:(1)获得系统闭环的状态空间方程;(2)根据系统性能要求,确定系统期望极点分布P ;(3)利用MA TLAB 极点配置设计函数求取系统反馈增益K; (4)检验系统性能。
已知系统模型如何从系统的输入输出数据得到系统状态?初始状态:由能观性,从输入输出数据确定。
不足:初始状态不精确,模型不确定。
思路:构造一个系统,输出逼近系统状态称为是的重构状态或状态估计值。
实现系统状态重构的系统称为状态观测器。
观测器设计状态估计的开环处理:但是存在模型不确定性和扰动!初始状态未知!应用反馈校正思想来实现状态重构。
通过误差来校正系统:状态误差,输出误差。
基于观测器的控制器设计系统模型若系统状态不能直接测量,可以用观测器来估计系统的状态。
L是观测器增益矩阵,对偏差的加权。
真实状态和估计状态的误差向量误差的动态行为:的极点决定了误差是否衰减、如何衰减?通过确定矩阵L来保证。
状态观测器设计
基于M A T L A B的状态观测器设计预备知识:极点配置基于状态反馈的极点配置法就是通过状态反馈将系统的闭环极点配置到期望的极点位置上,从而使系统特性满足要求。
1. 极点配置原理假设原系统的状态空间模型为:若系统是完全可控的,则可引入状态反馈调节器,且:这时,闭环系统的状态空间模型为: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来保证。
也即极点配置问题。
要使得误差衰减到零,需要选取一个适当的矩阵L,使得A-LC是稳定的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实 验 报 告 实验名称 利用MATLAB 实现极点配置、设计状态观测器 系 专业 自动化 班 姓名 学号 授课老师 预定时间 实验时间 实验台号 一、目的要求 1、掌握状态反馈和输出反馈的概念及性质。 2、掌握利用状态反馈进行极点配置的方法。学会用MATLAB 求解状态反馈矩
阵。 3、掌握状态观测器的设计方法。学会用MATLAB 设计状态观测器。 4、熟悉分离定理,学会设计带有状态观测器的状态反馈系统。
二、原理简述 1、状态反馈和输出反馈
设线性定常系统的状态空间表达式为CxyBuAxx 如果采用状态反馈控制规律u= r-Kx,其中 r是参考输入,则状态反馈闭环系统的传递函数为: 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 某系统状态方程如下
理想闭环系统的极点为123,试 (1)采用直接计算法进行闭环系统极点配置; (2)采用Ackermann公式计算法进行闭环系统极点配置; (3)采用调用place函数法进行闭环系统极点配置。 >> A=[0 1 0;0 0 1;-4 -3 -2]; B=[1;3;6]; C=[1 0 0]; D=0; G=ss(A,B,C,D); [Q,D]=eig(A) 结果: Q = 0.2995 0.3197 - 0.0731i 0.3197 + 0.0731i -0.4944 0.0573 + 0.5074i 0.0573 - 0.5074i 0.8160 -0.7948 -0.7948 D = -1.6506 0 0 0 -0.1747 + 1.5469i 0 0 0 -0.1747 - 1.5469i 则矩阵A的特征根为:-1.6506,-0.1747 + 1.5469i,-0.1747 - 1.5469i 程序: >> A=[0 1 0;0 0 1;-4 -3 -2]; B=[1;3; -6]; C=[1 0 0]; D=0; p=[-1 -2 -3]; k=acker(A,B,p) 结果:k =1.4809 0.7481 -0.0458 验证: >> A=[0 1 0;0 0 1;-4 -3 -2]; B=[1;3;6]; C=[1 0 0]; D=0; k=[0.5053 0.7052 0.2299]; A1=A-B*k; 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]; B=[1;3; -6]; C=[1 0 0]; D=0; p=[-1 -2 -3]; k=place(A,B,p) 结果:k = 1.4809 0.7481 -0.0458 验证: 程序: >> A=[0 1 0;0 0 1;-4 -3 -2]; B=[1;3; -6]; C=[1 0 0]; D=0; p=[-1 -2 -3]; k=place(A,B,p); A1=A-B*k; sys=ss(A1,B,C,D); G1=zpk(sys) 结果: Zero/pole/gain: (s+4.303) (s+0.6972) -------------------- (s+3) (s+2) (s+1) 则其极点为-1,-2,-3
题5-2 某控制系统的状态方程描述如下: y=[1 7 24 24]x 通过状态反馈使系统的闭环极点配置在[-30 -1.2 j44.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]; D=0; p=[-30 -1.2 -2.4+4i -2.4-4i]; k=place(A,B,p) 结果:k = 26.0000 172.5200 801.7120 759.3600 验证: 程序:>> 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; p=[-30 -1.2 -2.4+4i -2.4-4i]; k=place(A,B,p); A1=A-B*k; sys=ss(A1,B,C,D); G1=zpk(sys) 结果:Zero/pole/gain: (s+1.539) (s^2 + 5.461s + 15.6) ------------------------------------ (s+30) (s+1.2) (s^2 + 4.8s + 21.76) >> 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 -1.2 -2.4+4i -2.4-4i]; 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,'-') 蓝色为配置前,绿色为配置后 题5-3 某系统状态空间描述如下 设计全维状态观测器,要求状态观测器的极点为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已知系统 y=[6 6 0]x (1)求系统的零点,极点和传递函数,并判断系统的能控性和能观测性。 (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); G=zpk(sys) 结果: Zero/pole/gain: 6 (s+1) ------------- (s+2)^2 (s+3) 则系统的零点为:-1 则系统的极点为:-2,-2,-3 程序 >> A=[0 1 0;0 0 1;-12 -16 -7]; B=[0;0;1]; C=[6 6 0]; D=0; Uc=ctrb(A,B);rank(Uc) 结果:ans = 3 则系统能控 程序: >> A=[0 1 0;0 0 1;-12 -16 -7]; B=[0;0;1]; C=[6 6 0]; D=0; Vo=obsv(A,C); rank(Vo) 结果:ans =3 则系统能观 (2) ①当k=[0 3 0]时: 程序>> A=[0 1 0;0 0 1;-12 -16 -7]; B=[0;0;1]; C=[6 6 0]; D=0; k=[0 3 0]; A1=A-B*k; sys=ss(A1,B,C,D); G=zpk(sys) 结果: Zero/pole/gain: 6 (s+1) --------------------------------- (s+0.8821) (s^2 + 6.118s + 13.6) 则零点为-1 >> pole(G) ans =