状态反馈与极点配置报告

合集下载

状态反馈的极点配置

状态反馈的极点配置

东南大学自动化学院实验报告课程名称:自动控制基础实验名称:控制系统极点的任意配置院(系):自动化学院专业:自动化姓名:吴静学号:08008419实验室:实验组别:同组人员:实验时间:2011年4月29日评定成绩:审阅教师:一、实验目的1. 掌握用状态反馈的设计方法实现控制系统极点的任意配置;2. 用电路模拟的方法,研究参数的变化对系统性二、实验原理内容用全状态反馈实现二阶系统极点的任意配置,并用电路模拟的方法予予以实现; 理论证明,通过状态反馈的系统,其动态性能一定会优于只有输出反馈的系统。

设系统受控系统的动态方程为bu Ax x+= cx y =图6-1为其状态变量图。

图6-1 状态变量图令Kx r u -=,其中]...[21n k k k K =,r 为系统的给定量,x 为1⨯n 系统状态变量,u 为11⨯控制量。

则引入状态反馈后系统的状态方程变为bu x bK A x+-=)( 相应的特征多项式为)](det[bK A SI --,调节状态反馈阵K 的元素]...[21n k k k ,就能实现闭环系统极点的任意配置。

图6-2为引入状态反馈后系统的方框图。

图6-2 引入状态变量后系统的方框图实验时,二阶系统方框图如6-3所示。

图6-3 二阶系统的方框图引入状态反馈后系统的方框图如图6-4所示。

根据状态反馈后的性能指标:20.0≤p δ,s 5.0T p ≤,试确定状态反馈系数K1和K2图6-4 引入状态反馈后的二阶系统方框图三、实验步骤1.引入状态反馈前根据图6-3二阶系统的方框图,设计并组建该系统相应的模拟电路,如图6-9所示。

图6-9 引入状态反馈前的二阶系统模拟电路图在系统输入端加单位阶跃信号,用上位机软件观测c(t)输出点并记录相应的实验曲线,测量其超调量和过渡时间。

2.引入状态反馈后请预先根据前面给出的指标计算出状态反馈系数K1、K2。

根据图6-4引入状态反馈后的二阶系统的方框图,设计并组建该系统相应的模拟电路,如图6-10所示。

7.4 状态反馈和极点配置

7.4 状态反馈和极点配置
3
可配置条件_极点配置定理
考虑线性定常系统
x Ax Bu
假设控制输入u的幅值是无约束的。如果选取控制规律为
u r Kx
式中K为线性状态反馈矩阵。
定理 (极点配置定理) 线性定常系统可通过线性状态反馈任意地 配置其全部极点的充要条件是,此被控系统状态完全可控。
该定理对多变量系统也成立。
证明 (对单输入单输出系统) 1、充分性 2、必要性
kn 1 ]
由于 u r Kx r KPx ,此时该系统的状态方程为 x ( Ac Bc K ) x Bcr
相应的特征方程为 sI Ac BcK 0
因为非奇异线性变换不改变系统的特征值,当利用 u=r-Kx作为控制输 入时,相应的特征方程与上式相同,均有如下结果。
s
1
0
0
s
0
sI Ac BcK
◆确定将系统状态方程变换为可控标准形的变换矩阵P。若给定的状态方程已是 可控标准形,则P = I。此时无需再写出系统的可控标准形状态方程。非奇异线 性变换矩阵P=QW。
◆利用给定的期望闭环极点,可写出期望的特征多项式为
(s 1() s 2 ) (s n ) sn an1sn1 a1s a0
从而确定出a1* , a2 *,… an *的值。
◆最后得到状态反馈增益矩阵K为
K [ a0 a0 a1 a1
a n1
an1
]
P 1
10
极点配置 例1
【例】 考虑如下线性定常系统
0
1
0
0
x Ax Bu A 0
0
1 , B 0
1 5 6
1
利用状态反馈控制,希望该系统的闭环极点为s = -2±j4和s = -10。试确定状

线性系统的状态反馈及极点配置

线性系统的状态反馈及极点配置

现代控制理论实验(一)线性系统的状态反馈及极点配置——09级自动化本科一.实验目的1.了解和掌握状态反馈及极点配置的原理。

2.了解和掌握利用矩阵法及传递函数法计算状态反馈及极点配置的原理与方法。

3.掌握在被控系统中如何进行状态反馈及极点配置,构建一个性能满足指标要求的新系统的方法。

二.实验原理及说明一个控制系统的性能是否满足要求,要通过解的特征来评价,也就是说,当传递函数是有理函数时,它的全部信息几乎都集中表现为它的极点、零点及传递函数。

因此若被控系统完全能控,则可以通过状态反馈任意配置极点,使被控系统达到期望的时域性能指标。

若有被控系统如图3-3-61所示,它是一个Ⅰ型二阶闭环系统。

图3-3-61 被控系统如图3-3-61所示的被控系统的传递函数为:12021S 11)1(1)(a S a S b T TS T TS S T S i i i ++=++=++=φ (3-3-51) 采用零极点表达式为:))(()(210λλφ--=S S b S (3-3-52)进行状态反馈后,如图3-3-62所示,图中“输入增益阵”L 是用来满足静态要求。

图3-3-62 状态反馈后被控系统设状态反馈后零极点表达式为:))(()(21**--=λλφS S b S (3-3-53)1.矩阵法计算状态反馈及极点配置1)被控系统被控系统状态系统变量图见图3-3-63。

图3-3-63 被控系统状态系统变量状态反馈后的被控系统状态系统变量图见图3-3-64。

图3-3-64 状态反馈后的被控系统状态系统变量图图3-3-61的被控系统的状态方程和输出方程为:状态方程:⎪⎪⎪⎩⎪⎪⎪⎨⎧=+-=+-=••1i 1i 2211X Y u T 1X T 1X X T 1X T 1X (3-3-54)⎪⎩⎪⎨⎧=+==•∑CxY u Ax X B C B A 0),,(式中[]01,T 10B 0T 1T 1T 1A ,i i 21=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡--=⎥⎦⎤⎢⎣⎡=C x x x , 被控系统的特征多项式和传递函数分别为:12010a a b S b )(+++=S S S φB A)C(SI 1--=)(A -SI det a a )(f 0120=++=S S S 可通过如下变换(设P 为能控标准型变换矩阵): —x P X =将∑0C B A ),,(化为能控标准型 ),,(————C B A ∑,即: ⎪⎩⎪⎨⎧=+=•——————x C Y u x A B X 式中 ⎥⎦⎤⎢⎣⎡-==-101a -a 10AP P A — , ⎥⎦⎤⎢⎣⎡==-10B P B 1— , []10b b CP C ==— 2)被控系统针对能控标准型),,(————C B A ∑引入状态反馈:⎥⎦⎤⎢⎣⎡=-=—————式中10k k k xk u ν (3-3-55)可求得对—x 的闭环系统),,—————C B k B A (-∑的状态空间表达式: 仍为能控标准型,即: ⎪⎩⎪⎨⎧=+-=•————————)(x C Y u x B k B A X 式中 ⎥⎦⎤⎢⎣⎡+-+-=-)()(—————1100k a k a 10k B A则闭环系统),,(——————C B k B A -∑的特征多项式和传递函数分别为: )()(—————00112k k a k a k)B (A SI det )(f ++++=⎥⎦⎤⎢⎣⎡--=S S S )k a (k a b S b B )k B A (SI C )(00112011k ———————)(+++++=⎥⎦⎤⎢⎣⎡--=-S S S φ3)被控系统如图3-3-61所示:其中:05.01==T T i则其被控系统的状态方程和输出方程为:[]XY uX X 0110012020=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡--=期望性能指标为:超调量M P ≤20%;峰值时间t P ≤0.5秒。

状态反馈与极点配置报告

状态反馈与极点配置报告

自动控制原理(课程设计)一、题目用MATLAB创建用户界面,并完成以下功能:(1)由用户输入被控系统的状态空间模型、闭环系统希望的一组极点;(2)显示未综合系统的单位阶跃响应曲线;(3)显示采用一般设计方法得到的状态反馈矩阵参数;(4)显示闭环反馈系统的单位阶跃响应曲线;(5)将该子系统嵌入到寒假作业中程序中。

分别对固定阶次和任意阶次的被控系统进行设计。

分别给出设计实例。

二、运行结果界面:如图由用户输入被控系统的状态空间模型、闭环系统希望的一组极点例如,输入010001034A⎡⎤⎢⎥=⎢⎥⎢⎥--⎣⎦,1B⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,[]2000C=,0D=,闭环系统希望的一组极点:22j-+、22j--、5-如图所示:被控系统的单位阶跃响应曲线闭环系统的单位阶跃响应曲线状态反馈矩阵显示三、讨论该闭环控制系统的状态反馈与极点配置设计系统可用于任意阶次的控制系统。

在此之前,我还做了一个固定阶次的控制系统状态反馈与极点配置的Matlab 控制台程序(见附录二)。

该系统的利用状态反馈进行极点任意配置所采用的方法为一般方法,其步骤如下:①判断受控系统是否完全能控;②由给定的闭环极点要求确定希望的闭环特征多项式的n个系数~i a;③确定原受控系统的特征多项式系数ia;④确定系统状态反馈矩阵~~~~[,,,]12nff fF=的诸元素~~11ii if a a-=--;⑤确定原受控系统化为能控标准形的变换阵的逆1P-,⑥确定受控系统完成闭环极点配置任务的状态反馈阵~1F F P-=。

