Global Index (short | long) | Local contents | Local Index (short | long)
G=trfcont(th,nnu,w)
TRFCONT Computes the continuous time transfer function of a model. A recommended newer variant to use is TH2FF(THD2THC(TH)) G = trfcont(TH) TH: A matrix defining a model, as described in HELP THETA G is returned as the transfer function of a continuous time counter- part of the model TH. This functions is of the standard frequency function format (see HELP FREQFUNC). Note that no automatic compu- tation of the noise spectrum is offered. If the model TH has several inputs, G will be returned as the transfer functions of selected inputs # j1 j2 .. jk by G = trfcont(TH,[j1 j2 ... jk]) [default is all inputs] The functions are computed at 128 logarithmically spaced frequency-values going about a decade above the Nyquist frequency. The functions can be computed at arbitrary frequencies w (a row vector, generated e.g. by LOGSPACE) by G = trfcont(TH,ku,w). The transfer function can be plotted by BODEPLOT. bodeplot(trfcont(TH)) is a possible construction. See also TRF and TRFSD.
This function calls | |
---|---|
function G=trfcont(th,nnu,w) % L. Ljung 7-7-87 % Copyright (c) 1986-98 by The MathWorks, Inc. % $Revision: 2.3 $ $Date: 1997/12/02 03:42:32 $ T=th(1,2); nu=th(1,3); % *** Set up default values *** wdef=logspace(log10(pi/T/100),log10(10*pi/T),128); if nargin<3, w=wdef;,end if nargin<2 , nnu=1:th(1,3);end if length(w)==1, if w<0, w=wdef;end,end if length(nnu)==1, if nnu<0, nnu=1:th(1,3);end,end % *** Transform to continuous time (remove delays)*** [bc,fc]=contin(th,nnu,1); nk=th(1,2*nu+7:3*nu+6); % The delays [nrb,ncb]=size(bc);[nrf,ncf]=size(fc); nm=max(ncb,ncf); i=sqrt(-1); % *** Compute the transfer function(s) GC=bc/fc *** nrc=length(w)+1; sc=1; for k=nnu G(1,sc:sc+2)=[100+k,k,20+k]; G(2:nrc,sc)=w'; GC=polyval(bc(k,:),i*w)./polyval(fc(k,:),i*w); G(2:nrc,sc+1)=abs(GC'); G(2:nrc,sc+2)=(phase(GC)'-w'*T*max(0,(nk(k)-1)))*180/pi; % Add the delays sc=sc+3; end