⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fms.m

📁 控制系统计算机辅助设计——MATLAB语言与应用(源代码)
💻 M
字号:
function ms = fms(w,f);
%FMS Measure of skewness of MIMO frequency response.
%
%       MS = FMS(W,F) calculates a measure of skewness of an MVFR matrix, F. 
%       W is the associated frequency response matrix.
%
%       Any square matrix, F, has the Schur decomposition:
%
%                       *
%          F = S(D + T)S
%
%       where S is unitary, D is diagonal, and T is strictly triangular.
%
%          MS(F) = ||T||/||F||   where ||.|| denotes the Frobenius norm.
%
%       The result is usually plotted against frequency: SEMILOGX(W,MS).

%       J-M. Boyle, 8 Sep 1987. Revised by J.M.Maciejowski, 3 Jan 1988.
% Copyright (c) 1987 by GEC Engineering Research Centre & Cambridge Control Ltd.

ms = zeros(1,length(w));           % Set-up a vector to hold the result

for i = 1:length(w);
  ftemp = fgetf(w,f,i);           % Get each component matrix
  [s,tu] = schur(ftemp);          % Compute the Schur form of the
                                  % component matrix.

  if ~any(any(imag(ftemp)))       % If the Schur form is real at any freq.
    [s,tu] = rsf2csf(s,tu);       % use RSF2CSF to convert to a complex
                                  % Schur form.
  end

  t = tu - diag(diag(tu));        %  T is the strictly upper triangular part
                                  %  of the Schur matrix Tu.

  ms(i) = norm(t,'fro')/norm(ftemp,'fro');  % MS is the Frobenius norm of T
end                               % divided by the Frobenius norm of F.

⌨️ 快捷键说明

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