四、参考文献[1]黄家英.《自动控制原理》.高等教育出版社,2010.5[2]唐向红,郑雪峰.《MATLAB及在电子信息类》.电子工业出版社,2009.6[3]吴大正,高西全.《MATLAB新编教程》.机械工业出版社,2008.4五、附录function varargout = tufeiqiang(varargin)%TUFEIQIANG M-file for tufeiqiang.fig% TUFEIQIANG, by itself, creates a new TUFEIQIANG or raises the existing% singleton*.%% H = TUFEIQIANG returns the handle to a new TUFEIQIANG or the handle to% the existing singleton*.%% TUFEIQIANG('Property','Value',...) creates a new TUFEIQIANG usingthe% given property value pairs. Unrecognized properties are passed via % varargin to tufeiqiang_OpeningFcn. This calling syntax produces a% warning when there is an existing singleton*.%% TUFEIQIANG('CALLBACK') and TUFEIQIANG('CALLBACK',hObject,...) call the% local function named CALLBACK in TUFEIQIANG.M with the given input % arguments.%% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one% instance to run (singleton)".%% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help tufeiqiang% Last Modified by GUIDE v2.5 20-May-2015 23:49:56% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @tufeiqiang_OpeningFcn, ...'gui_OutputFcn', @tufeiqiang_OutputFcn, ...'gui_LayoutFcn', [], ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before tufeiqiang is made visible.function tufeiqiang_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin unrecognized PropertyName/PropertyValue pairs from the% command line (see VARARGIN)% Choose default command line output for tufeiqianghandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes tufeiqiang wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = tufeiqiang_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout{1} = handles.output;function WZH_Callback(hObject, eventdata, handles)% hObject handle to WZH (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)A=get(handles.edit1,'String');A=char(A);A=str2num(A);B=get(handles.edit2,'String');B=char(B);B=str2num(B);C=get(handles.edit3,'String');C=char(C);C=str2num(C);D=get(handles.edit4,'String');D=char(D);D=str2num(D);sys = ss(A,B,C,D);axes(handles.axes1);set(handles.axes1,'unit','normalized');step(sys);%title('••ו•••••••••••ו••ì•••ú••')set(findobj(gca,'Type','line','Color',[0 0 1]),...'Color','red',...'LineWidth',2)% --- Executes on button press in BFK.function BFK_Callback(hObject, eventdata, handles)% hObject handle to BFK (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)A=get(handles.edit1,'String');A=char(A);A=str2num(A);B=get(handles.edit2,'String');B=char(B);B=str2num(B);C=get(handles.edit3,'String');C=char(C);C=str2num(C);D=get(handles.edit4,'String');D=char(D);D=str2num(D);P=get(handles.edit5,'String');P=char(P);P=str2num(P);K = acker(A,B,P);at = A-B*K;bt = B;ct = C;dt = D;%[num,den]=zp2tf(z,p,k);%[num1,den1]=cloop(num,den);axes(handles.axes1);set(handles.axes1,'unit','normalized');%step(cloop(num,den));%rlocus(A,B,K,0)%step(num1,den1);sys = ss(at,bt,ct,dt);step(sys);title('±••··••••••••••••ו••ì•••ú••')set(findobj(gca,'Type','line','Color',[0 3 3]),...'Color','yellow',...'LineWidth',2)function FKC_Callback(hObject, eventdata, handles)% hObject handle to FKC (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)A=get(handles.edit1,'String');A=char(A);A=str2num(A);B=get(handles.edit2,'String');B=char(B);B=str2num(B);Z=get(handles.edit5,'String');Z=char(Z);Z=str2num(Z);Zif rank(ctrb(A,B)) == rank(A)N = acker(A,B,Z);Nstr=num2str(N)H = findobj('tag','edit6');set(H,'string',str);elsemsgbox('•••••••••••••••••••••••• ');endfunction pushbutton6_Callback(hObject, eventdata, handles)% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)A=get(handles.edit1,'String');AA=char(A);AA=str2num(A);AB=get(handles.edit2,'String');BB=char(B);BB=str2num(B);BM = ctrb(A,B);if rank(M) == rank(A)msgbox('•••••ê••••••••••••••••••');%[num,den]=zp2tf(z,p,k);%[num1,den1]=cloop(num,den);%step(cloop(num,den));%rlocus(A,B,K,0)%step(num1,den1);elsemsgbox('•••••••••••••••••••••••• '); end。

