Problem with getting laplace transform results of triangularPulse function

1 view (last 30 days)
I'm trying to transform t_pulse(t) to s domain. The code below is my code for transforming t_pulse(t) to Input_deform(s) and combining RC effect of t_pulse(t) through Vload(s). After getting Vload(s), I perform ilaplace of Vload(s) and get vt as a function of t. The code works but I cannot get valid result of Input_deform(s). If I fplot Input_deform, I get the error message of "Unable to convert expression into double array." As a result, I also cannot get result of Vload(s) and vt(t). Can someone please show me the way to get valid laplace transform result?
syms t s Input_deform(s) t_pulse(t) vt(t)
a1=1;
a2=14.45;
C=490.7*10^-12;
Theta=9.15*10^-10;
Rload=1.0195e+08;
t_pulse(t)=log(1+11*triangularPulse(a1,(a1+a2)/2,a2,t));
Input_deform(s)=laplace(t_pulse);
Vload(s)=(-s*Rload*Theta*Input_deform(s))/(1+s*C*Rload);
vt=-ilaplace(Vload);
figure();fplot(t_pulse); % works
figure();fplot(Input_deform) % Error report: Unable to convert expression into double array.

Answers (2)

Kavya Vuriti
Kavya Vuriti on 23 Mar 2020
Hi,
From the below lines of code provided,
t_pulse(t)=log(1+11*triangularPulse(a1,(a1+a2)/2,a2,t));
Input_deform(s)=laplace(t_pulse);
it is clear that you are trying to compute Laplace transform of log(1+(constant * triangularPulse)). Computing this involves computation of Laplace of logarithm of Heaviside function which is not possible because logarithm of Heaviside function does not exist due to discontinuity of Heaviside function.
So,
Input_deform(s)=laplace(t_pulse);
the above line of code will be an unevaluated call as mentioned here. Therefore it is not possible to plot the desired Laplace transform.

Hojoon Kim
Hojoon Kim on 26 Mar 2020
Thank you for the precious information Ms Vuriti! It helped a lot.

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!