• 大小: 47KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: Matlab
  • 标签: 鲁棒  H-infinity  

资源简介

该程序的主要目的是给出鲁棒H无穷控制器的设计过程,并通过绘图形象反映仿真结果,具有较高的参考价值。

资源截图

代码片段和文件信息

%__________________________________________________________
%
%  tank_DKiteration.m
%
%  Perform an H_infinity/mu synthesis design for a process
%  tank system.   The main purpose of this code is to
%  demonstrate the use of the software for robust H_infinity
%  control design.
%
%  Requires version 3.0 (Sept/2004) of the robust control
%  toolbox.
%
%  Roy Smith  23/May/2006
%
%__________________________________________________________


%  The system consists of a water tank with controlled hot and
%  cold water inlet flows.  An outlet flow is located at the
%  bottom of the tank.   The measured variables of interest
%  are the level and temperature of the water in the tank.

%  The tank system and the perturbation model is described in:
%
%   “Model validation for robust control: an experimental process
%   control application“  Roy S. Smith  Automatica Vol. 31 
%   No. 11 pp. 1637-1647 1995.

%  _________________________________________________________

clear all

%  Nominal model:

%  Physical constants:  (scaled dimensionless units)

A1 = 91.4;      % tankcross-sectional area
alpha = 1.34;   % exit flow gain
beta = 0.6;     % exit flow bias
th = 1.0;       % hot water temperature
tc = 0.0;       % cold water temperature

act_tc = 0.05;  % actuator time constant

%  Nominal operating point:

h1nom = 0.47;
t1nom = 0.5;

%  Linearized model with 
%     input variables:  [fh; fc]
%     state variables:  [E; f1]
%     output variables: [h1; t1]

A_tank = [-(1+beta/h1nom)/(A1*alpha) beta*t1nom/(A1*h1nom);
      0   -1/(A1*alpha) ];
    
B_tank = [th/A1          tc/A1;
     1/(A1*alpha)  1/(A1*alpha)];
   
C_tank = [0        alpha;
     1/h1nom -t1nom*alpha/h1nom];

D_tank = [0 0;
     0 0];
   
P_tank = ss(A_tankB_tankC_tankD_tank);

%   Actuator model.

%   We use a model of the form:  exp(-theta*s)*k/(tau*s + 1)
%   with  0.8 <= k <= 1.2  1.5 <= tau <= 2.5 and 0.5 <= theta <= 1.0.
%   A second order Pade approximation models the delay.

s = tf(‘s‘);
P_act = (s^2 - 8*s + 21.3)/((2*s+1)*(s^2+8*s+21.3));

%   Examine the frequency response.

omega = logspace(-42250);
P_tank_f = frd(P_tankomega);
P_act_f = frd(P_actomega);

figure(1)
subplot(211)           
loglog(abs(P_tank_f(11))abs(P_tank_f(12))...
       abs(P_tank_f(21))abs(P_tank_f(22))...
       abs(P_act_f));
axis([min(omega)max(omega)1e-510])
grid
legend(‘h1 <- fh‘‘h1 <- fc‘‘t1 <- fh‘‘t1 <- fc‘‘P_{act}‘)
xlabel(‘Frequency [rad/sec]‘)
ylabel(‘Magnitude‘)

r2d = 180/pi;

subplot(212)
semilogx(r2d*unwrap(angle(P_tank_f(11)))r2d*unwrap(angle(P_tank_f(12)))...
       r2d*unwrap(angle(P_tank_f(21)))r2d*unwrap(angle(P_tank_f(22)))...
       r2d*unwrap(angle(P_act_f)))
grid
xlabel(‘Frequency [rad/sec]‘)
ylabel(‘Phase [deg]‘)
title(‘Nominal model‘)

%   -------------- Perturbation weights ---------------------

%   Actuator model  (see Laugh

评论

共有 条评论