[Z transform] problem with MATLAB

Hi experts, I have a question about Z-transform on MALTAB. When I convert a Laplace function F(s)=1/s to Z function, MATLAB says it is T/(z-1), but the Laplace-Z conversion table show that is z/(z-1). I know MATLAB cannot wrong because I drew a step graph of all these three functions. But all the books I found about Laplace and Z-transform also say the conversion table is right.
It's confusing me and I need an answer. Could anyone give me an explain for that? Thank in advanced.

 採用された回答

Star Strider
Star Strider 2017 年 9 月 11 日

3 投票

The Symbolic Math Toolbox doesn’t know you’re trying to convert it from the Laplace domain to the ‘z’ domain. You have to play by its rules.
This works:
syms s t z
T1(s) = 1/s
T2(t) = ilaplace(T1)
T3(z) = ztrans(T2)
T1(s) =
1/s
T2(t) =
1
T3(z) =
z/(z - 1)

5 件のコメント

Franklin Ngo
Franklin Ngo 2017 年 9 月 11 日
Thank you for your answer. SOrry for my unclear question. I mean I use the function "c2d", and the result is totally different. As you can see:
>> T_s=tf(1,[1 0])
T_s =
1
-
s
Continuous-time transfer function.
>> c2d(T_s,0.01)
ans =
0.01
-----
z - 1
Sample time: 0.01 seconds Discrete-time transfer function.
Could you explain that for me, please.
Star Strider
Star Strider 2017 年 9 月 11 日
As close as I can get is to use the Tustin approximation for ‘s’, and the Symbolic Math Toolbox for the derivation:
syms s t Ts z
T1(s) = 1/s
Ts = sym(0.01);
T4(z) = 1/((2/Ts)*(z - 1)/(z + 1)); % Substitute The Tustin Approximation For ‘s’
T4 = vpa(simplify(T4, 'Steps',10), 3);
pretty(T4)
0.01
------- + 0.005
z - 1.0
You may have to ask MathWorks about the exact implementation of the c2d function. It is not obvious from the documentation.
Franklin Ngo
Franklin Ngo 2017 年 9 月 12 日
OK. Thank you so much.
Star Strider
Star Strider 2017 年 9 月 12 日
As always, my pleasure.
If my Answer hslped you solve your problem, please Accept it!
Jeovane Sousa
Jeovane Sousa 2021 年 4 月 21 日
編集済み: Jeovane Sousa 2021 年 4 月 21 日
Matlab uses the following method to calculate c2d by ZOH
The ZOH block generates the continuous-time input signal u(t) by holding each sample value u(k) constant over one sample period:
The signal u(t) is the input to the continuous system H(s). The output y[k] results from sampling y(t) every Ts seconds.
Resolving to :
each term will look something like that
thus,
And
Or remember the z-transform of a signal tha goes through a sample and holder, tha is:
This is what I think how c2d was implemented. No garantees it is correct or valid.
I hope I have made the correct considerations. Feel free to complement or point any mistake. Sorry about the poor English, it is not my primary language.

サインインしてコメントする。

その他の回答 (0 件)

タグ

質問済み:

2017 年 9 月 11 日

編集済み:

2021 年 4 月 21 日

Community Treasure Hunt

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

Start Hunting!

Translated by