The numerator returned from ord2 function is not directly compatible with tf2zpk function.
显示 更早的评论
Background
Let's say there's a design requirement to build an overdamped closed loop system, such that second order LTI LPF ZIC prototype transfer function is choosen with omega_n = 1 rad/s and zeta = 2.
[num,den] = ord2(1,2)
sys = tf(num,den)
Then the output on the command window will be
num =
1
den =
1 4 1
sys =
Transfer function:
1
-------------
s^2 + 4 s + 1
Problem
This is a trouble if i want to convert it directly to zpk model.
[num,den] = ord2(1,2)
[z,p,k] = tf2zpk(num,den)
sys = zpk(z,p,k)
The output on the command window will be
num =
1
den =
1 4 1
z =
0
0
p =
-3.7321
-0.2679
k = 1
sys =
Transfer function:
s^2
-------------------
(s+3.732) (s+0.2679)
This is clearly different as we now have zeros in the transfer function.
Proposed Solution
The num returned by ord2 should be [0 0 1] instead of just 1.
I guess the problem was overlooked because they came from different toolboxes, ord2 came from Control System Toolbox while tf2zpk came from Signal Processing Toolbox.
And also the prototype given by ord2 is only LPF, there are other prototypes such as HPF, APF (all-pass filter), BPF, BSF.
1 个评论
James Richard
2022-7-31
编辑:James Richard
2022-7-31
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Tuning Goals 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!