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

实验一系统的传递函数阵和状态空间表达式的转换实验目的:1、学习多变量系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;2、通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数相互转换的方法。
实验内容及结果:>>num=[0 0 1 2;0 1 5 3];den=[1 2 3 4];[A,B,C,D]=tf2ss(num,den)实验二状态空间控制模型系统仿真及状态方程求解实验目的:1、熟悉线性连续系统的状态空间控制模型的各种表示方法;2、熟悉系统模型之间的转换功能;3、利用MATLAB对线性定常系统进行动态分析。
实验内容及结果(1)>>num=[1 2 1 3]; den=[1 0.5 2 1];sys=tf(num,den);sys1=tf2zp(num,den); sys2=tf2ss(num,den); impulse(sys);step(num,den,t);>>A=[0 1;-10 -5];B=[0;0];D=B;C=[1 0;0 1];x0=[2;1];[y,x,t]=initial(A,B,C,D,x0);plot(t,x(:,1),t,x(:,2))gridtitle('Response to initial condition') xlabel('Time(sec)')ylabel('x1,x2')text(0.55,1.15,'x1')text(0.4,-2.9,'x2')>>A=[-1 -1;6.5 0]; B=[1 1;1 0];C=[1 0;0 1];D=[0 0;0 0];step(A,B,C,D)(4)思考>>A=[0 -2;1 -3];B=[2;0];C=[1 0];x0=[1;1];U=1;[t,x]=ode45(@solve_state_fun,[0 10],x0,[],A,B,U); plot(t,x(:,1),t,x(:,2));gridtitle('Response to initial condition')xlabel('Time(sec)')ylabel('x1,x2')text(0.55,1.15,'x1')text(0.4,-2.9,'x2')实验三系统能控性、能观性的判别实验目的:1、系统的能控性和能观测性的判别方法、系统的能控性和能观测性的分解;2、了解MATLAB中的相应的函数。
现代控制理论状态反馈和状态观测器的设计实验报告

