📄 phlead.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 + -