MATLAB鲁棒控制器分析
所谓鲁棒性是指控制系统在一定(结构,大小)的参数扰动下,维持某些性能的特征。
根据对性能的不同定义,可分为稳定鲁棒性(Robust stability)和性能鲁棒性(Robust performance)。
以闭环系统的鲁棒性作为目标设计得到的控制器称为鲁棒控制器。
鲁棒控制问题概述
鲁棒控制系统的一般结构如下所示:
其中P(s)为增广的对象模型,K(s)为控制器模型。从输入信号到输出信号的传递函数可以表示为
.
我们可以用MATLAB鲁棒工具箱中提供的函数augtf/augw来建立增广的双端子系统模型。
增广的双端子状态模型建立举例
MATLAB augtf/augw的调用格式如下:
P=augw(P,W1,W2,W3); % W1为控制器输入信号(误差信号)的加权函数
% W2为控制器输出信号的加权函数
% W3为输出信号的加权函数
%augw要求W1,W2,W3为正则模型
P=augtf(P,W1,W2,W3); % W1为控制器输入信号(误差信号)的加权函数
% W2为控制器输出信号的加权函数
% W3为输出信号的加权函数
带有加权函数的双端子系统模型如下所示:
增广矩阵为:
例如:给定一下系统状态方程模型及其加权函数,请建立增广的对象模型。
MATLAB代码如下:
clear all;clc;
A=[0 1 0 0;-5000 -100/3 500 100/3;0 -1 0 1;0 100/3 -4 -60];
B=[0;25/3;0;-1];
C=[0 0 1 0];
D=0;
G=ss(A,B,C,D);
s=tf('s');
W1=100/(s+1);
W2=10;
W3=s/1000;
P=augtf(G,W1,W2,W3)
运行结果如下:
P =
A =
x1 x2 x3 x4 x5
x1 0 1 0 0 0
x2 -5000 -33.33 500 33.33 0
x3 0 -1 0 1 0
x4 0 33.33 -4 -60 0
x5 0 0 -1 0 -1
B =
u1 u2
x1 0 0
x2 0 8.333
x3 0 0
x4 0 -1
x5 1 0
C =
x1 x2 x3 x4 x5
y1 0 0 0 0 100
y2 0 0 0 0 0
y3 0 -0.001 0 0.001 0
y4 0 0 -1 0 0
D =
u1 u2
y1 0 0
y2 0 10
y3 0 0
y4 1 0
Input groups:
Name Channels
U1 1
U2 2
Output groups:
Name Channels
Y1 1,2,3
Y2 4
Continuous-time state-space model.
Model Properties
然后通过MATLAB函数tf,
tf(P)
我们可以得到:
ans =
From input 1 to output...
100
1: -----
s + 1
2: 0
3: 0
4: 1
From input 2 to output...
933.3 s^2 + 2.222e04 s + 5e05
1: -------------------------------------------------------------
s^5 + 94.33 s^4 + 6486 s^3 + 3.197e05 s^2 + 3.333e05 s + 2e04
2: 10
-0.009333 s^3 - 0.2222 s^2 - 5 s + 3.599e-17
3: ----------------------------------------------
s^4 + 93.33 s^3 + 6393 s^2 + 3.133e05 s + 2e04
9.333 s^2 + 222.2 s + 5000
4: ----------------------------------------------
s^4 + 93.33 s^3 + 6393 s^2 + 3.133e05 s + 2e04
Input groups:
Name Channels
U1 1
U2 2
Output groups:
Name Channels
Y1 1,2,3
Y2 4
Continuous-time transfer function.
Model Properties
当我们得到增广的系统模型后, 我们可以利用MATLAB鲁棒工具箱提供的函数例如:
求取鲁棒控制器。
接下来会举例分析介绍。
最后,欢迎大家有问题给我留言。
非常感谢小伙伴们的-点赞-收藏-加关注。