Question: Create algebraic function using a numeric dsolve solution

Hello,

for my mechanical engineering studies we have to optimize an engine during a workshop. Therefore we have to use a numerical dsolve to solve the equation of motion. I have to get the maximum bearing reaction for a constant rpm. In order to get this I can't think of anything else but use the dsolve solution and use it in maximize.

 

ysk_2 := t -> -rc*cos(phi(t))-lp*cos(alpha(t))-lkb-y(t);
ysp_2 := t -> -rc*cos(phi(t))-lp2*cos(alpha(t))-y(t);
ysw_2 :=t-> rsw*cos(phi(t))-y(t);
alpha:=t-> arcsin(rc/lp*sin(phi(t)));

F_F:=t->c*y(t);
F_D:=t->dämpf*diff(y(t),t);
T_Motor:=t->diff(y(t),t,t)*m_Motor;
phi:=t->omega*t*Pi/30;
Dy_2:=t-> mw*(diff(ysw_2(t), t, t))+mp*(diff(ysp_2(t), t, t))+mk*(diff(ysk_2(t), t, t));
Summe_FD:=Dy_2(t)-F_F(t)-F_D(t)-T_Motor(t)=0;

ParamSubs := [
omega=5,
mk = 0.30483,
mp=0.18459,
mw=1.3303,
Jps = 0.0056687,
Jsw=0.0087308,
lp = 0.14,
lp1=0.072771,
lp2=0.067229,
rc=0.021,
rsw=0.00050707,
Mlast=0,
d=5.4*10^(-3),
pnull=10^5,
u=0.074,
Ak=(0.03)^2*Pi,
c=1.32*10^5,
m_Motor=13.57028,
dämpf=180
]:

ABn := y(0) = 0, D(y)(0) = 0;

dsolve_options :=   range = 0..30,
                    relerr = 1e-6,
                    optimize = true,
                    maxfun = 0:

omega:=3600;
Loes_Auslenkung_3600 := dsolve([subs(ParamSubs,Summe_FD), ABn], numeric, y(t), dsolve_options);

plots[odeplot](Loes_Auslenkung_3600,[t,y(t)],numpoints = 1000, color = blue,labels = ["t [s]","Auslenkung [m]"]);

plot of the numeric dsolve

F_fest:=maximize(subs(ParamSubs,Dy(t)),t=15..30);

F_dämpf:=maximize(subs(ParamSubs,Dy_2(t)-F_F(t)-F_D(t)-T_Motor(t)),t=15..30);

1-F_dämpf/F_fest;

 

The last three lines bear my problem: I need to use a algebraic function for y(t) but I don't know how to get it from a numeric dsolve. The difference between the two forces at the end is a solid bearing vs a spring/cushion system. The spring/cushion system allows a vertical movement y(t) restricted by the spring force (F_F(t)) und the cushion force (F_D(t)). Because of the extra vertical movement the inert forces change and the inert force of the whole engine (T_Motor(t)) is added.

How can I solve this problem?

PS: Please excuse any bad english and unclear formulations but this is my first post here and english isn't my first language.

Please Wait...