slej slej
246
BLOG

Motylek z wąsikiem, czyli L, ω i składowe ɛ w mechanice BS.

slej slej Nauka Obserwuj temat Obserwuj notkę 16

    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




slej
O mnie slej

Wiem że nic nie wiem a to już coś

Nowości od blogera

Komentarze

Inne tematy w dziale Technologie