Problem with getting laplace transform results of triangularPulse function

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.

답변 (2개)

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 2020년 3월 26일
Thank you for the precious information Ms Vuriti! It helped a lot.

카테고리

도움말 센터File Exchange에서 Chassis Systems에 대해 자세히 알아보기

제품

릴리스

R2018b

질문:

2020년 2월 27일

답변:

2020년 3월 26일

Community Treasure Hunt

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

Start Hunting!

Translated by