状态反馈

状态反馈

一、状态反馈极点配置问题
1 0 0 (4) 计算逆矩阵 Q P 1 0 1 12 1 18 144 (5) 计算反馈增益矩阵
1 0 0 k kQ 4 66 14 0 1 12 1 18 144 14 186 1220 极点配置状态反馈控制为
0
0
计算化 A, B 为馈矩阵K KS 1
16 26 26 * 30 30
17 27 27 * 31 31
18 28 28 * 32 32
给定能控系统{A,B} 是
2 2 1 即除了 1 0
21 2 0 21 0
外,对几乎所有的ρ,有{A,Bρ}完全能控
一、状态反馈极点配置问题
多输入情况极点配置状态反馈控制的算法1
第1步:判断A是否为循环矩阵。若不是,选取一个m n矩阵K1使得 A A BK1为循环矩阵;若是,则让A A; 第2步:对循环矩阵A, 选取m 1 向量 使得{ A, b}完全能控,其中b B 第3步:对单输入系统x Ax bu利用单输入系统的极点配置算法, 计算反馈增益向量k; 第4步:A不是循环矩阵时,所求反馈增益矩阵为K k K1; A是循环矩阵时,所求反馈增益矩阵为K k。 注:由于K1和的不唯一,以及K k或K k K1可知,状态反馈 矩阵K的结果不唯一且秩为1。 通常,总希望K1和的选取使K的各元尽可能小。
解: 容易判断系统完全能控,可任意配置极点。
( )计算特征多项式 1 s 0 0 det( sI A) 1 s 6 0 s 3 18s 2 72 s 0 1 s 12
* ( s) ( s 2)( s 1 j )( s 1 j ) s 3 4s 2 6s 4

状态反馈与闭环极点配置

状态反馈与闭环极点配置

