INDEX

Function: COMP_DV


Purpose. Computes the variations of the right and left eigenvectors, input and output directions, that are induced by a variation of K0.

Synopsis.

[lam,v,w,u,t,Xv,Yv,Xw,Xu,Yu,Yt] = comp_dv(lambda,sys,K0);

Description. Let k, v, w, u, and t denote respectively the variation of K0, the right and left eigenvectors, the input and output directions. The variations of these vectors are given by:

dv = Xv*k*Yv; (v'*v = 1)
dw = Xw*k*Yv;
du = Xu*k*Yu - u*Xv*k*Yv*u; (u*v = 1)
dt = Xu*k*Yt - u*Xv*k*Yv*t;

The constraints generated using the output arguments of comp_dv can be added to those in CSTR by using k2ksi and ab2cstr (see also cstr_ini for initializing CSTR). This function belongs to the tuning sub-toolbox.

Input arguments.

 lambda Scalar number that is close enough to one of the entries of eig_fb(sys,K0) so that it can be recognized without ambiguity in this spectrum.
 sys LTI system (see syslin).
 K0 Initial proportional gain.

Output arguments.

 lam Is the (exact) closed-loop eigenvalue the closest to the input argument lambda.
 v,w,u,t Corresponding modal vectors.
 Xv,Yv,Xw,Xu,Yu,Yt See above.

See also:k2ksi, ksi2k, ab2cstr, cstr_ini


Example. Let us consider an example consisting of plugging into the matrix CSTR a constraint relative to the gain variation of the form d(u X v) < -0.1, where u and v are left and right eigenvectors and X is a given fixed matrix. First, we have to find the expression of d(u X v) = du  X  v + u  X  dv. Using the notations given in the ``description'' paragraph, the above variation is given by Xu*k*Yu*X*v - u*Xv*k*Yv*u*X*v + u*X*Xv*k*Yv. As it is a scalar, we can use the trace operator and permute matrices so that the above variation becomes trace((Yu*X*v*Xu - Yv*u*X*v*u*Xv + Yv*u*X*Xv)*k). Therefore, let us consider the following command lines:
  X = rand(6,6); sys = demodata(1);
  [lam,v,w,u,t,Xv,Yv,Xw,Xu,Yu,Yt] = comp_dv(-0.92,sys,0);
  M = Yu*X*v*Xu - Yv*u*X*v*u*Xv + Yv*u*X*Xv;
It remains to plug the constraint into the matrix CSTR (which is initialized here using cstr_ini):
  A = k2ksi(M')'; b = -0.1;
  CSTR = cstr_ini(2,4);
  CSTR = ab2cstr(CSTR,[],[],A,b);


Discussion. This function permits the designer to compute the gradient (with respect to gain variations) of all kinds of formulas in which appear the right and left eigenvectors or the input and output directions.