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

📄 fsvut.m

📁 MFD-多变量系统频域设计工具
💻 M
字号:
function [dv,nv,tv,uv,av,miv,mov,av2,div] = fsvut(w,g,k,h);
%FSVUT Utility function for FSVAN and FSVANF.
%
% [DV,NV,TV,UV,AV,MIV,MOV,AV2,DIV] = FSVUT(W,LI,FI,G,K,H)
% Calculates performance
% and robustness measures for the feedback system shown in section
% FSVAN and FSVANF of the MFD reference manual.
%
% G is an MVFR matrix for the compensated plant, K represents a
% pre-compensator and H is the feedback matrix.
% W is the frequency vector associated with G, K and H.
%
% FSVUT returns 9 column vectors.
%  DV: Disturbance transmission from 'd' to the plant outputs.
%  NV: Noise transmission from the noise input 'n' to the plant outputs.
%  TU: Tracking error = (y-r)/r.
%  UV: Command signal transmission to the plant inputs.
%  AV: The maximum singular value of an unstructured additive perturbation
%      for which closed loop stability can be guaranteed.
%  MIV: The maximum singular value of an unstructured input multiplicative
%       perturbation for which closed loop stability can be guaranteed.
%  MOV: The maximum singular value of an unstructured output multiplicative
%       perturbation for which closed loop stability can be guaranteed.
%  AV2: As for AV, but a less conservative estimate.
%  DIV: Transmission from disturbance at plant input to plant output.

%  J-M. Boyle, 8th September 1987. Modified by J.M.Maciejowski, 9 & 17 May 1989.
% Copyright (c) 1987 by GEC Engineering Research Centre & Cambridge Control Ltd.
% MR0028.

[mg,ng] = fsize(w,g);
lw = length(w);
[mk,nk] = fsize(w,k);
[mh,nh] = fsize(w,h);
igmat = eye(mg);         % Generate identity matrices
ikmat = eye(mk);

dv = zeros(lw,1);        % Set-up output vectors
nv = dv; tv = dv;  uv = dv; av = dv; miv = dv; mov = dv;
av2 = dv; div = dv;

indg = 1:mg;
indk = 1:mk;
indh = 1:mh;

for i=1:lw      %  main loop
  % get the individual matrices
  gm = g(indg+mg*(i-1),:);
  km = k(indk+mk*(i-1),:);
  hm = h(indh+mh*(i-1),:);

  kh =  km*hm;            % A few preparatory calculations
  gk =  gm*km;
  gkh = gk*hm;            % Calculate GKH.
  khg = kh*gm;            % Calculate KHG.

  % Performance analysis at plant outputs.
  dv(i) = 1/(min(svd(igmat + gkh)));       % Disturbance analysis.
  nv(i) = max(svd((igmat + gkh)\gkh));     % Noise analysis.
  tv(i) = max(svd((igmat + gkh)\gk-igmat));  % Tracking accuracy analysis


  uv(i) = max(svd((ikmat + khg)\km)); % Command signals seen at plant inputs.

  av(i) = (min(svd(igmat + gkh)))/(max(svd(kh)));  % Additive perturbations.

  miv(i) = min(svd(ikmat+ikmat/khg)); % Calculate [I + inv(KHG)], stability
                                 % margin for plant input multiplicative
                                 % perturbations.

  mov(i) = min(svd(igmat+igmat/gkh)); % Calculate [I + inv(GKH)], stability
                                % margin for plant outputs multiplicative
                                % perturbations.
  av2(i) = 1/max(svd(kh/(igmat+gkh)));
  div(i) = max(svd((igmat+gkh)\gm));
end

⌨️ 快捷键说明

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