frost.m

来自「包含大量遗传算法程序」· M 代码 · 共 45 行

M
45
字号
function c=frost(w,f,i,k,n)
%FROST  Generate row Ostrowski circles.
%
%       points = frost(w,f,iy,k)
%       points = frost(w,f,iy,k,n)
%
%       FROST(W,F,iy,k) calculates the row Ostrowski circles 
%       for row iy of the MVFR matrix, F, and returns one 
%       column per frequency which contains the points on the 
%       circle at that frequency.
%       k is a vector of gains, one for each feedback gain.
%
%       FROST(W,F,iy,k,n) calls FCOMP(W,F,n) before
%       calculating the row Ostrowski circles for row iy.

%       P. Phaal, November 1987
% Copyright (c) 1987 by GEC Engineering Research Centre & Cambridge Control Ltd

nargs=nargin;
error(nargchk(4,5,nargs));

if nargs==5
   [f,w]=fcomp(w,f,n);
end
cent=fdiag(w,f);
rad=frsod(w,f);

[rows,cols]=size(cent);

for r = 1:rows
  for ci = 1:cols
    max = 0;
    for cj = 1:cols
      if cj ~=ci
	val = rad(r,cj)/abs(k(cj)+cent(r,cj));
	if val > max
	  max = val;
	end
      end
    end
    rad(r,ci) = rad(r,ci)*max;
  end
end
c=circ(cent(:,i),rad(:,i),31);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?