2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 NDSolve не даёт Interpolating Function
Сообщение27.12.2019, 04:30 
Для полноты информации весь код вставил, но вопрос у меня только в самом конце кода
Пытаюсь получить численное решение с помощью NDSolve, но в ответ получаю то же самое токо цифры подставили вместо двух параметров в нулях... Пытался Clear[Phi1] не помогло... А мне надо еще графики построить по результатам интегрирования. Но все из-за NDSolve стопорнулось...
p.s. это задача на динамику ротора с кулисой, и уравнение лагранжа второго рода
Код:
In[1]:=
Param = {g -> 9.8, r1 -> 0.06, R1 -> 0.36, R3 -> 0.12, R4 -> 0.1, M0 -> -41, k -> 0.424, I1 -> 1.7, m2 -> 15, m3 -> 7.72, m4 -> 20, \[Mu]2 -> 6.466, \[Phi]10 -> 1.5, \[Omega]1z0 -> 24.698, \[Tau] -> 0.2544}

Out[1]=
{g -> 9.8, r1 -> 0.06, R1 -> 0.36, R3 -> 0.12, R4 -> 0.1, M0 -> -41, k -> 0.424, I1 -> 1.7, m2 -> 15, m3 -> 7.72, m4 -> 20, \[Mu]2 -> 6.466, \[Phi]10 -> 1.5, \[Omega]1z0 -> 24.698, \[Tau] -> 0.2544}

In[2]:=
Tfin = \[Tau] /. Param

Out[2]=
0.2544

In[3]:=
T[m_, vc_, Iz_, \[Omega]z_] := 1/2 m vc^2 + 1/2 Iz \[Omega]z^2

In[4]:=
T1 = T[m1, 0, I1, \[Omega]1z[t]]

Out[4]= 1/2 I1 \[Omega]1z[t]^2

In[5]:=
T2 = T[m2, v2y[t], 0, 0]

Out[5]= 1/2 m2 v2y[t]^2

In[6]:=
T3 = T[m3, 0, 1/2 m3 R3^2, \[Omega]3z[t]]

Out[6]= 1/4 m3 R3^2 \[Omega]3z[t]^2

In[7]:=
T4 = T[m4, v4y[t], 1/2 m4 R4^2 , \[Omega]4z[t]]

Out[7]= 1/2 m4 v4y[t]^2+1/4 m4 R4^2 \[Omega]4z[t]^2

In[8]:=
Ts[t_] := T1 + T2 + T3 + T4

In[9]:=
Ts[t]

Out[9]= 1/2 m2 v2y[t]^2+1/2 m4 v4y[t]^2+1/2 I1 \[Omega]1z[t]^2+1/4 m3 R3^2 \[Omega]3z[t]^2+1/4 m4 R4^2 \[Omega]4z[t]^2

In[10]:=
vAy[t_] := \[Omega]1z[t] r1 Cos[\[Phi]1[t]]

In[11]:=
vKy1[t_] := -\[Omega]1z[t] R1

In[12]:=
vKy2[t_] := \[Omega]3z[t] R3

In[13]:=
sub1 = Solve[vKy1[t] == vKy2[t], \[Omega]3z[t]] // Simplify

Out[13]= {{\[Omega]3z[t]->-((R1 \[Omega]1z[t])/R3)}}

In[14]:=
vCy[t_] := \[Omega]4z[t] R4

In[15]:=
sub2 = Solve[vAy[t] == vCy[t], \[Omega]4z[t]] // Simplify

Out[15]= {{\[Omega]4z[t]->(r1 Cos[\[Phi]1[t]] \[Omega]1z[t])/R4}}

In[16]:=
Ts1[t_] := Flatten[Ts[t] /. {v2y -> vAy} /. {v4y -> vCy} /. sub1 /. sub2 /. Param // Simplify][[1]]

In[17]:=
Ts1[t]

Out[17]= (1.10013 +0.081 Cos[\[Phi]1[t]]^2) \[Omega]1z[t]^2

In[18]:=

subF = {G1 -> {0, -m1 g, 0}, G2 -> {0, -m2 g, 0}, G3 -> {0, -m3 g, 0}, G4 -> {0, -m4 g, 0}, MD -> {0, 0, M0 - k \[Omega]3z[t]}, MN -> {0, 0, -\[Mu]2 \[Omega]4z[t]}}

Out[18]=
{G1 -> {0, -g m1, 0}, G2 -> {0, -g m2, 0}, G3 -> {0, -g m3, 0}, G4 -> {0, -g m4, 0}, MD -> {0, 0, M0 - k \[Omega]3z[t]}, MN -> {0, 0, -\[Mu]2 \[Omega]4z[t]}}

In[19]:=
subv = {vO[t] -> {0, 0, 0}, v2[t] -> {0, vAy[t], 0}, vO3[t] -> {0, 0, 0}, v4[t] -> {0, vAy[t], 0}, \[Omega]3[t] -> {0, 0, \[Omega]3z[t]}, \[Omega]4[t] -> {0, 0, \[Omega]4z[t]}}

Out[19]=
{vO[t] -> {0, 0, 0}, v2[t] -> {0, r1 Cos[\[Phi]1[t]] \[Omega]1z[t], 0}, vO3[t] -> {0, 0, 0}, v4[t] -> {0, r1 Cos[\[Phi]1[t]] \[Omega]1z[t], 0}, \[Omega]3[t] -> {0, 0, \[Omega]3z[t]}, \[Omega]4[t] -> {0, 0, \[Omega]4z[t]}}

In[20]:=
Q = ((G1 .vO[t] + G2.v2[t] + G3 .vO3[t] + G4.v4[t] + MD.\[Omega]3[t] + MN.\[Omega]4[t])/\[Omega]1z[t] /. subF /. subv /. sub1 /. sub2 /. Param // Simplify)[[1]]

Out[20]= {123. -20.58 Cos[\[Phi]1[t]]+(-3.816-2.32776 Cos[\[Phi]1[t]]^2) \[Omega]1z[t]}

In[21]:=
Lefteq = D[D[Ts1[t], \[Omega]1z[t]], t] - D[Ts1[t], \[Phi]1[t]] // Simplify

Out[21]= 0.081 Sin[2 \[Phi]1[t]] \[Omega]1z[t]^2-0.162 Sin[2 \[Phi]1[t]] \[Omega]1z[t] (\[Phi]1^\[Prime])[t]+(2.20026 +0.162 Cos[\[Phi]1[t]]^2) (\[Omega]1z^\[Prime])[t]

In[22]:= eqLagrange=Lefteq==Q/.{\[Omega]1z[t]-> (\[Phi]1^\[Prime])[t],(\[Omega]1z^\[Prime])[t]->((\[Phi]1^\[Prime])^\[Prime])[t]}//Simplify

Out[22]= -0.081 Sin[2 \[Phi]1[t]] (\[Phi]1^\[Prime])[t]^2+(2.20026 +0.162 Cos[\[Phi]1[t]]^2) (\[Phi]1^\[Prime]\[Prime])[t]=={123. -20.58 Cos[\[Phi]1[t]]+(-3.816-2.32776 Cos[\[Phi]1[t]]^2) (\[Phi]1^\[Prime])[t]}

In[23]:= sol=NDSolve[{eqLagrange,\[Phi]1[0]==\[Phi]10,(\[Phi]1^\[Prime])[0]==\[Omega]1z0}/.Param,{\[Phi]1},{t,0.25}]

Out[23]= NDSolve[{-0.081 Sin[2 \[Phi]1[t]] (\[Phi]1^\[Prime])[t]^2+(2.20026 +0.162 Cos[\[Phi]1[t]]^2) (\[Phi]1^\[Prime]\[Prime])[t]=={123. -20.58 Cos[\[Phi]1[t]]+(-3.816-2.32776 Cos[\[Phi]1[t]]^2) (\[Phi]1^\[Prime])[t]},\[Phi]1[0]==1.5,(\[Phi]1^\[Prime])[0]==24.698},{\[Phi]1},{t,0.25}]

 
 
 
 Re: NDSolve не даёт Interpolating Function
Сообщение27.12.2019, 14:13 
Аватара пользователя
А можно привести только ячейки ввода, без вывода? Или просто NB-документ куда-нибудь сбросить.

 
 
 
 Posted automatically
Сообщение27.12.2019, 14:32 
 i  Тема перемещена из форума «Околонаучный софт» в форум «Карантин»
по следующим причинам:

- см. предыдущее сообщение;
- было бы очень неплохо также непосредственно описать решаемую задачу (не в виде кода); краткие инструкции: «Краткий FAQ по тегу [math]» и видеоролик Как записывать формулы.

Исправьте все Ваши ошибки и сообщите об этом в теме Сообщение в карантине исправлено.
Настоятельно рекомендуется ознакомиться с темами Что такое карантин и что нужно делать, чтобы там оказаться и Правила научного форума.

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group