Convert z to e^(-sT) in transfer function
58 次查看(过去 30 天)
显示 更早的评论
I know I can simply write
exp(-s*T)
But I want to convert an entire transfer function from the z domain to the s domain by simply replacing z with said term. I've tried extracting denominator and numerator coefficients and multiplying each with an appropriate exponential, but any way I try to combine them to a single transfer function would throw an error. A loop would probably do the trick, but there must be a better way.
Ideally, it would work for MIMO systems as well
0 个评论
回答(2 个)
Les Beckham
2023-11-9
编辑:Les Beckham
2023-11-9
If you have the Control System Toolbox you can use the d2c function to convert from the z domain to the s domain.
Note that this should work for your existing state space model without first converting to transfer functions.
0 个评论
Harald
2023-11-9
Hi Malte,
you could use Symbolic Math Toolbox to accomplish this:
syms z s T
f = (z-1)/(z^2 + 2*z + 3) % an example
f2 = subs(f, z, exp(-s*T))
Be sure to use Live Editor to see nicely formatted formulas. :)
Best wishes,
Harald
2 个评论
Harald
2023-11-9
Hi Malte,
in general, please consider including some code example as this may be clearer and easier to follow.
While it's always possible that there is an easier way to do this, you could convert the transfer function to a symbolic expression as shown here, perform the substitution, and transform back if needed. If the main concern is the code starting to look ugly, this could be moved into a function.
Best wishes,
Harald
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Symbolic Math Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!