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!