Inverse Laplace Transform for a complex transfer function

For my signals project I was able to represent a system using a transfer function consisting of 50 zeros and 60 poles. However, when I tried to get the time domain function of this laplace domain impulse response using ilaplace() with the numerators and denominators as inputs, the code has been running for hours with no end.
I understand that due to the complexity of the transfer function matlab may not be able to find an exact answer. Is there a way to estimate or possible improve the identification of this time domain equation? Thank you

10 Commenti

Hi Darren,
do you mean that F(s) is entirely described by a ratio of polynomials and that you have the positions of all the zeros and poles?
Hi David,
Yes, all the poles and zeros have been found and F(s) is a ratio of polynomials. Is there a better way to find the inverse laplace?
Thank you for your time.
Hi Darren,
what can you say about the locations of the poles in the s plane (all negative? all distinct? minimum spacing, etc)
Transfer function of system
% tf6 =
%
% From input "u1" to output "y1":
%
% -6.226e14 (+/- 1.801e23) s^50 - 1.406e16 (+/- 1.397e25) s^49 + 8.548e17 (+/- 1.196e27) s^48
%
% + 4.345e19 (+/- 7.827e28) s^47 + 9.782e20 (+/- 3.5e30) s^46 + 2.544e22 (
%
% +/- 1.269e32) s^45 + 5.779e23 (+/- 3.364e33) s^44 + 3.644e24 (+/- 6.743e34) s^43
%
% - 1.348e25 (+/- 1.047e36) s^42 - 2.659e26 (+/- 1.27e37) s^41 - 8.311e27 (
%
% +/- 1.188e38) s^40 - 6.417e28 (+/- 8.344e38) s^39 - 2.217e29 (+/- 4.219e39) s^38
%
% + 6.008e29 (+/- 1.462e40) s^37 - 6.462e29 (+/- 3.238e40) s^36 - 5.825e30 (
%
% +/- 4.437e40) s^35 + 1.03e29 (+/- 3.587e40) s^34 - 3.185e29 (+/- 1.619e40) s^33
%
% - 1.096e29 (+/- 5.946e39) s^32 + 9.797e27 (+/- 1.52e39) s^31 - 1.609e27 (
%
% +/- 3.429e38) s^30 + 1.159e25 (+/- 1.074e38) s^29 + 1.467e24 (+/- 2.715e37) s^28
%
% - 3.907e22 (+/- 4.977e36) s^27 - 1.293e21 (+/- 6.965e35) s^26 - 7.722e19 (
%
% +/- 7.773e34) s^25 + 2.404e18 (+/- 7.1e33) s^24 - 9.765e16 (+/- 5.451e32) s^23
%
% - 7.257e14 (+/- 3.5e31) s^22 - 4.564e13 (+/- 1.963e30) s^21 - 1.388e13 (
%
% +/- 8.909e28) s^20 - 2.323e11 (+/- 4.094e27) s^19 + 1.235e10 (+/- 1.583e26) s^18
%
% - 1.486e08 (+/- 7.64e24) s^17 + 1.401e07 (+/- 5.14e23) s^16 + 5.671e04 (
%
% +/- 1.497e22) s^15 + 2.435e04 (+/- 1.176e21) s^14 - 40.67 (+/- 2.494e19) s^13
%
% + 20.68 (+/- 1.543e18) s^12 + 0.6052 (+/- 3.44e16) s^11 - 0.009592 (+/- 1.484e15) s^10
%
% + 0.0003821 (+/- 4.398e13) s^9 + 4.003e-06 (+/- 1.474e12) s^8 - 6.035e-08 (
%
% +/- 3.966e10) s^7 + 2.338e-08 (+/- 9.562e08) s^6 - 5.411e-10 (+/- 1.838e07) s^5
%
% - 1.838e-11 (+/- 2.944e05) s^4 + 1.819e-13 (+/- 3599) s^3 + 2.949e-15 (+/
%
% - 33.09) s^2 + 1.31e-16 (+/- 0.1979) s - 2.658e-19 (+/- 0.0006273)
%
% -----------------------------------------------------------------------------------------------
%
% s^60 + 1.899e06 (+/- 1.357e14) s^59 + 1.639e09 (+/- 4.228e15) s^58 + 3.51e11 (+/
%
% - 5.578e17) s^57 + 4.653e13 (+/- 1.798e19) s^56 + 4.57e15 (+/- 6.798e20) s^55
%
% + 3.538e17 (+/- 2.246e22) s^54 + 2.217e19 (+/- 6.035e23) s^53 + 1.148e21 (
%
% +/- 3.098e25) s^52 + 4.983e22 (+/- 5.6e26) s^51 + 1.824e24 (+/- 2.159e28) s^50
%
% + 5.657e25 (+/- 2.839e29) s^49 + 1.487e27 (+/- 2.863e31) s^48 + 3.299e28 (
%
% +/- 9.496e32) s^47 + 6.138e29 (+/- 1.494e34) s^46 + 9.528e30 (+/- 5.066e35) s^45
%
% + 1.228e32 (+/- 6.374e36) s^44 + 1.298e33 (+/- 6.645e37) s^43 + 1.105e34 (
%
% +/- 3.778e38) s^42 + 7.44e34 (+/- 1.666e39) s^41 + 3.847e35 (+/- 4.62e39) s^40
%
% + 1.472e36 (+/- 1.406e40) s^39 + 3.955e36 (+/- 9.029e40) s^38 + 7.153e36 (
%
% +/- 2.322e41) s^37 + 8.251e36 (+/- 2.837e41) s^36 + 5.806e36 (+/- 3.443e41) s^35
%
% + 2.847e36 (+/- 4.663e40) s^34 + 1.043e36 (+/- 1.239e40) s^33 + 2.946e35 (
%
% +/- 6.114e39) s^32 + 6.593e34 (+/- 9.715e38) s^31 + 1.199e34 (+/- 3.931e38) s^30
%
% + 1.81e33 (+/- 4.698e37) s^29 + 2.308e32 (+/- 1.533e37) s^28 + 2.523e31 (
%
% +/- 1.646e36) s^27 + 2.395e30 (+/- 2.413e35) s^26 + 1.994e29 (+/- 8.35e34) s^25
%
% + 1.469e28 (+/- 1.041e34) s^24 + 9.641e26 (+/- 9.937e32) s^23 + 5.671e25 (
%
% +/- 7.081e31) s^22 + 3.003e24 (+/- 5.501e30) s^21 + 1.437e23 (+/- 1.657e29) s^20
%
% + 6.23e21 (+/- 8.191e27) s^19 + 2.451e20 (+/- 3.165e26) s^18 + 8.757e18 (
%
% +/- 2.724e25) s^17 + 2.843e17 (+/- 1.716e24) s^16 + 8.377e15 (+/- 2.829e22) s^15
%
% + 2.238e14 (+/- 1.025e21) s^14 + 5.405e12 (+/- 6.42e19) s^13 + 1.176e11 (
%
% +/- 3.507e18) s^12 + 2.296e09 (+/- 1.11e17) s^11 + 3.996e07 (+/- 3.805e15) s^10
%
% + 6.154e05 (+/- 2.567e14) s^9 + 8299 (+/- 1.338e13) s^8 + 96.76 (+/- 2.452e11) s^7
%
% + 0.9582 (+/- 1.675e10) s^6 + 0.007867 (+/- 6.701e08) s^5 + 5.172e-05 (+/
%
% - 1.53e07) s^4 + 2.58e-07 (+/- 1.609e06) s^3 + 8.936e-10 (+/- 3.073e04) s^2
%
% + 1.807e-12 (+/- 1041) s + 1.364e-15 (+/- 47.24)
Maybe a ratio of polynomials can be decomposed into partial fractions.
Hi Chuguang,
How would I be able to decompose the above transfer function into partial fractions?
Thank you for your time.
Please post the coefficients in a form we can use in code.
Hi Darren,
There are not positions of poles and zeros here, just two polynomials with coefficients. Those coefficients all have values like -6.226e14 (+/- 1.801e23), meaning that they are of no use at all. You might want to consider how realistic it is to have a transfer function with 50 poles and 60 zeros. If you did know, accurately, the positions of all those poles and zeros then it's certainly possible to find the answer numericaly in short order, but there could well be big problems with numerical accuracy in such a calculation.
-6.226e14 (+/- 1.801e23) is pretty much a nonsense number, with inprecision 1 billion times larger than the number itself.
Are these numbers coming from the output of cftool (Curve Fitting Toolbox) ?
I would be in a better state to help you if the coefficients mentioned are in a MATLAB executable format.

Accedi per commentare.

Risposte (1)

Hello I have found the solution. The 50 poles 60 zeros method was wrong and I ended up using 2 zeroes and three poles. I then did an inverse laplace and found the original function. Than you everyone for you help.

Richiesto:

il 10 Dic 2019

Risposto:

il 30 Dic 2019

Community Treasure Hunt

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

Start Hunting!

Translated by