Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

2d sarkaç formülü


Artariel

Öne çıkan mesajlar

Onlar normal pendulum kullanmıyordur, normal pendulum kullansalar sonsuza kadar sallanmaya devam eder. Damped pendulum kullanıyorlardır.

Small angle approximation yapmıyorlarsa da çözümü o kadar basit olmayabilir. Ama direk çözmek yerine deneme yanılma ile ona benzeyen basit bir dinamik yapmak isteyebilirsin.

Açı = Maximum Açı * cos(wt)
Hız = -w*Maximum Açı * sin(wt)

şeklinde başlarsan bu "small oscillation" limitinde, sürtünme olmadan pendulum. w = kök(g/L), hareket periyodu 2*pi/w.
Bunda sürtünmeye benzer bir efekt yaratmak istiyorsan zamanla maximum açı denen değişkeni azaltman lazım.

Yani maximum açı(t) = maximum açı - f(t)

f(t)'yi burda deneme yanılma ile bulabilirsin ve doğal olan bişeyler seçersin.

Eğer böyle yapmayıp da illa tam çözümü istiyorsan ama baya numerikle uğraşman lazım.
Link to comment
Sosyal ağlarda paylaş

codename_curse said:

ikinci derece diferansiyel denklem çıkacak
mx'' + bx' + kx = F(t)
F(t) nin ne olduğuna bağlı deneme yanılma ya da Fourierle birşeyler çıkarabilirsin ama matlabla grafik almak daha kolay olur


evet değişkenler sabit olduğu için farklı başlama açıları için numerik olarak çözersen bir kere, ordan gelen çözümleri kullanabilirsin daha sonra. Ama bu başta çok fazla iş gerektiyor ama sonrası için en optimize kod bu. Adam sallanacağı zaman ilk açısını veriyorsun sallıyorum -60, diğer tüm katsayılar sabit olduğu için -60 için daha önceden numerik olarak bulduğun değerler ile yolu belirleyebilirsin.

daha ciddi projelerde bu tarz şeyleri tercih edebilirsin.
Link to comment
Sosyal ağlarda paylaş

evet evet anladım teşekkürler. bu işi açısal olarak yaptım tabi, FPS ile oranladım w.t kısmını, hız olarak yapmam gerekiyor. diğer fizik kurallarını da çiğnememem için. ancak hızı kullanmam için bileşenlerine ayırmam gerekiyor bakılan yönü, cismin o anda gitmesi gereken açı tam olarak hangisi oluyor?
Link to comment
Sosyal ağlarda paylaş

v_x = vcos(açı), v_y= -vsin(açı) olması lazım

aklındam yaptım şimdi ama basit trigonometri. hız vektörü ipe dik. hız vektörü ile ipin kesiştiği noktadan yere paralel bi çizgi çiz. o çizgi ile hız vektörü arasındaki açının senin açın olması lazım. burdan dediğim gibi çıkıyor o zaman (yalnız burda artı eksi seçimini biraz daha dikkatli incelemen lazım)
Link to comment
Sosyal ağlarda paylaş

esnesin nolcak onun diferansiyel denklemi daha zor ama ip uzunluğunu L = L(t) şeklinde uygun bir fonksiyonla ayarlarsan o da zamanla uzar. Oyun yaparken illa her durumda gerçek fizik denklemlerini çözmene gerek yok bence. Eğer olacak şeyi geometrik olarak az çok biliyorsan, daha basit fonksiyonlarla onu taklit etmek daha akıllıca. Sudan ışık yansımalarını gerçek fizik kurallarına göre yapıyor olsalar bugün oyunlarda su yansıması göremezdik sdf
Link to comment
Sosyal ağlarda paylaş

eylemsizlik momentini t nin fonksyonu olarak belirlemek lazım. mesela çok kaba bir yaklaşım olarak I(t) = I(0) + esin(w't) gibi bir denklem kötü bir sonuç vermez gibi geliyor. denklem çözülemezse bile matlabda sonuç alınır grafik çözdürülür

ha ipi çok çekersen thetayı büyük alırsan eliptik integral giriyordu işin içine

T = 2pikök(L/g)(1+(ilkaçı/2)^2+...) terimlerle gidiyor seri açarak çözülen bir denklem
Link to comment
Sosyal ağlarda paylaş

integral yok benim dediğime benzer yolla yap. küçük açılı sarkacı çöz, maksimum açıyı zamanla azaltan bi fonksiyon koy. denemedim ama gerçek sarkaca benzer diye düşünüyorum.

eğer elinde analitik bir çözüm yoksa integral alman gerekir (bu sistemi tamamen çözmek istiyorsan yapman gereken şey de o ama diyorum ki gerek yok). ya da codename'in dediği gibi bir kereye mahsus numerik olarak çöz sonra verileri kullan. orda yontemler farklı farklı, numerik integrasyon olabilir, seri açılımı olabilir.
Link to comment
Sosyal ağlarda paylaş

valla hiç fizik motoru kodlamadığım için tahmin edemiyorum onu ama onlar benim sana söylediğim basit olanı kullanmamıştır, bence adam gibi başta numerik çözmüşlerdir o dataları kullanmışlardır diye düşünüyorum. bu arada iyi yazılmış bir kod için o denklemi gerektiği anda numerik olarak da çözmek çok zor değil, bugünki bilgisayarların onu yapması saniye bile sürmez. ama sen basit birşey istiyorsun diye sana bunu önerdim.
Link to comment
Sosyal ağlarda paylaş

Ardeth said:

integral yok benim dediğime benzer yolla yap. küçük açılı sumerik olarak çöz sonra verileri kullan. orda yontemler farklı farklı, numerik integrasyon olabilir, seri açılımı olabilir.



şu an yaptığım şey bu, güzel çalışıyor ama işte bu açılı. 1. sayfada verdiğin hız olayı tam olmadı gibi bi bozukluklar falan oldu.

said:

float centerx;
float centery;
float x,y,L,w,aci,acimax;
float g;

void setup()
{
size(500, 500);
centerx=200;
centery=100;
L=150;
g=9.81;
acimax=PI;



}

void draw()
{
background(10);
w=sqrt(g/L)/10;
aci=acimax * cos(w*frameCount) + PI/2;
x=centerx + L*cos(aci);
y=centery + L*sin(aci);
acimax -= PI/1500; // sahte sürtünmemsi
if (acimax < 0)
acimax=0;

ellipse(centerx,centery,10,10);
ellipse(x,y,10,10);

}
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...