Function: CSTR_QUDPurpose. Defines linear constraints for pole shifting into a quadrilateral. Synopsis. CSTR = cstr_qud(CSTR,sys,Quad,lambda,speed,K0[,target]) Description. The quadrilateral is defined by Quad. Only the closed-loop poles the closest to the entries of the vector lambda (if they are outside the quadrilateral) are considered for defining pole shifting constraints. Three constraints are defined (as illustrated below) for each pole to be shifted into the quadrilateral.
This function belongs to the tuning sub-toolbox. Input arguments
Output argument
See also: fb_tun, sort_ev, dist_qud Example: All the eigenvalues are shifted into the trapezium with upper left and right corners -10+10i and -1+j and lower left and right corners -10 and -1. Use ``trials and errors'' for the choice of the sixth input argument (speed). First, is defined the system and criterion:
randn('seed',0); rand('seed',0);
sys = rss(10,3,3);
K0 = zeros(3,3);
Quad = [-10+10*i -1+1*j;-10 -1];
CRIT = crit_k(ones(3,3),zeros(3,3));
The tuning loop is:
for ii = 1:60;
lam = eig_fb(sys,K0);
CSTR = cstr_qud([],sys,Quad,lam,0.01,K0);
k = fb_tun(CSTR,CRIT);
K0 = K0 + k;
end;
and the results are ([eig_fb(sys) eig_fb(sys,K0)]):
-1.8717 + 4.2640i -4.3049 -1.8717 - 4.2640i -2.4739 + 2.9886i -3.2058 + 3.2339i -2.4739 - 2.9886i -3.2058 - 3.2339i -2.4571 + 2.4050i -3.4763 -2.4571 - 2.4050i -2.3909 -2.3384 + 0.9544i -1.3022 -2.3384 - 0.9544i -0.2355 -1.0303 + 0.1174i -0.5278 -1.0303 - 0.1174i -0.4960 -0.9222All the eigenvalues have almost reached the trapezium. |