Do czego to służy? Nie dbam o to, po prostu chcę wiedzieć. Być może będzie to jedynie bezużyteczna ciekawostka a być może na podstawie tej wiedzy będzie można zrobić coś nowego. Prawda jest taka że póki w pełni nie zrozumiesz zjawiska póty wymyślanie do czego to może służyć jest jak wróżenie z fusów. Prę do przodu a co z tym później będzie to się zobaczy.
Często pojawiają się pytania jak się ma energia bryły sztywnej i prawo zachowania momentu pędu do efektu Dżanibekowa? Aby to zrozumieć trzeba znać pewien fakt fizyczny który jest sprzeczny z intuicyjnym myśleniem. Kiedy na wektor pędu działa siła prostopadła do niego to zmienia się kierunek działania pędu ale nie zmienia się jego długość. Siła ta nie wykonuje pracy, przez co tak działająca siła nie pochłania energii. Dlatego też ziemia może krążyć dookoła słońca i obracać się wokół własnej osi w nieskończoność. Trochę naciągając fakty (orbita ziemi jest elipsoidą) można powiedzieć że siła grawitacji słońca zmienia kierunek pędu ziemi ale nie zużywa przy tym energii. Jest to cechą sił dośrodkowych, przez co obiekty w kosmosie mogą wirować w nieskończoność mimo że podczas wirowania nieustannie działają siły więzów (dośrodkowe). Tak też się dzieje podczas efektu Dżanibekowa, moment siły jest zawsze prostopadły do wektora prędkości kątowej przez co możliwe jest zmiana jego kierunku obrotu (omega) bez strat energii.
Co do prawa zachowania momentu pędu to reprezentujący je wektor L=(Ixωx, Iyωy, Izωz) i ma on zawsze stałą długość (sprawdziłem). Dodałem ten wektor do moich symulacji jest na filmiku poniżej jako wektor czerwony, jednak moje symulacje odnoszą się do układu odniesienia bryły sztywnej gdzie to momenty bezwładności są stałe w czasie Ix, Iy, Iz, dlatego też w takim układzie L porusza się po krzywej zamkniętej. Kiedy przejdziemy do inercjalnego układu odniesienia (np. laboratorium) to wtedy wektor L będzie stały w czasie zarówno co do wielkości jak i kierunku a wszystko będzie się kręciło dookoła niego.
Jak to jest możliwe że L jest stały w czasie a wszystko wokół niego się kręci? Można to pokazać na przykładzie funkcji x+y=1. Jak widać prawa strona równania jest stała w czasie ale lewa strona ma nieskończoną możliwość kombinacji. Mimo że L jest stałe w czasie to parametry które je tworzą przechodzą dynamiczne zmiany według pewnych zależności i tych zależności właśnie szukam.
Na poprzedniej symulacji pokazałem trajektorię po jakich poruszają się wektory ω, ɛ i momentu siły M.
M bez niespodzianek okazał się prostopadły do wektora prędkości kątowej jednak jak się okazało ɛ nie był prostopadły do ω.
Mxwx + Mywy + Mzwz =
Iywxwywz - Izwxwywz + Izwxwywz - Ixwxwywz + Ixwxwywz - Iywxwywz = 0
Łatwo można wywnioskować że odpowiedzialne za to są różne momenty bezwładności i pamiętając że Ix < Iy < Iz musimy uwzględnić zmianę ω wywołaną zmianą I.
Ixωx= Iyωy= Iyωy
Dlatego tez postanowiłem rozłożyć epsilon na składowe zależne od momentu siły i zmiany momentu bezwładności
ɛ = ɛm + ɛi
Musimy tu wprowadzić jednostkę momentu bezwładności Ijed. Teraz przyspieszenie kątowe zależne wyłącznie od momentu siły będzie miało taki wzór
ɛm=M/Ijed
zaś wzór na przyspieszenie kątowe wywołane zmianą momentu bezwładności to
dωi/dt=(ω2-ω1)/dt=((I1-I2)Mx)/(I1I2)
Wzór na ωm można oczywiście osiągnąć za pomocą ɛm ale zrobiłem to za pomocą innego wzoru aby sprawdzić czy wynik się zgadza.
Ixωx= Ijed*ωm
ωm=(Ixωx)/ Ijed
Teraz mamy już ωm prostopadłą do ɛ
ɛxωmx + ɛyωmy + ɛzωmz =
=(((Iy-Iz)wywz)/Ix)((ωxIx)/Ijed)+(((Iz-Ix)wzwx)/Iy)((ωyIy)/Ijed)+(((Ix-Iy)wxwy)/Iz)((ωzIz)/Ijed) =
=(Iywxwywz)/Ijed - (Izwxwywz)/Ijed + (Izwxwywz)/Ijed - (Ixwxwywz)/Ijed + (Ixwxwywz)/Ijed - (Iywxwywz)/Ijed= 0
Symulacje tych wektorów dają bardzo artystyczne obrazy.
Rozłożenie ɛ na składowe po pierwsze pokazuje nam z czego ten wektor się składa a po drugie udowadnia niedowiarkom że traktowanie tego wektora wzorami na przyspieszenie kątowe jest poprawne. Niestety wciąż jest wiele opinii że moje ɛ nie jest przyspieszeniem kątowym.
Kod do symulacji
from visual import * masa11=sphere(pos = vector(1,0,0), radius =0.02, color = color.red) masa12=sphere(pos = vector(-1,0,0), radius =0.02, color = color.red) masa21=sphere(pos = vector(0,1,0), radius =0.02, color = color.blue) masa22=sphere(pos = vector(0,-1,0), radius =0.02, color = color.blue) cylinder(pos = masa11.pos, radius =0.005, axis=masa12.pos-masa11.pos) cylinder(pos = masa21.pos, radius =0.005, axis=masa22.pos-masa21.pos) Ijed=2 #jednostka I Ix=1.5 Iy=2 Iz=2.5 wx=0 wy=1 wz=0.1 wmx=(wx*Ix)/Ijed #start wsIs=wxIx; ws=(wxIx)/Is wmy=(wy*Iy)/Ijed wmz=(wz*Iz)/Ijed wmvx=wmx #v-kierunek wektora wm wmvy=wmy wmvz=wmz wix=wx-wmx #start wi wiy=wy-wmy wiz=wz-wmz #ex=((Iy-Iz)*wy*wz)/Ix #ey=((Iz-Ix)*wz*wx)/Iy #ez=((Ix-Iy)*wx*wy)/Iz lx=wx*Ix/3 ly=wy*Iy/3 lz=wz*Iz/3 L=sqrt((lx*lx)+(ly*ly)+(lz*lz)) kropkaw=sphere(pos=vector(wx,wy,wz), radius=0.01, color= color.blue, make_trail=True) kropkawm=sphere(pos=vector(wmx,wmy,wmz), radius=0.01, color= (0.3,0,0.5), make_trail=True) kropkawi=sphere(pos=vector(wix,wiy,wiz), radius=0.01, color= (0,0.3,0.5), make_trail=True) kropkae=sphere(pos=vector(0,0,0), radius=0.01, make_trail=True) kropkaem=sphere(pos=vector(0,0,0), radius=0.01, color= (0,0.5,0.3), make_trail=True) kropkaei=sphere(pos=vector(0,0,0), radius=0.01, color= (0.3,0.5,0), make_trail=True) kropkam=sphere(pos=vector(0,0,0), color= color.green, radius=0.01, make_trail=True) kropkak=sphere(pos=vector(lx,ly,lz), color= color.red, radius=0.01, make_trail=True) omega=arrow(axis=vector(0,0,0), color= color.blue, shaftwidth=0.01) omegam=arrow(axis=vector(0,0,0), color= (0.3,0,0.5), shaftwidth=0.01) omegai=arrow(axis=vector(0,0,0), color= (0,0.3,0.5), shaftwidth=0.01) epsilon=arrow(axis=vector(0,0,0), shaftwidth=0.01) epsilonm=arrow(axis=vector(0,0,0),color= (0,0.5,0.3), shaftwidth=0.01) epsiloni=arrow(axis=vector(0,0,0),color= (0.3,0.5,0), shaftwidth=0.01) momentsi=arrow(axis=vector(0,0.01,0), color= color.green, shaftwidth=0.01) kret=arrow(axis=vector(lx,ly,lz), color= color.red, shaftwidth=0.01) #epx=arrow(axis=vector(0.01,0,0), color= color.yellow) #epy=arrow(axis=vector(0,0.01,0), color= color.green) #epz=arrow(axis=vector(0,0,0), color= color.orange) dt=0.02 t=0 while t<2500: rate(100) ex=((Iy-Iz)*wy*wz)/Ix #Euler ey=((Iz-Ix)*wz*wx)/Iy ez=((Ix-Iy)*wx*wy)/Iz mx=ex*Ix #moment sily my=ey*Iy mz=ez*Iz wmx=(wx*Ix)/Ijed #wxIx=wsIs; ws=(wxIx)/Is s-start marker omegam wmy=(wy*Iy)/Ijed wmz=(wz*Iz)/Ijed emx=mx/Ijed #e=M/Is emy=my/Ijed emz=mz/Ijed wmvx=wmvx+emx*dt #wektor omega zalezny od em=M/Is wmvy=wmvy+emy*dt wmvz=wmvz+emz*dt eix=((Ijed-Ix)*mx)/(Ix*Ijed) #wektor epsilon dw/dt=w2-w1=((I1-I2)Mx)/I1I2 eiy=((Ijed-Iy)*my)/(Iy*Ijed) eiz=((Ijed-Iz)*mz)/(Iz*Ijed) # eix=ex-emx #sprawdzenie eix=ecx; eiy=ecy, eiz=ecz # eiy=ey-emy # eiz=ez-emz wix=wix+eix*dt #wektor omega zależny od dI wiy=wiy+eiy*dt wiz=wiz+eiz*dt # wix=wx-wmx # wiy=wy-wmy # wiz=wz-wmz wx=wx+ex*dt #wspolrzedne omegi wy=wy+ey*dt wz=wz+ez*dt lx=wx*Ix/3 ly=wy*Iy/3 lz=wz*Iz/3 omega.axis=vector(wx,wy,wz) #wektory omegam.axis=vector(wmvx,wmvy,wmvz) omegai.axis=vector(wix,wiy,wiz) epsilon.axis=vector(ex,ey,ez) epsilonm.axis=vector(emx,emy,emz) epsiloni.axis=vector(eix,eiy,eiz) momentsi.axis=vector(mx,my,mz) kret.axis=vector(lx,ly,lz) kropkaw.pos=vector(wx,wy,wz) #markery kropkawm.pos=vector(wmx,wmy,wmz) kropkawi.pos=vector(wix,wiy,wiz) kropkae.pos=vector(ex,ey,ez) kropkaem.pos=vector(emx,emy,emz) kropkaei.pos=vector(eix,eiy,eiz) kropkam.pos=vector(mx,my,mz) kropkak.pos=vector(lx,ly,lz) # e=sqrt((ex*ex)+(ey*ey)+(ez*ez)) # epx.axis=vector(ex,0,0) # epy.axis=vector(0,ey,0) # epz.axis=vector(0,0,ez) # w=sqrt((wx*wx)+(wy*wy)+(wz*wz)) # l=sqrt((lx*lx)+(ly*ly)+(lz*lz)) print wx, wix, wmx,t # print eix, eiy, eiz # print t, w, e # print t, emx+eix, emy+eiy, emz+eiz # print ex, ey, ez # print t, wx, wy, wz t=t+1
Komentarze