필터 지우기
필터 지우기

Convert z to e^(-sT) in transfer function

조회 수: 59 (최근 30일)
Malte Eggers
Malte Eggers 2023년 11월 9일
편집: Les Beckham 2023년 11월 9일
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

답변 (2개)

Les Beckham
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.

Harald
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
f = 
f2 = subs(f, z, exp(-s*T))
f2 = 
Be sure to use Live Editor to see nicely formatted formulas. :)
Best wishes,
Harald
  댓글 수: 2
Malte Eggers
Malte Eggers 2023년 11월 9일
Hi Harald,
Thanks for your reply.
I'm starting off with a state space system actually. Ideally I'd be converting that, but I initially tried converting a transfer function as that seemed more straightforward. I do I have a MISO system that I could split up into several transfer functions if need be.
The issue with your suggestion is that it requires a symbolic expression to start off whereas I would be having a state space system (or a transfer function) as a result of previous steps. I'd have to convert that to a symbolic expression, do the substitution and then convert back to a transfer function, which would have me face some of the same issues and some new ones.
Cheers,
Malte
Harald
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 CenterFile Exchange에서 Conversion Between Symbolic and Numeric에 대해 자세히 알아보기

제품


릴리스

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by