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

📄 phlead.m

📁 控制系统计算机辅助设计——MATLAB语言与应用(源代码)
💻 M
字号:
function [ka,kb,kc,kd] = phlead(maxlead,freq,dcgain)
%PHLEAD design a phase lead compensator
%
%       [ka,kb,kc,kd] = phlead(maxlead,freq,dcgain)
%       [ka,kb,kc,kd] = phlead(maxlead,freq)
%       [kn,kd] = phlead(maxlead,freq,dcgain)
%       [kn,kd] = phlead(maxlead,freq)
%
%       returns a first order lead compensator with a maximum 
%       lead of MAXLEAD ( < 90) degrees occurring at FREQ radians/s.  
%       DCGAIN specifies the dc gain of the compensator in dB's.  
%       If DCGAIN is omitted a value of 0 dB is assumed.
%
%       With 4 output arguments the compensator is returned in state
%       space form. With 2 output arguments it is returned in transfer
%       function form.
%
%       A negative value for MAXLEAD results in a phase lag compensator.

%       P. Phaal, November 1987. Revised 8 Dec 87, J.M.Maciejowski.
% Copyright (c) 1987 by GEC Engineering Research Centre & Cambridge Control Ltd
%       MRN0039

nargs = nargin;
nout = nargout;
error(nargchk(2,3,nargs));
if nargs == 2
	dcgain = 0;     % default gain
end

if abs(maxlead)>=90,
  error('Phase change must be smaller than 90 degrees. (PHLEAD)')
end

% solve controller equations
k = 10^(dcgain/20);
p = sin(maxlead*pi/180);
a = (1+p)/(1-p);
T = 1/(freq*sqrt(a));
ka = k .* [a*T,1];   % numerator
kb = [T,1];   % denominator

% convert to state space if required
if nout == 4
	[ka,kb,kc,kd] = mvtf2ss(ka,kb);
end

⌨️ 快捷键说明

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