資源簡介
分數階PID控制的MATLAB、SIMULINK工具箱
代碼片段和文件信息
function?varargout?=?bodeFr(F?Q?w?delay)
%?[gain?phase?w]?=?bodeFr(F?Q?w?delay)
%?Bode?diagram?of?a?fractional?plant.?Paramter?w?may?be?a?vector?with?the
%?frequencies?of?the?plot?(in?rad/s)?or?a?cell?with?the?limits?of?the
%?frequency?range?of?the?plot?(in?rad/s).?If?empty?a?suitable?range?is
%?provided.?
%?F?may?be?of?the?form?[P?I?lambda?D?mu]?in?which?case?the?plant?is
%?P?+?I/(s^lambda)?+?D*(s^mu)?and?parameter?Q?is?irrelevant;?or?be?an?lti
%?object?in?which?case?Q?will?be?the?commensurate?order?(the?default?value
%?of?which?will?be?1.?For?instance?plant?1/(1+s^.5)?correponds?to
%?F?=?tf(1[1?1])?and?Q?=?0.5.
%?Parameter?delay?is?an?optional?delay?the?default?being?0.
%?A?Bode?diagram?is?plot?if?there?are?no?return?values.
%?Otherwise?the?function?returns?the?gain?(absolute?value)?and?the?phase
%?(in?degrees)?at?frequencies?w?(in?rad/s).
%?Duarte?Val閞io?2004
if?nargin?4?delay?=?0;?end?%?there?is?no?delay?by?default
if?nargin?3?|?isempty(w)?%?no?data?on?w?was?provided
????try?%?F?is?given?as?an?ltimodel
????????temp?=?abs([tzero(F);?pole(F)]);
????catch?%?length(F)?==?5?F?is?given?as?a?list?of?parameters?for?a?fractional?PID
????????P?=?F(1);?I?=?F(2);?lambda?=?F(3);?D?=?F(4);?mu?=?F(5);
????????temp?=?sort([abs((-P+sqrt(P^2-4*D*I))/(2*D))?abs((-P-sqrt(P^2-4*D*I))/(2*D))]);
????end?%?now?temp?has?the?zeros?and?poles?of?the?plant
????if?min(temp)
????????wmax?=?10^ceil(log10(max(temp)))?*?100;?%limits?are?powers?of?10
????????wmin?=?10^floor(log10(min(temp)))?/?100;
????else?%?temp?has?zeros
????????wmax?=?100;
????????wmin?=?.01;
????end
????w?=?logspace(log10(wmin)?log10(wmax)?10?*?ceil(log10(wmax/wmin)));
end
%?there?are?10?frequencies?per?decade
if?iscell(w)?%?only?wmax?and?wmin?were?provided
????wmin?=?w{1};
????wmax?=?w{2};
????w?=?logspace(log10(wmin)?log10(wmax)?10?*?ceil(log10(wmax/wmin)));
end
if?nargin?2?|?isempty(Q)?Q?=?1;?end?%?integer?plants?assumed?as?default
resp?=?freqrespFr(F?Q?w?delay);?%?freqrespFr?does?the?important?work
gain?=?abs(resp);
phase?=?rad2deg(unwrap(angle(resp)));
if?nargout?==?0?%?there?are?no?output?variables?draw?a?plot
????subplot(211)
????semilogx(w?20*log10(gain))
????grid?on
????title(‘Bode?diagram‘)
????xlabel(‘frequency?/?rad?s^{-1}‘)
????ylabel(‘gain?/?dB‘)
????subplot(212)
????semilogx(w?phase)
????grid?on
????ylabel(‘phase?/??)
else
????varargout{1}?=?gain;?%?absolute?value?(NOT?dB)
????if?nargout?>?1?varargout{2}?=?phase;?end?%?degrees
????if?nargout?>?2?varargout{3}?=?w;?end?%?rad/s
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2584??2005-08-17?12:46??ninteger\bodeFr.m
?????文件???????2658??2005-08-17?18:01??ninteger\contents.m
?????文件???????1779??2005-08-17?11:36??ninteger\crone1.m
?????文件???????7442??2005-07-04?11:48??ninteger\crone2.m
?????文件???????8274??2005-07-07?13:05??ninteger\crone2z.m
?????文件??????14716??2004-02-16?18:34??ninteger\crone3.m
?????文件???????1416??2005-07-14?12:13??ninteger\freqrespFr.m
?????文件???????1363??2004-01-19?21:58??ninteger\hartley.m
?????文件???????3387??2005-07-12?13:38??ninteger\lawro.m
?????文件???????3431??2005-07-28?17:08??ninteger\levy.m
?????文件????????762??2003-07-30?20:48??ninteger\matsudaCFE.m
?????文件???????1927??2005-06-29?15:48??ninteger\newton.m
?????文件???????2406??2005-07-14?13:12??ninteger\nicholsFr.m
?????文件??????14751??2005-06-27?18:45??ninteger\nid.m
?????文件??????19910??2005-08-01?18:27??ninteger\nintblocks.mdl
?????文件???????2681??2005-06-27?11:02??ninteger\nipid.m
?????文件???????5599??2005-08-23?16:53??ninteger\normh2Fr.m
?????文件???????1030??2005-07-15?11:15??ninteger\normhinfFr.m
?????文件???????2442??2005-07-14?13:12??ninteger\nyquistFr.m
?????文件???????4560??2004-12-03?14:27??ninteger\sanko.m
?????文件???????2247??2005-08-23?17:49??ninteger\sigmaFr.m
?????文件???????3632??2004-08-10?12:20??ninteger\vinagre.m
?????文件????????977??2002-07-18?13:56??ninteger\cfractions\contfrac.m
?????文件???????1345??2004-08-24?11:23??ninteger\cfractions\contfraceval.m
?????文件????????872??2003-08-04?09:44??ninteger\cfractions\contfracf.m
?????文件???????1106??2002-07-24?18:20??ninteger\cfractions\contfracfeval.m
?????文件??????51512??2003-09-22?12:43??ninteger\gui\crone2Gui.fig
?????文件??????29634??2004-07-27?14:03??ninteger\gui\crone2Gui.m
?????文件??????29376??2003-09-22?23:33??ninteger\gui\crone3Gui1.fig
?????文件??????13312??2003-09-22?23:54??ninteger\gui\crone3Gui1.m
............此處省略21個文件信息
評論
共有 條評論