How do I implement this in discrete form

8 ビュー (過去 30 日間)
Garba Elhassan
Garba Elhassan 2022 年 1 月 16 日
回答済み: Paul 2022 年 1 月 18 日
Iam designing a deadbeat controller for a plant with a delay, I designed the controller but the controller has more zeros than the poles, I came across one post which explained that it can be broken in to partial fraction. In the example he uses LTI, transfer function blocks with derivative blocks to inplement such system on Simulink. I tested the Trasnfer function given in s-domain, it works very well. But when I tried using thesame setup in Z-domain, it doesnot work.
your answers will be highly apreciated .

回答 (1 件)

Paul 2022 年 1 月 18 日
If the transfer fucntion of the controller, C(z), is improper (more zeros than poles), then its partial fraction expansion will have terms in z, z^2 ... depending on the difference between the order of the numerator and denominator. These terms indicate that the ouput of C(z) at the current time depends on values of the input at future times, which might make sense mathematically but can't really be implemented physically or in simulation. A few options are:
Add some poles, typically at high frequency, make C(z) a proper transfer function yet still keep the frequency response of C(z) as close as possible to what you want it to be over frequencies of interest,
Combine C(z) with some other transfer function in series in the system such that the product is at least proper. For example, if the order of the numerator of C(z) is one more than the order of the denominator, the combining C(z) with a transfer function, say F(z), in series that has a denominator order at least one higher than the order of the numerator will make the product C(z)*F(z) at least proper, which can then be implemented in a single block.




Community Treasure Hunt

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

Start Hunting!

Translated by