Error in exponential transfer function

6 views (last 30 days)
John
John on 6 Feb 2020
Edited: Walter Roberson on 7 Feb 2020
I'm having difficulty implementing certain transfer functions in non-state-space form:
Eg
1 - exp(-s)
or
exp(-s) + 1
Basically, there is a complication with a function e^-s that is NOT of the standard delay form TF*e^-s (<-- standard delay form of a transfer function TF).
Here is an example:
s = tf('s')
tf = exp(-s)
This returns a transfer function, as expected:
tf =
exp(-1*s) * (1)
Continuous-time transfer function.
But this one is unexpected:
tf = exp(-s) + 1
This returns state space:
tf =
D =
u1
y1 2
(values computed with all internal delays set to zero)
Internal delays (seconds): 1
Continuous-time state-space model.
Why does the addition or subtraction turn into state space?
It should be realizable, since exp() + 1 can be represented by a physical sum of these elements in a block diagram.
I'm unable to force this SS back to a transfer functions -- I'd like to place this into a loop with other transfer functions -- so I'm guessing this forcing into State Space is something internal to Matlab.

Answers (2)

John
John on 7 Feb 2020
Just a gentle bump, as this is still unresolved :)
  1 Comment
Walter Roberson
Walter Roberson on 7 Feb 2020
It should be realizable, since exp() + 1 can be represented by a physical sum of these elements in a block diagram
What does that have to do with whether you can create a transfer function using the numerator / denominator representation?
Suppose that I have data that has a nice exponential fit, such as 5*exp(-3*x). Now add 1 to the values and ask for an exponential fit of the result. You will not get a good fit, because the exponential fit process is only for data of the form A*exp(-B*x) with no constants added. We look at it and say "Duh just add one" but mathematically it is a very different situation. In the case without the constant y = a*exp(b*x) can undergo a simple log transform, log(y) = log(a) + b*x and then you just do a linear fitting. But if you try the same technique on a*exp(b*x)+c you have a mess and log of that cannot be represented in just linear terms.

Sign in to comment.


John
John on 7 Feb 2020
Interesting, thanks for the reply Walter.
Could you clarify? I'm missing something basic here -- so I'd like to understand better.
a) "Suppose that I have data that has a nice exponential fit, such as 5*exp(-3*x). Now add 1 to the values and ask for an exponential fit of the result."
Why does it need a nice exp fit? If a fit is needed (I don't understand that part yet), transfer functions are non-exp in general.
Eg results to Y(s) = 5*exp(-3*s) + 1 are generated by evaluating points, which doesn't require a fit -- just the ability to evaluate Y for any s. This can be done by hand; why does this form prevent a TF?
b) " In the case without the constant y = a*exp(b*x) can undergo a simple log transform, log(y) = log(a) + b*x and then you just do a linear fitting. "
I agree with this. I'm just not understanding why a fit is needed... Many things occur in L-domain, which doesn't require converting Y(s) = F(s) into y(t) = f(t).
But if needing to convert -- ie the system solved closed-form for y(t) = f(t) -- that yields:
Y(s) = 5*exp(-3*s) + 1 = 5*F(s) --> y' = 5*delta(t-3) + delta(t).
This seems like it can be evaluated without a fit.
  3 Comments
Walter Roberson
Walter Roberson on 7 Feb 2020
Remember you did not multiply by the delay, you added the delay. The function just isn't designed to represent the sum of any arbitrary number of Dirac delta functions in the time domain. The state space representation is designed for that purpose.
John
John on 7 Feb 2020
Thanks; this is getting more clear (I appreciate your responses).
"that does not mean that you can merge the ADD1 into the FUNCTION"
So it is physically possible to writem them as sums, and fine to actually add them, but a TF does not support that due to its format/implementation. Interesting.
I had assumed that most of what is algebraically fine/possible (again, as long as it's causal), could be supported with a TF.
"The state space representation is designed for that purpose."
How so? If you have a link, that's sufficient...

Sign in to comment.

Categories

Find more on Get Started with Control System Toolbox in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!