Laplace transform of differential equations

조회 수: 6(최근 30일)
Antony Novrianto 2020년 12월 9일
답변: Raunak Gupta 2020년 12월 17일
% Program 4_1
clear
clc
%%Transformasi Laplace dari persamaan differensial
syms x(t) y(t) s X Y
dx=diff(x,t);
dy=diff(y,t);
ddy=diff(diff(y,t),t);
hkiri=ddy+4*dy-5*y;
hkanan=dx+x;
Hkiri=laplace(hkiri,t,s);
Hkanan=laplace(hkanan,t,s);
%substitusi kondisi awal
Hskiri=subs(Hkiri,{'laplace(y(t),t,s)','y(0)','D(y)(0)'},{Y,0,0});
Hskanan=subs(Hkanan,{'laplace(x(t),t,s)','x(0)'},{X,0});
Hskiri=collect(Hskiri,Y);
Hskanan=collect(Hskanan,X);
Hs=Hskanan/Hskiri;
Hs=subs(Hs,{X,Y},{1,1});
%%Respon y(t) dengan input step
%input=x(t)=u(t)
%X(s)=laplace(u(t))=1/s
%Y(s)=H(s)*X(s)
Ys=Hs*1/s;
y=ilaplace(Ys);
pretty(y)
%Konversi Syms ke Transfer Function
[n, d]=numden(Hs);
Hs=tf(sym2poly(n),sym2poly(d));
%Pole Zero Map
subplot(2,1,1)
pzmap(Hs)
subplot(2,1,2)
stepplot(Hs)
Error using sym>convertChar (line 1557)
Character vectors and strings in the first argument can only specify a variable or
number. To evaluate character vectors and strings representing symbolic expressions, use
'str2sym'.
Error in sym>tomupad (line 1273)
S = convertChar(x);
Error in sym (line 229)
S.s = tomupad(x);
Error in sym/subs>@(x)sym(x) (line 166)
X = cellfun(@(x)sym(x),X,'UniformOutput',false);
Error in sym/subs>normalize (line 166)
X = cellfun(@(x)sym(x),X,'UniformOutput',false);
Error in sym/subs>mupadsubs (line 157)
[X2,Y2,symX,symY] = normalize(X,Y); %#ok
Error in sym/subs (line 145)
G = mupadsubs(F,X,Y);
Error in P_4_1 (line 14)
Hskiri=subs(Hkiri,{'laplace(y(t),t,s)','y(0)','D(y)(0)'},{Y,0,0});

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

답변(1개)

Raunak Gupta 2020년 12월 17일
Hi,
Here laplace(y(t),t,s) , y(0) , subs(diff(y(t),t),t,0) , laplace(x(t),t,s) , x(0) are already defined symbolic variable in equations of the starting lines. So, mentioning them as a character vector will through the error as you got. You can directly use the variable names in subs function and it will work fine.
Below changes to the Line 14 and 15 will resolve the errors.
Hskiri=subs(Hkiri,{laplace(y(t),t,s),y(0),subs(diff(y(t), t), t, 0)},{Y,0,0});
Hskanan=subs(Hkanan,{laplace(x(t),t,s),x(0)},{X,0});

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

범주

Find more on Operations on Strings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by