本科实验报告课程名称:现代控制理论实验项目:状态反馈和状态观测器的设计实验地点:中区机房专业班级:自动化学号:学生姓名:指导教师:年月日现代控制理论基础一、实验目的(1)熟悉和掌握极点配置的原理。
(2)熟悉和掌握观测器设计的原理。
(3)通过实验验证理论的正确性。
(4)分析仿真结果和理论计算的结果。
二、实验要求(1)根据所给被控系统和性能指标要求设计状态反馈阵K。
(2)根据所给被控系统和性能指标要求设计状态观测器阵L。
(3)在计算机上进行分布仿真。
(4)如果结果不能满足要求,分析原因并重复上述步骤。
三、实验内容(一)、状态反馈状态反馈是将系统的状态变量乘以相应的反馈系数,然后反馈到输入端与参考输入叠加形成控制作为受控系统的控制输入,采用状态反馈不但可以实现闭环系统的极点任意配置,而且也是实现解耦和构成线性最优调节器的主要手段。
1.全部极点配置给定控制系统的状态空间模型,则经常希望引入某种控制器,使得该系统的闭环极点移动到某个指定位置,因为在很多情况下系统的极点位置会决定系统的动态性能。
假设系统的状态空间表达式为(1)其中 n m C r n B n n A ⨯⨯⨯::;:;: 引入状态反馈,使进入该系统的信号为Kx r u -=(2)式中r 为系统的外部参考输入,K 为n n ⨯矩阵. 可得状态反馈闭环系统的状态空间表达式为(3)可以证明,若给定系统是完全能控的,则可以通过状态反馈实现系统的闭环极点进行任意配置。
假定单变量系统的n 个希望极点为λ1,λ2, …λn, 则可以求出期望的闭环特征方程为=)(*s f (s-λ1)(s-λ2)…(s-λn)=n n n a s a s +++-Λ11这是状态反馈阵K 可根据下式求得K=[])(100*1A f U c -Λ(4)式中[]bA Ab b U n c 1-=Λ,)(*A f是将系统期望的闭环特征方程式中的s 换成系统矩阵A 后的矩阵多项式。
例1已知系统的状态方程为u x x ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=•111101101112 采用状态反馈,将系统的极点配置到-1,-2,-3,求状态反馈阵K..其实,在MATLAB的控制系统工具箱中就提供了单变量系统极点配置函数acker(),该函数的调用格式为K=acker(A,b,p)式中,p为给定的极点,K为状态反馈阵。
现代实验报告书

《现代控制理论基础》实验报告学生姓名郑棉育学号201311632226所在专业自动化所在班级1132指导教师张冰实验一 状态空间控制模型系统仿真及状态方程求解[实验目的]1、熟悉线性定常离散与连续线性性系统的状态空间控制模型的各种表示方法。
2、熟悉系统模型之间的转换功能。
3、利用MATLAB 对线性定常系统进行动态分析 [实验内容]1、给定系统125.032)(2323++++++=s s s s s s s G ,求系统的零极点增益模型和状态空间模型,并求其单位脉冲响应及单位阶跃响应。
实验结果如下: 1、 零极点增益模型:>> num=[1 2 1 3];den=[1 0.5 2 1]; >> [Z,P,K]=tf2zp(num,den)2、 状态空间模型:>> num=[1 2 1 3];den=[1 0.5 2 1];[A,B,C,D]=tf2ss(num,den)3、单位脉冲响应程序及曲线>> num=[1 2 1 3];den=[1 0.5 2 1];>> impulse(num,den);4、单位阶跃响应程序及曲线>> num=[1 2 1 3];den=[1 0.5 2 1];step(num,den);实验二 状态反馈及状态观测器的设计[实验目的]1、熟悉状态反馈矩阵的求法。
2、熟悉状态观测器设计方法。
[实验内容]1、 某控制系统的状态方程描述如下:[]242471,0001,01000010000124503510=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡----=C B A 通过状态反馈使系统的闭环极点配置在P=[-30,-1.2,-2.4±4i]位置上,求出状态反馈阵K,并绘制出配置后系统的时间响应曲线。
解:实验程序如下运行结果如下配置后系统的时间响应曲线:5、 考虑下面的状态方程模型:[]0,001,10000,100008.20980010==⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=D C B A要求选出合适的参数状态观测器(设观测器极点为op=[-100;-102;-103])。
北京交通大学现代控制理论matlab实验报告

北京交通⼤学现代控制理论matlab实验报告实验⼀利⽤MATLAB进⾏线性系统的模型转换及联结课程:现代控制理论姓名:王柬⽂学号:11212070班级:⾃动化1103指导教师:张勇标题 (1)⽬录 (2)⼀实验⽬的: (3)⼆实验原理: (3)三实验步骤: (6)四实验要求: (7)五实验内容: (8)1 (8)2 (18)3 (29)4 (36)5 (37)六实验感想: (40)⼀实验⽬的:1、学习系统状态空间模型的建⽴⽅法、了解状态空间模型与传递函数、零极点模型之间相互转换的⽅法;2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的⽅法。
3、通过编程、上机调试,掌握系统模型的联结⽅法。
⼆实验原理:⼀、连续系统(1)状态空间模型x Ax Buy Cx Du=+=+& (1.1)其中:nx R ∈是系统的状态向量,mu R ∈是控制输⼊,py R ∈是测量输出,A 是n n ?维状态矩阵、B 是n m ?维输⼊矩阵、C 是p n ?维输出矩阵、D 是直接转移矩阵。
在MATLAB 中,⽤(A,B,C,D )矩阵组表⽰。
系统传递函数和状态空间模型之间的关系如式(1.2)所⽰。
1()()G s C sI A B D -=-+ (1.2)(2)传递函数模型11101110()(),()m m m m n n n n b s b s b s b num s H s m n den s a s a s a s a ----++++==≤++++L L 在MATLAB 中,直接⽤分⼦/分母的系数表⽰1010[,,,][,,,]m m n n num b b b den a a a --==L L(3)零极点增益模型1212()()()()()()()m n s z s z s z H s ks p s p s p ---=---L L在MATLAB 中,⽤[z, p, k]⽮量组表⽰,即1212[,,,];[,,,];[];m n z z z z p p p p k k ===L L ⼆、离散系统(1)传递函数模型11101110()m m m m n n n n b z b z b z b H z a z a z a z a ----++++=++++L L (2)零极点增益模型1212()()()()()()()m n z z z z z z H z kz p z p z p ---=---L L(3)状态空间模型(1)()()()()()x k Ax k Bu k y k Cx k Du k +=+=+三、三种模型间的转换表⽰状态空间模型和传递函数的MATLAB 函数。
现代控制理论实验报告

现代控制理论实验指导书实验一:线性系统状态空间分析1、模型转换图1、模型转换示意图及所用命令传递函数一般形式:)()(11101110n m a s a s a s a b s b s b s b s G n n n n m m m m ≤++++++++=----MATLAB 表示为:G=tf(num,den),其中num,den 分别是上式中分子,分母系数矩阵。
零极点形式:∏∏==--=n i j mi i ps z s K s G 11)()()( MATLAB 表示为:G=zpk(Z,P,K),其中 Z ,P ,K 分别表示上式中的零点矩阵,极点矩阵和增益。
传递函数向状态空间转换:[A,B,C,D] = TF2SS(NUM,DEN);状态空间转换向传递函数:[NUM,DEN] = SS2TF(A,B,C,D,iu)---iu 表示对系统的第iu 个输入量求传递函数;对单输入iu 为1;验证教材P438页的例9-6。
求P512的9-6题的状态空间描述。
>> A=[0 1;0 -2];>> B=[1 0;0 1];>> C=[1 0;0 1];>> D=[0 0;0 0];>> [NUM,DEN] = ss2tf(A,B,C,D,1)NUM =0 1 20 0 0DEN =1 2 0>> [NUM,DEN] = ss2tf(A,B,C,D,2)NUM =0 0 10 1 0DEN =1 2 0给出的结果是正确的,是没有约分过的形式P512 9-6>> [A,B,C,D]=tf2ss([1 6 8],[1 4 3])A =-4 -31 0B =1C =2 5D =12、状态方程求解单位阶跃输入作用下的状态响应:G=ss(A,B,C,D);[y,t,x]=step(G);plot(t,x). 零输入响应[y,t,x]=initial(G,x0)其中,x0为状态初值。
现代控制理论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、学习系统状态空间模型的建立方法、了解状态空间模型与传递函数、零极点模型之间相互转换的方法;2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的方法。
3、通过编程、上机调试,掌握系统模型的联结方法。
二、实验过程实验题目1:(1)在运行以上例程序的基础上,应用MATLAB 求下面传递函数阵的状态空间实现232252()234s s s G s s s s +⎡⎤⎢⎥++⎣⎦=+++ 提示:num =[0 0 1 2;0 1 5 3](2)Matlab 源程序num=[0 0 1 2;0 1 5 3];den=[1 2 3 4];[A ,B ,C ,D ]=tf2ss (num,den);(3)实验结果 A =—2 —3 -4 1 0 00 1 0B =1C =0 1 21 5 3D =实验题目2:(1)一个双输入双输出系统112233412311022711353x x x x u x x -⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦⎣⎦11223120011x y x y x ⎡⎤⎡⎤⎡⎤⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎣⎦求出此模型的能控标准型和能观标准型.提示:写出两个子系统的传递函数模型,进而求出这两个传递函数模型的能控标准型实现或能观标准型实现,讨论是否能通过子系统的能控标准型实现或能观标准型实现求出原来系统的能控标准型和能观标准型。
(2)Matlab 源程序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 0;0 0];[num1,den1]=ss2tf (A,B ,C ,D,1);[num2,den2]=ss2tf(A ,B,C,D,2);(3)实验结果:num1 =0 7。
0000 -19。
0000 —36。
现代控制理论MATLAB算法

