Convert a continuous zero-pole block into a discrete zero-pole in Simulink

8 Ansichten (letzte 30 Tage)
Hi everybody,
I'm trying to convert a continuous zero-pole block into a discrete one in Simulink. More in detail, I have an experimental FRF, I've obtained the residuals and the poles using the 'residual' matlab function and then I've obtained the zeros, poles and gain using 'zpk'.
However the poles and the zeros that I have only works for building a continuous transfer function in Simulink (using zero-pole block, which works in 's' domain), but instead I need the definition in discrete time (discrete zero-pole block, so in 'z' domain). The problem is that if I use my zeros and my poles in the discrete zero-pole block definition and I give for example a white noise in input, the response diverges.
However, I'm not able to directly obtain zeros and poles of my transfer function in 'z' domain, so I was thinking about switching from 's' to 'z' domain in Simulink.
Does anyone know how can I convert the continuous time zero-pole block into a discrete zero-pole block? Is there something already implemented in Simulink?
Thank you in advance,
Nicolò
  2 Kommentare
Mathieu NOE
Mathieu NOE am 6 Jan. 2022
hello
you can convert any s model into a z model in matlab by using the function c2dm (Control Toolbox)
help c2dm
c2dm Conversion of continuous LTI systems to discrete-time.
[Ad,Bd,Cd,Dd] = c2dm(A,B,C,D,Ts,'method') converts the continuous-
time state-space system (A,B,C,D) to discrete time using 'method':
'zoh' Convert to discrete time assuming a zero order
hold on the inputs.
'foh' Convert to discrete time assuming a first order
hold on the inputs.
'tustin' Convert to discrete time using the bilinear
(Tustin) approximation to the derivative.
'prewarp' Convert to discrete time using the bilinear
(Tustin) approximation with frequency prewarping.
Specify the critical frequency with an additional
argument, i.e. c2dm(A,B,C,D,Ts,'prewarp',Wc)
'matched' Convert the SISO system to discrete time using the
matched pole-zero method.
[NUMd,DENd] = c2dm(NUM,DEN,Ts,'method') converts the continuous-
time polynomial transfer function G(s) = NUM(s)/DEN(s) to discrete
time, G(z) = NUMd(z)/DENd(z), using 'method'.
See also: c2d, and d2cm.

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by