📄 frnmat.m
字号:
function [d,rsigma]=frnmat(w,f)
%FRNMAT Calculates the normalized row dominance scalings.
% FRNMAT(W,F) returns an MVFR matrix of real positive diagonal
% pre-multiplier matrices which scale Fm so that the row
% diagonal dominance of Fm*Dm are normalize to the same value.
% Fm and Dm are the component matrices of F and D respectively.
% W is the associated frequency vector.
%
% [D,Rsigma]=FRNMAT(W,F) also returns the normalized row
% sigmas in the column vector Rsigma.
%
% To check the row dominance use
% plotdb(w,frdom(w,fmulf(w,f,d)))
% The stability similarity transformation is Dm^(-1) * Fm * Dm
% fmulf(w,finv(w,d),fmulf(w,f,d))
%
% See also FCNMAT,FRDOM,FCDOM
% Dr M.P. Ford 22nd August 1987
% Copyright (c) 1987 by GEC Engineering Research Centre & Cambridge Control Ltd
% MRN0019
[m,n]=fsize(w,f);
if m~=n
error('System is not square')
end
f=abs(f);
lw=length(w);
k=1:m;
d=[];
rsigma=[];
for i=0:lw-1
fm=f(k+m*i,:); % break up f into matrices
fd=diag(fm);
fm=fm-diag(fd); % make the diagonals zero
fd=diag(fd.^(-1)); % make 1/diagonal
[di,v]=eig(fd*fm);
[sigma,i]=max(max(v)); % max eigenvalue
if (sigma<=0) | any(di(:,i)<=0)
error('System is not Irreducible')
end
d=[d;diag(di(:,i))];
rsigma=[rsigma;sigma];
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -