📄 madb.m
字号:
%------------------------------------------
% File Name : dd_nominal.m
% 侩档 : Nominal system俊 措茄 maximum
% allowble delay bound甫 备茄促.
%
% h = 1.8125 is the maximum for this example.
%------------------------------------------
clear all;
h= input('h = ');
%%-----------------
%% Model Parameter
%%-----------------
% loop 1
Ra=10;
%Ra=13;
%Ra=14;
Ki=10;
Kb=0.075;
J=0.006;
%%---------------
%% System Matrix
%%---------------
A=[-Ki*Kb/(Ra*J) 0;1 0];
B=[Ki/(Ra*J);0];
%A = [0 1; 0 -0.1]
%B = [0 ; 0.1]
R=10;
w=0.025;
Q=w*eye(2);
[K,s]=lqr(A,B,Q,R);
A1 = -B*K;
[n,n]=size(A);
%-------------------------------------
% 扁粮俊 洤带 规过
%-------------------------------------
Q=eye(2);
P = lyap((A+A1)',Q);
sig = min(eig(Q))/(2*max(abs(eig(P))));
del = sqrt(max(abs(eig(P)))/min(abs(eig(P))));
normF = norm(A1*(A+A1));
tau = sig/(del*normF);
%----------------------------
% LMI 规过
%----------------------------
setlmis([]);
%-------------------
% LMI Variable
%-------------------
P = lmivar(1,[n 1]);
Q = lmivar(1,[n 1]);
X = lmivar(1,[n 1]);
Y = lmivar(2,[n n]);
Z = lmivar(1,[n 1]);
STAB = newlmi;
lmiterm([STAB 1 1 P],1,A,'s');
lmiterm([STAB 1 1 X],h,1);
lmiterm([STAB 1 1 Y],1,1,'s');
lmiterm([STAB 1 1 Q],1,1);
lmiterm([STAB 2 2 Q],-1,1);
lmiterm([STAB 3 3 Z],-h,1);
lmiterm([STAB 1 2 P], 1,A1);
lmiterm([STAB 1 2 Y], -1,1);
lmiterm([STAB 1 3 Z], h*A',1);
lmiterm([STAB 2 3 Z], h*A1',1);
STAB1 = newlmi;
lmiterm([-STAB1 1 1 X], 1,1);
lmiterm([-STAB1 1 2 Y], 1,1);
lmiterm([-STAB1 2 2 Z], 1,1);
STAB2 = newlmi;
lmiterm([-STAB2 1 1 P], 1,1);
delaylmi = getlmis;
[topt,xopt] = feasp(delaylmi);
P = dec2mat(delaylmi,xopt,P);
Q = dec2mat(delaylmi,xopt,Q);
X = dec2mat(delaylmi,xopt,X);
Y = dec2mat(delaylmi,xopt,Y);
Z = dec2mat(delaylmi,xopt,Z);
sprintf('Conventional method : tau = %f ', tau)
sprintf('LMI method : tau = %f', h)
sprintf('LMI method yields %f bigger value than the conventional method', h/tau)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -