I am trying to first solve for Tau first, and then plug the known value back in and solve for y(t) @ 1.5 seconds.
it is given that @ y(1.2)=80.
clear;clc;
syms T %Tau
syms yt
t=1.2;
y0=0;
KA=100; %steady response
U_t=(y0-KA)*exp(-t/T); %transient response
y_t=80; %given that y(t), if y(1.2)=80
eq3_5a=y_t==KA+U_t
Tau=vpasolve(eq3_5a,T)
subs(U_t,T,Tau)
eq3_5b=yt==KA+U_t
solve(eq3_5b,yt)

 Accepted Answer

clear;clc;
syms T yt
t=1.2;
y0=0;
KA=100; %steady response
U_t=(y0-KA)*exp(-t/T) %transient response
U_t = 
y_t=80; %given that y(t), if y(1.2)=80
eq3_5a=y_t==KA+U_t
eq3_5a = 
Tau=vpasolve(eq3_5a,T)
Tau = 
0.74560192147153417284863926581669
subs(U_t,T,Tau)
ans = 
eq3_5b=yt==KA+U_t
eq3_5b = 
Yt = solve(eq3_5b,yt)
Yt = 
vpa(subs(Yt,T,1.5),4)
ans = 
55.07

5 Comments

Close, but I need to sub T=0.7456 %Tau, and t =1.5 %time, then solve for Yt.
clear;clc;
syms T yt
t=1.5; % change here
y0=0;
KA=100; %steady response
U_t=(y0-KA)*exp(-t/T) %transient response
U_t = 
y_t=80; %given that y(t), if y(1.2)=80
eq3_5a=y_t==KA+U_t
eq3_5a = 
Tau=vpasolve(eq3_5a,T)
Tau = 
0.93200240183941771606079908227086
subs(U_t,T,Tau)
ans = 
eq3_5b=yt==KA+U_t
eq3_5b = 
Yt = solve(eq3_5b,yt)
Yt = 
vpa(subs(Yt,T,0.7456),4)
ans = 
86.63
But now your Tau value is 0.93200xxxxx, I want to solve for Tau first, then plug it back into the equation and solve for y_t, when t=1.5.
I was able to do it by basically just clearing everything and restarting all over in the second half.
Is there no way to subs() 2 variables?
If in the first solution you gave me, if we could vpa(subs(Yt,T,Tau),subs(t,1.2,1.5)) that would be perfect, but it won't let me.
Maybe I am just not setting up my initial conditions correctly.
clear;clc;
syms T yt t
% t=1.2;
y0=0;
KA=100; %steady response
U_t= (y0-KA)*exp(-t/T) %transient response
U_t = 
y_t=80; %given that y(t), if y(1.2)=80
eq3_5a=y_t==KA+U_t;
Tau=vpasolve(subs(eq3_5a,t,1.2),T)
Tau = 
0.74560192147153417284863926581669
subs(U_t,T,Tau);
eq3_5b=yt==KA+U_t
eq3_5b = 
Yt = solve(eq3_5b,yt);
vpa(subs(Yt,[T t],[Tau 1.5]),4)
ans = 
86.63
Ok, It is possible to Subs 2 variables like above
Sweet. Thanks! I tried to do something similar using {} but it didn't work. I see i was using the wrong characters.

Sign in to comment.

More Answers (0)

Categories

Products

Asked:

on 18 Feb 2022

Commented:

on 25 Feb 2022

Community Treasure Hunt

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

Start Hunting!