现代控制理论MATLAB 实现例6.1.2系统的线性化模型如下[]xCx y ux Bu Ax x 0001101001100100001000010.==⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=+=其中x 是系统的状态变量,y 是小车的位移,u 是作用小车的力 1在Ae e =.作用下的误差如下。
M 文件如下得到的如下的结果:设计一个状态观测器,使得观测器极点是10,10,322,3224321-=-=+-=+-=u u j u j u解 观测器模型如下Ly Bu x LC A x++-=~.)(~运行如下m 文件状态估计的误差状态方程为:e LC A e )(.-=以下进一步通过仿真来检验观测器的效果,取初始误差向量为[]Te 1.01.021)0(-=执行如下m 文件状态估计的误差曲线如下降维观测器的题:例6,3,2考虑系统Cxy Bu Ax x =+=.其中,[]001,100,6116100010=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=C B A 设计一个具有极点u1=-10,u2=-10,的降维的观测器。
因此降阶观测器的增益矩阵是L=[]T514,具有期望极点的降阶观测器为u y w w ⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡--+⎥⎦⎤⎢⎣⎡---=10260191616114~.~跟踪控制器的设计例5.4.1已知被控对象的状态空间模型为[]xy u x x 21104310.=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡--= 设计状态反馈控制器,使得闭环极点为-4和-5,和跟踪控制器。
并讨论闭环系统的稳态性能。
可以知道能稳定跟踪先判断是否能稳定跟踪可以得到如下的结果00.511.522.530.20.40.60.811.21.4time(sec)O u t p u t最优控制的习题例7.2.2考虑以下状态空间模型的描述的系统:其中⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=100,92735100010B A系统的性能指标J 定义为 ⎰∞+=)(t T T d Ru u Qx x J其中,[]1,100010001=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=R Q 设计最优状态反馈控制器,并检验最优闭环系统对初始状态[]Tx 001)0(=的响应。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六利用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 Aw
By Fu =++ b x w Ly =+
基于降阶观测器的输出反馈控制器是:
ˆˆˆˆ()[()]()b a b
b 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,22j λ=-±
(a ) 对于全阶观测器,1
8μ=-和 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 调节器系统
2.假设SISO 受控系统的开环传递函数为 21()G s s = (1)若根据系统的性能指标要求,希望配置的系统极点为
12,33,22j λλ=-=-±
求受控系统的状态反馈矩阵。
(2)设计观测器反馈系数矩阵L ,使全维状态观测器的希望极点均为-3. 实验结果
一、 设计基于全阶观测器和降阶观测器的输出反馈控制器
1、全阶观测器:
1) 计算全阶观测器的增益矩阵L
由图6.3所示的调节器系统1/s*(s+2)得,
执行以下的M-文件:
a=[0 1;0 -2];
b=[0;1];
c=[4 0];
v=[-8 -8];
l=(acker(a',c',v))'
result :
l =
3.5000
9.0000
计算得出,全阶观测器的增益矩阵L=[3.5;9.0]
相应的全阶观测器是:
()x A LC x Bu Ly =-++=
x+u+y 2) 计算全阶观测器的状态反馈矩阵K 及其状态响应
A=[0 1;0 -2];
B=[0;1]; J=[-2+j*2*sqrt (3) –2-j*2*sqrt (3)];
K=place (A,B,J );
sys=ss(A+B*K,eye(2),eye(2),eye(2));
t=0:0.01:20;
x=initial(sys,[1;0],t);
x1=[1 0]*x';
x2=[0 1]*x';
subplot(2,1,1);plot(t,x1);grid
xlabel('t(sec)');
ylabel('x1');
subplot(2,1,2);plot(t,x2);grid
xlabel('t(sec)');ylabel('x2');
可以得到:K=[-16 -2]
得到状态反馈后的状态变量的状态响应曲线:
于是有,全阶观测器的输出反馈控制器为:
=(A-LC+BK)x+Ly=x+y 2、降阶观测器
1)计算降阶观测器的增益矩阵L
执行以下的M-文件:
Aaa=[0];
Aab=[1];
Aba=[0];
Abb=[-2];
Ba=[0];
Bb=[1];
v=[-8];
l=(acker(Abb',Aab',v))'
Ahat=Abb-l*Aab
Bhat=Ahat*l+Aba-l*Aaa
Fhat=Bb-l*Ba
result:
l =
6
Ahat =
-8
Bhat =
-48
Fhat =
1
计算得出,降阶观测器的增益矩阵L=[6]
相应的降阶观测器是:
ˆˆˆ
=++ =[-8]w+[-48]y+[1]u
w Aw By Fu
2)计算全阶观测器的状态反馈矩阵K及其状态响应Ahat=[-8];
Bhat=[-48];
Fhat=[1];
K=[-2];
sys=ss(Ahat-Fhat*K,eye(1),eye(1),eye(1));
t=0:0.01:20;
w=initial(sys,[-1],t);
plot(t,w);
xlabel('t(sec)');
ylabel('w');
得到状态响应曲线如下图所示:
二、开环传递函数
1)求受控系统的状态反馈矩阵
执行以下应用函数acker编制的M-文件:A=[0 1 0;0 0 1;0 0 0];
B=[0;0;1];
J=[-3 -2+j*2 –2-j*2];
K=acker(A,B,J)
得到
K=[-24 -20 -7]
2)设计观测器反馈系数矩阵L
a = [0 1 0;0 0 1;0 0 0];
b = [0;0;1];
c = [1 0 0];
v = [-3 -3 -3];
l = (acker(a',c',v))'
l =
9
27
27
计算得出,全维观测器的增益矩阵L=[]。