状态反馈控制系统的设计与实现知识分享
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
控制工程学院课程实验报告:
现代控制理论课程实验报告
实验题目:状态反馈控制系统的设计与实现
班级自动化(工控)姓名曾晓波学号2009021178 日期2013-1-6
一、实验目的及内容
实验目的:
(1 )掌握极点配置定理及状态反馈控制系统的设计方法;
(2 )比较输出反馈与状态反馈的优缺点;
(3 )训练Matlab程序设计能力。
实验内容:
(1 )针对一个二阶系统,分别设计输出反馈和状态反馈控制器;(2 )分别测出两种情况下系统的阶跃响应;
(3 )对实验结果进行对比分析。
二、实验设备
装有MATLAB的PC机一台
三、实验原理
一个控制系统的性能是否满足要求,要通过解的特征来评价,也就是说当传递函数是有理函数时,它的全部信息几乎都集中表现为它的极点、零点及传递函数。因此若被控系统完全能控,则可以通过状态反馈任意配置极点,使被控系统达到期望的时域性能指标。
闭环系统性能与闭环极点(特征值)密切相关,在状态空间的分析和综合中,除了利用输出反馈以外,主要利用状态反馈来配置极点,它能提供更多的校正信息。
(一) 利用状态反馈任意配置闭环极点的充要条件是:受控系统可控。
设SIMO (Single Input-Multi Output )受控系统的动态方程为
状态向量x 通过状态反馈矩阵k ,负反馈至系统参考输入v ,于是有
这样便构成了状态反馈系统,其结构图如图1-1所示
图1-1 SIMO 状态反馈系统结构图
状态反馈系统动态方程为
闭环系统特征多项式为
()()f I A bk λλ=-+ (1-2) 设闭环系统的期望极点为1λ,2λ,…,n λ,则系统的期望特征多项式x b v u 1s C A k
-y x &
为
)())(()(21*n f λλλλλλλ---=Λ (1-3) 欲使闭环系统的极点取期望值,只需令式(1-2)和式(1-3)相等,即
)()(*
λλf f = (1-4) 利用式(1-4)左右两边对应λ的同次项系数相等,可以求出状态反馈矩阵 []n k k k Λ21=k
(二) 对线性定常连续系统∑(A ,B ,C ),若取系统的输出变量来构成反馈,则所得到的闭环控制系统称为输出反馈控制系统。输出反馈控制系统的结构图如图所示。
开环系统状态空间模型和输出反馈律分别为
H 为r *m 维的实矩阵,称为输出反馈矩阵。
则可得如下输出反馈闭环控制系统的状态空间模型: 输出反馈闭环系统可简记为H(A-BHC,B,C),其传递函数阵为:
GH(s)=C(sI-A+BHC)-1B
B ⎰A
C H
y - x u v
+ + + x ' 开环系统 A B C H '=+⎧⎨=⎩=-+x x u y x
u y v ()A BHC B C '=-+⎧⎨=⎩
x x v y x
四、实验步骤
实验通过MATLAB软件实现。
1.双击MATLAB图标或单击开始菜单,依次指向“程序”、“MATLAB”,单击MATLAB,进入MATLAB命令窗口。单击MATLAB工具条上的Simulink图标,运行后出现Simulink模块库浏览器,并单击其工具条左边的图标,弹出新建模型窗口。
2.在模块库浏览器窗口中的Simulink下的输入源模块(Sources)、数学运算模块(Math)、连续系统模块(Continuous)、接收模块(Sinks)库中,分别选择阶跃信号(Step)、求和(Sum)、常量增益(Gain)、积分环节(Integrator)、示波器(Scope)模块,建立如图1-2 所示的实验被控系统为Ⅰ型二阶闭环系统结构图。
图1-2 MATLAB系统结构图
3.用鼠标左键双击阶跃信号和各比例环节的模型,设置好参数;选择Simulation菜单中parameters选项,设置好仿真参数;选择Simulation菜单中的start选项,开始仿真;观察并记录下系统的输出。
4.通过状态反馈,将控制系统的闭环极点设置为p1=-1+j、p2=-1-j,重复3步骤。此时K =[-8 -3]
5.通过输出反馈,将控制系统的闭环极点设置为p1=-1+j、
p2=-1-j,重复3步骤。此时H =[ -0.3000 -0.3000]
6.由得出的结果,画出结构图,仿真出阶跃响应图。附录
程序:
1)主函数
%%本程序用于求解形如Y(s)/U(s)=num/den闭环传递函数%%
%% 极点配置问题,包括状态反馈阵
%%如:Y(s)/U(s) = 10/ s^2 + 5s + 20
clc %清屏
num = [10]; %闭环传递函数分子多项式
den = [1 5 20]; %闭环传递函数分母多项式
P=[-1+j -1-j]; %希望配置的闭环极点
[A,B,C,D]=tf2ss(num,den) ; %求状态空间表达式
[str K]=pdctrb(A,B,P) %求状态反馈阵
[str H]=pdobsv(A,C,P) %求输出反馈阵
2)功能函数
%%程序功能:系统可控性判断以及求解状态反馈阵
%%输入量:系数矩阵A
%% 输入矩阵B
%% 配置极点P
%%输出量:可控性判断结果
%% 状态反馈矩阵K
%%-------------------------------------%%
function [str K] = pdctrb(A,B,P) %定义函数pdctrb
S = ctrb(A,B); %求可控性判别矩阵S
R = rank(S); %求可控性判别矩阵S的秩
L = length(A); %求系数矩阵A的维数
if R == L %判断rank(S)是否等于A的维数str = '系统是状态完全可控的!'; %输出可控性判断结果
K =acker(A,B,P); %求状态反馈矩阵K
else
str = '系统是状态不完全可控的!';
end
3)功能函数
%%程序功能:系统可观性判断以及求解输出反馈阵
%%输入量:系数矩阵A
%% 输出矩阵B
%% 配置极点P
%%输出量:可观性判断结果
%% 输出反馈矩阵H
%%-------------------------------------%%