How does freqresp work with systems with internal delays?

2 visualizzazioni (ultimi 30 giorni)
With non-delayed systems, freqresp relies on an Hessenberg form of matrix A to accelerate the inverse operation, as described in the freqresp documentation. When systems include internal delays, as described for instance in the setdelaymodel documentation, more operations are required, and the inversion concerns a matrix that involves itself matrix inversions. Could you please provide an explanation on how freqresp deals with systems with internal delays, and tell whether and where Hessenberg forms are used? Thank you.

Risposta accettata

Paul
Paul il 21 Dic 2022
Hi Philippe,
As best I can tell, the functional process is as follows. Referring to diagram under the "Description" of setDelayModel ...
1. Compute the frequency response of H in the usual way with H represented as an ordinary ss model. Here, the conversion to Hessenberg form would be used as normal. Call this result H(jw)
2. Compute the frequency response of the diagonal block of delays. Call this result D(jw).
3. Close the feedback loop of H(jw) and D(jw) in the usual way for all points in the frequency vector.
Unfortunately, steps 2 and 3 are hidden in mex file with no help or documenation, so the details of the implementation are unknown.
Example:
sys = feedback(tf(1,[1 1]),tf(1,1,'InputDelay',0.1)); % system with internal delay
[sysresp,w] = freqresp(sys); % its frequency response
% "by hand" computations
sysd = getDelayModel(sys);
H = frd(freqresp(ss(sysd.A,sysd.B,sysd.C,sysd.D),w),w);
D = frd(exp(-1j*0.1*w),w);
SYSresp = feedback(H,D,2,2,1);
SYSresp = SYSresp(1,1);
subplot(211)
semilogx(w,db(abs(squeeze(sysresp))),w,db(abs(squeeze(SYSresp.ResponseData))),'o')
subplot(212);
semilogx(w,180/pi*(angle(squeeze(sysresp))),w,180/pi*(angle(squeeze(SYSresp.ResponseData))),'o')
  1 Commento
Philippe De Rua
Philippe De Rua il 22 Dic 2022
Thank you Paul, this is insightful and makes perfect sense. Thank you also for the example, very clear.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su MATLAB in Help Center e File Exchange

Prodotti


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by