Inverse Laplace contains a complex number

조회 수: 9 (최근 30일)
Karl Snow
Karl Snow 2018년 11월 17일
편집: David Goodmanson 2018년 12월 3일
I am using ilaplace to study circuits. Recently I drew a schematic the inverse Laplace of which (in the time domain) has a complex number. This is new to me. Is there a way to ensure that I don't get complex numbers with an inverse Laplace? One of the terms is:
0.0876468*exp(-255.018*t)*(cos(5101.72*t)*1.0i + sin(5101.72*t))
  댓글 수: 5
Karl Snow
Karl Snow 2018년 11월 27일
I am not enough of a mathematician, I suppose, to make any claims. I am an engineer. However, I do have some support for what I said. Refer to:https://www.reddit.com/r/ECE/comments/2rd5zr/imaginary_voltages/
In it "someone" said: "Complex signals only have physical significance in the freq domain. If you say that V=1j that presumes a sinusoid at some frequency and means that the voltage at that freq has a 90deg phase shift. However, This is only a convention/mathematical shorthand (albeit an incredibly useful and fundamental one) and the actual observed voltage is the Real part of this complex representation. Working in the time domain, imaginary/complex voltages has no physical significance. So no, there is no such thing as a directly observable imaginary voltage."
Perhaps another mathematician could weigh in.
Walter Roberson
Walter Roberson 2018년 11월 27일
Not having physically measurable significance is not at all the same as saying that the equations will not include the components .

댓글을 달려면 로그인하십시오.

채택된 답변

David Goodmanson
David Goodmanson 2018년 11월 28일
편집: David Goodmanson 2018년 11월 28일
Hi Karl
You show one of the terms, and I assume you have another one that is the complex conjugate that one so that the entire result is real. Here is a simple example of what is probably going on.
syms s a
F = 2*s/(s^2+a^2);
f = ilaplace(F)
f = 2*cos(a*t)
G = 1/(s+i*a) + 1/(s-i*a) % same as F, in partial fractions
g = ilaplace(G)
g = exp(-a*t*1i) + exp(a*t*1i)
( s^2 + a^2 ) has two complex roots, and ilaplace does not recombine the resulting complex expressions in G. However,
g1 = simplify(g)
g1 = 2*cos(a*t)
You can also try simplifying before doing ilaplace
G2 = simplify(G)
G2 = (2*s)/(a^2 + s^2) % same as F
g2 = ilaplace(G2)
g2 = 2*cos(a*t)
  댓글 수: 2
Karl Snow
Karl Snow 2018년 11월 29일
Thanks very much David. Actually, the expression I included in my first post was not only half of a complex conjugate but was not the correct solution. Eventually, I found it and I will include it here. I have been using simplify() in my scripts and I am a little unsure why it is not working for me since it did for you. However, this circuit is more complicated and has more terms. First, I had MATLAB solve the system of equations I wrote down from the schematic in the s-domain. This produced the following:
i1_s = (1.0e-12*s^3 + 5.6e-8*s^2 + 0.000255*s + 1.0)/(s*(3.0e-12*s^3 + 3.67e-7*s^2 + 0.00151*s + 2.0))
i2_s = (0.001*s*(1.0e-9*s + 0.000055))/(3.0e-12*s^3 + 3.67e-7*s^2 + 0.00151*s + 2.0)
i3_s = (5.0e-8*s)/(3.0e-12*s^3 + 3.67e-7*s^2 + 0.00151*s + 2.0)
These are currents in the s-domain. Then I used the following script to get the time domain expression for just the first current.
inverse=ilaplace(i1_s);
inverse =
0.187815*exp(-118120.0*t) - exp(t*(- 2106.71 - 1098.06i))*(0.177241 + 0.30653i) - exp(t*(- 2106.71 + 1098.06i))*(0.177241 - 0.30653i) + 0.5
numInverse = vpa(inverse);
numInverse =
0.187815*exp(-118120.0*t) - exp(t*(- 2106.71 - 1098.06i))*(0.177241 + 0.30653i) - exp(t*(- 2106.71 + 1098.06i))*(0.177241 - 0.30653i) + 0.5
simp = simplify(numInverse);
simp =
0.187815*exp(-118120.0*t) - exp(t*(- 2106.71
- 1098.06i))*(0.177241 + 0.30653i) - exp(t*(- 2106.71 + 1098.06i))*(0.177241 - 0.30653i) + 0.5
digits(6);
t_domain=vpa(simp)
t_domain =
0.187815*exp(-118120.0*t) - exp(t*(- 2106.71 - 1098.06i))*(0.177241 + 0.30653i) - exp(t*(- 2106.71 + 1098.06i))*(0.177241 - 0.30653i) + 0.5
So, the use of vpa and simplify didn't seem to accomplish anything for me. I also tried using simplify on the complex conjugates individually but it just gave me the same thing back. I manipulated the t_domain expression by hand to get:
i1_t = 0.187815*exp(-118120t) 2*b*exp(-ct)*sin(dt) - 2*a*exp(-ct)*cos(dt) + 0.5
a=0.177241
b=0.30653
c=2106.71
d=1098.06
Which is what I wanted to get all along with MATLAB. So, MATLAB is definitely a big help but not yet as much as I wish it to be. Thanks again for your assistance!
Karl
David Goodmanson
David Goodmanson 2018년 12월 3일
편집: David Goodmanson 2018년 12월 3일
Hi Karl,
you're welcome, although I didn't actually provide any value added. But I do want to comment on the idea that laplace transforms can be done in the real domain only.
While the person you quoted acknowledges complex variables are incredibly useful and fundamental, he/she says that it is only is only a convention/mathematical shorthand. That makes it sound like a matter of bookkeeping, which is highly misleading at best. To begin with, the standard way to derive an inverse laplace transform involves a path of integration in the complex plane. Even for the forward laplace transform, how do you derive the simple expression
Int e^(-st) cos(at) dt = s/(s^2+a^2) ?
It can be done in real variables with integration by parts and knowledge of the differential eqn for cos(at), but it is much, much easier and more direct to split the cos expression into (1/2) exp(iat) + (1/2) exp(-iat), do integrals and recombine. More complicated expressions are done in similar fashion.
For linear circuit theory you generally get the ratio of two polynomials in s. So you can do partial fractions, pair up compex conjugare roots and create a set of all-real expressions. That processis is of course correct, but it sweeps a lot of stuff under the rug.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Number Theory에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by