16
§3.2-2 单输入系统的极点配置 确定反馈增益阵 K 为
1 ⎤ ⎡0 0 ˆ −1 = [ −4 66 14] ⎢0 1 −12 ⎥ K = KT ⎢ ⎥ ⎢ ⎣1 −18 144 ⎥ ⎦ = [14 −186 1220]
− 1 ± j.
则 A + BK 的特征值为 −2,
17
§3.2-3 多输入系统的极点配置 分两种情形进行讨论。 (1) A 为循环矩阵 A 为循环矩阵,则必有向量 引理3.1 若 ( A, B ) 能控, α ∈ \ p×1 , 使得 ( A, Bα ) 单输入能控。 证明:因为 A 为循环矩阵,故 A 的互异特征根各自对应 一个若当块,设 λ1 , λ 2 , " λσ 为 A 的互异特征值,对( A, B ) 进行非奇异线性变换,令
的系数。
使得
9
§3.2-2 单输入系统的极点配置 令 则由
ˆ = KT = [k K 0
k1 " kn −1 ]
(3.2.7)
ˆ ˆ = T −1 AT + T −1bKT = T −1 ( A + bK )T ˆ + bK A ˆK ˆ +b ˆ 与 A + bK 有相同的特征值。 知 A
由(3.2.5), (3.2.7)得
24
§3.2-3 多输入系统的极点配置 证明:必要性:即定理3.4。 充分性:用反证法。设 ( A, B ) 不完全能控,则对其进行 能控性分解
⎡ A11 A12 ⎤ ⎡ B1 ⎤ −1 −1 ˆ ˆ A = T AT = ⎢ , B = T B = ⎢ ⎥ (3.2.18) ⎥ ⎣0⎦ ⎣ 0 A22 ⎦ ( A11 , B1 ) 为完全能控。则对任一状态反馈矩阵 K , 令 ˆ = KT = [ K K ], 则有 K

7.4 状态反馈和极点配置

7.4 状态反馈和极点配置

这是具有线性状态反馈的闭环系统的特征方程,它一定与期望特征方程相等。 通过使s的同次幂系数相等,可得
7
极点配置定理_充分性
a0 k0 a0
a1 k1 a1
an 1 kn 1 an 1 求解上述方程组,得到 ki
的值,则
K KP 1 [k 0 k1
[ a0 a0 a1 a1
0 1 an1 0
0 0 1 Bc P B 0 1
6
极点配置定理_充分性
设 K KP [k 0 k1 kn 1 ] 由于 u r Kx r KPx ,此时该系统的状态方程为 x ( Ac Bc K ) x Bc r
从而确定出a1* , a2 *,… an *的值。 ◆最后得到状态反馈增益矩阵K为 K [ a0 a0 a1 a1
1 an 1 an 1 ] P
10
极点配置 例1
【例】 考虑如下线性定常系统
1 0 0 0 , B 0 A 0 0 1 Ax Bu x 5 6 1 1 利用状态反馈控制,希望该系统的闭环极点为s = -2±j4和s = -10。试确定状 态反馈增益矩阵K。
0 0 1 Ac P AP 0 a0
x Ac x Bcu
1 0 0 a1
0 1 0 a2
上式为可控标准形。选取一组期望的特征值为 1 , 2 , , n ,则 期望的特征方程为
( s 1 )( s 2 )
* n 1 * * ( s n ) s n an s ... a s a 1 1 0 0
an1 1 0 0 1 0 0 0

控制系统的极点配置实验报告

控制系统的极点配置实验报告

课程名称: 控制理论乙 指导老师: 姚唯 成绩: 实验名称: 控制系统的极点配置 实验类型: 同组学生姓名: 郁明非一、实验目的和要求(必填) 二、实验内容和原理(必填)三、主要仪器设备(必填) 四、操作方法和实验步骤五、实验数据记录和处理 六、实验结果与分析(必填)七、讨论、心得一、实验目的和要求1.掌握全状态反馈系统的极点配置方法2.在Simulink 仿真环境中,研究极点配置对系统特性的影响二、实验内容和原理(一)实验内容1.一被控对象,其传递函数为)3)(2)(1(10)(+++=s s s s G设计反馈控制器u=-kx ,使闭环系统的极点为3221j +-=μ,3222j --=μ,103-=μ。

2.在Simulink 仿真环境下,用基本环节组成经过极点配置后的系统,通过图形观察环节,观察系统的各点响应。

(二)实验原理对一给定控制系统如果其状态完全可控,则可进行任意极点配置即通过设计反馈増益K 使闭环系统具有期望的极点。

极点配置有二种方法:第一种方法是采用变换矩阵T ,使系统具有期望的极点,从而求出矩阵K ;第二种方法基于Caylay-Hamilton 理论,通过矩阵多项式φ(â),可求出K (这种方法称为Ackermann 公式)。

在MATLAB 中,利用控制系统工具箱函数place 和acker 进行极点配置设计。

三、主要仪器设备一台PC 电脑,matlab 仿真软件,simulink 仿真环境四、实验源代码及实验结果function jidianpeizhinum=[10];den=[1,6,11,6];[A,B,C,D]=tf2ss(num,den);J=[-2-j*2*sqrt(3),-2+j*2*sqrt(3),-10];K=place(A,B,J);Ksys=ss(A-B*K,[0;0;0],eye(3),0);t=0:0.01:4;X=initial(sys,[1;0;0],t);x1=[1,0,0]*X';x2=[0,1,0]*X';x3=[0,0,1]*X';subplot(3,1,1);plot(t,x2);grid on;title('Reponse to initial condition'); ylabel('x1');subplot(3,1,2);plot(t,x2);grid on;ylabel('x2');subplot(3,1,3);plot(t,x3);grid on;ylabel('x3');xlabel('t(sec)');实验结果K =8.0000 45.0000 154.0000实验验证:>> num=[10];>> den=[1 6 11 6];>> [A,B,C,D]=tf2ss(num,den);>> J=[-2-j*2*sqrt(3),-2+j*2*sqrt(3),-10];>> K=place(A,B,J)K =8.0000 45.0000 154.0000>> A1=A-B*K;>> sys=ss(A1,B,C,D);>> G1=zpk(sys);>> G1=zpk(sys)G1 =10----------------------(s+10) (s^2 + 4s + 16)Continuous-time zero/pole/gain model.五、simulink仿真1.简单环节叠加仿真2.状态函数仿真六、心得、体会1. 通过本次实验,掌握了状态反馈的概念,并且掌握了利用状态反馈进行极点配置的方法,学会了用MATLAB 求解状态反馈矩阵。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

自动控制原理(课程设计)一、题目用MATLAB创建用户界面,并完成以下功能:(1)由用户输入被控系统的状态空间模型、闭环系统希望的一组极点;(2)显示未综合系统的单位阶跃响应曲线;(3)显示采用一般设计方法得到的状态反馈矩阵参数;(4)显示闭环反馈系统的单位阶跃响应曲线;(5)将该子系统嵌入到寒假作业中程序中。

分别对固定阶次和任意阶次的被控系统进行设计。

分别给出设计实例。

二、运行结果界面:如图由用户输入被控系统的状态空间模型、闭环系统希望的一组极点例如,输入010001034A⎡⎤⎢⎥=⎢⎥⎢⎥--⎣⎦,1B⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,[]2000C=,0D=,闭环系统希望的一组极点:22j-+、22j--、5-如图所示:被控系统的单位阶跃响应曲线闭环系统的单位阶跃响应曲线状态反馈矩阵显示三、讨论该闭环控制系统的状态反馈与极点配置设计系统可用于任意阶次的控制系统。

在此之前,我还做了一个固定阶次的控制系统状态反馈与极点配置的Matlab 控制台程序(见附录二)。

该系统的利用状态反馈进行极点任意配置所采用的方法为一般方法,其步骤如下:①判断受控系统是否完全能控;②由给定的闭环极点要求确定希望的闭环特征多项式的n个系数~i a;③确定原受控系统的特征多项式系数ia;④确定系统状态反馈矩阵~~~~[,,,]12nff fF=的诸元素~~11ii if a a-=--;⑤确定原受控系统化为能控标准形的变换阵的逆1P-,⑥确定受控系统完成闭环极点配置任务的状态反馈阵~1F F P-=。

四、参考文献[1]黄家英.《自动控制原理》.高等教育出版社,2010.5[2]唐向红,郑雪峰.《MATLAB及在电子信息类》.电子工业出版社,2009.6[3]吴大正,高西全.《MATLAB新编教程》.机械工业出版社,2008.4五、附录function varargout = tufeiqiang(varargin)%TUFEIQIANG M-file for tufeiqiang.fig% TUFEIQIANG, by itself, creates a new TUFEIQIANG or raises the existing% singleton*.%% H = TUFEIQIANG returns the handle to a new TUFEIQIANG or the handle to% the existing singleton*.%% TUFEIQIANG('Property','Value',...) creates a new TUFEIQIANG usingthe% given property value pairs. Unrecognized properties are passed via % varargin to tufeiqiang_OpeningFcn. This calling syntax produces a% warning when there is an existing singleton*.%% TUFEIQIANG('CALLBACK') and TUFEIQIANG('CALLBACK',hObject,...) call the% local function named CALLBACK in TUFEIQIANG.M with the given input % arguments.%% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one% instance to run (singleton)".%% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help tufeiqiang% Last Modified by GUIDE v2.5 20-May-2015 23:49:56% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @tufeiqiang_OpeningFcn, ...'gui_OutputFcn', @tufeiqiang_OutputFcn, ...'gui_LayoutFcn', [], ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before tufeiqiang is made visible.function tufeiqiang_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin unrecognized PropertyName/PropertyValue pairs from the% command line (see VARARGIN)% Choose default command line output for tufeiqianghandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes tufeiqiang wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = tufeiqiang_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout{1} = handles.output;function WZH_Callback(hObject, eventdata, handles)% hObject handle to WZH (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)A=get(handles.edit1,'String');A=char(A);A=str2num(A);B=get(handles.edit2,'String');B=char(B);B=str2num(B);C=get(handles.edit3,'String');C=char(C);C=str2num(C);D=get(handles.edit4,'String');D=char(D);D=str2num(D);sys = ss(A,B,C,D);axes(handles.axes1);set(handles.axes1,'unit','normalized');step(sys);%title('••ו•••••••••••ו••ì•••ú••')set(findobj(gca,'Type','line','Color',[0 0 1]),...'Color','red',...'LineWidth',2)% --- Executes on button press in BFK.function BFK_Callback(hObject, eventdata, handles)% hObject handle to BFK (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)A=get(handles.edit1,'String');A=char(A);A=str2num(A);B=get(handles.edit2,'String');B=char(B);B=str2num(B);C=get(handles.edit3,'String');C=char(C);C=str2num(C);D=get(handles.edit4,'String');D=char(D);D=str2num(D);P=get(handles.edit5,'String');P=char(P);P=str2num(P);K = acker(A,B,P);at = A-B*K;bt = B;ct = C;dt = D;%[num,den]=zp2tf(z,p,k);%[num1,den1]=cloop(num,den);axes(handles.axes1);set(handles.axes1,'unit','normalized');%step(cloop(num,den));%rlocus(A,B,K,0)%step(num1,den1);sys = ss(at,bt,ct,dt);step(sys);title('±••··••••••••••••ו••ì•••ú••')set(findobj(gca,'Type','line','Color',[0 3 3]),...'Color','yellow',...'LineWidth',2)function FKC_Callback(hObject, eventdata, handles)% hObject handle to FKC (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)A=get(handles.edit1,'String');A=char(A);A=str2num(A);B=get(handles.edit2,'String');B=char(B);B=str2num(B);Z=get(handles.edit5,'String');Z=char(Z);Z=str2num(Z);Zif rank(ctrb(A,B)) == rank(A)N = acker(A,B,Z);Nstr=num2str(N)H = findobj('tag','edit6');set(H,'string',str);elsemsgbox('•••••••••••••••••••••••• ');endfunction pushbutton6_Callback(hObject, eventdata, handles)% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)A=get(handles.edit1,'String');AA=char(A);AA=str2num(A);AB=get(handles.edit2,'String');BB=char(B);BB=str2num(B);BM = ctrb(A,B);if rank(M) == rank(A)msgbox('•••••ê••••••••••••••••••');%[num,den]=zp2tf(z,p,k);%[num1,den1]=cloop(num,den);%step(cloop(num,den));%rlocus(A,B,K,0)%step(num1,den1);elsemsgbox('•••••••••••••••••••••••• '); end。

相关文档
最新文档