预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

控制工程学院课程实验报告: 现代控制理论课程实验报告 实验题目:状态反馈控制系统的设计与实现 班级自动化(工控)姓名曾晓波学号2009021178日期2013-1-6 实验目的及内容 实验目的: (1)掌握极点配置定理及状态反馈控制系统的设计方法; (2)比较输出反馈与状态反馈的优缺点; (3)训练Matlab程序设计能力。 实验内容: (1)针对一个二阶系统,分别设计输出反馈和状态反馈控制器; (2)分别测出两种情况下系统的阶跃响应; (3)对实验结果进行对比分析。 实验设备 装有MATLAB的PC机一台 实验原理 一个控制系统的性能是否满足要求,要通过解的特征来评价,也就是说当传递函数是有理函数时,它的全部信息几乎都集中表现为它的极点、零点及传递函数。因此若被控系统完全能控,则可以通过状态反馈任意配置极点,使被控系统达到期望的时域性能指标。 闭环系统性能与闭环极点(特征值)密切相关,在状态空间的分析和综合中,除了利用输出反馈以外,主要利用状态反馈来配置极点,它能提供更多的校正信息。 利用状态反馈任意配置闭环极点的充要条件是:受控系统可控。 设SIMO(SingleInput-MultiOutput)受控系统的动态方程为 状态向量通过状态反馈矩阵,负反馈至系统参考输入,于是有 这样便构成了状态反馈系统,其结构图如图1-1所示 图1-1SIMO状态反馈系统结构图 状态反馈系统动态方程为 闭环系统特征多项式为 (1-2) 设闭环系统的期望极点为,,…,,则系统的期望特征多项式为 (1-3) 欲使闭环系统的极点取期望值,只需令式(1-2)和式(1-3)相等,即 (1-4) 利用式(1-4)左右两边对应的同次项系数相等,可以求出状态反馈矩阵 对线性定常连续系统å(A,B,C),若取系统的输出变量来构成反馈,则所得到的闭环控制系统称为输出反馈控制系统。输出反馈控制系统的结构图如图所示。 开环系统状态空间模型和输出反馈律分别为 H为r*m维的实矩阵,称为输出反馈矩阵。 则可得如下输出反馈闭环控制系统的状态空间模型: 输出反馈闭环系统可简记为H(A-BHC,B,C),其传递函数阵为: GH(s)=C(sI-A+BHC)-1B 实验步骤 实验通过MATLAB软件实现。 双击MATLAB图标或单击开始菜单,依次指向“程序”、“MATLAB”,单击MATLAB,进入MATLAB命令窗口。单击MATLAB工具条上的Simulink图标,运行后出现Simulink模块库浏览器,并单击其工具条左边的图标,弹出新建模型窗口。 2.在模块库浏览器窗口中的Simulink下的输入源模块(Sources)、数学运算模块(Math)、连续系统模块(Continuous)、接收模块(Sinks)库中,分别选择阶跃信号(Step)、求和(Sum)、常量增益(Gain)、积分环节(Integrator)、示波器(Scope)模块,建立如图1-2所示的实验被控系统为Ⅰ型二阶闭环系统结构图。 图1-2MATLAB系统结构图 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.由得出的结果,画出结构图,仿真出阶跃响应图。 附录 程序: 主函数 %%本程序用于求解形如Y(s)/U(s)=num/den闭环传递函数%% %%极点配置问题,包括状态反馈阵<K>和输出反馈阵<H>%% %%如:Y(s)/U(s)=10/s^2+5s+20 clc%清屏 num=[10];%闭环传递函数分子多项式 den=[1520];%闭环传递函数分母多项式 P=[-1+j-1-j];%希望配置的闭环极点 [A,B,C,D]=tf2ss(num,den);%求状态空间表达式 [strK]=pdctrb(A,B,P)%求状态反馈阵<K> [strH]=pdobsv(A,C,P)%求输出反馈阵<H> 功能函数 %%程序功能:系统可控性判断以及求解状态反馈阵 %%输入量:系数矩阵A %%输入矩阵B %%配置极点P %%输出量:可控性判断结果 %%状态反馈矩阵K %%-------------------------------------%% function[strK]=pdctrb(A,B,P)%定义函数pdctrb S=ctrb(A,B);%求可控性判别矩阵S R