Mengubah orientasi dengan menerapkan torsi

9

Misalkan Anda punya objek mengambang bebas di ruang angkasa. Anda memiliki vektor yang Anda ingin objek ini tuju, dan vektor yang mewakili arah yang saat ini dihadapinya. Dari keduanya, Anda bisa mendapatkan rotasi (matriks, angka empat, apa pun) yang mewakili perubahan orientasi untuk membawa kedua vektor ke dalam penyelarasan.

Jika Anda hanya memiliki kemampuan untuk menerapkan torsi (turunan dari kecepatan sudut) ke objek Anda, apa algoritma yang baik untuk menerapkan torsi dari waktu ke waktu yang tidak akan over / undershoot tujuan?

(Dalam hal ini, ini adalah kapal ruang angkasa yang ingin secara otomatis mengarahkan dirinya sendiri ke arah perjalanan menggunakan pendorong. Gulungan tidak relevan.)

Karantza
sumber
Apakah Anda mencoba mengoptimalkan penggunaan bahan bakar (total torsi yang diberikan) atau kecepatan? Juga, apakah kapal memulai dengan nol kecepatan sudut pada awal operasi ini?
Justin L.
Nah, untuk mengoptimalkan untuk kecepatan akan memiliki akselerasi tetangga-tak terbatas, dan untuk mengoptimalkan untuk penggunaan bahan bakar akan memiliki hampir nol percepatan. Jadi, dalam praktiknya, saya akan menggunakan trade-off yang terlihat bagus. Sedangkan untuk memulai kecepatan sudut, mudah-mudahan saya akan dapat memasukkannya dalam perhitungan secara alami.
Karantza

Jawaban:

4

Ini dapat ditangani seperti kasus serupa untuk akselerasi linier.

Fakta pertama yang harus diperhatikan: Karena kapal memulai dengan kecepatan sudut nol, dan Anda ingin berakhir dengan kecepatan sudut nol, ini berarti bahwa perubahan total kecepatan harus sama dengan nol.

Dari sini kita dapat melihat bahwa integral dari akselerasi dari waktu ke waktu harus sama dengan nol - harus ada akselerasi positif "sebanyak" yang persis sama dengan akselerasi negatif.

Oleh karena itu, solusi Anda, apa pun itu, harus dibatasi ke properti ini: Akselerasi "total" yang sama ke depan dan ke belakang.

Berikut ini bentuk grafik percepatan Anda dari waktu ke waktu:

Grafik akselerasi dari waktu ke waktu

Melihat ini, ada begitu banyak kemungkinan bentuk dan bentuk yang bisa membuat akselerasi Anda! Mari kita membuat beberapa asumsi untuk bentuk akselerasi yang Anda inginkan, untuk memberikan jawaban yang mudah / ringkas.

Demi jawaban sederhana, saya akan memiliki akselerasi berada di salah satu dari tiga negara: maju, mundur, atau nol. Maju dan mundur akan sama besarnya, dan negara-negara dapat beralih secara instan. (tidak ada peningkatan akselerasi secara bertahap)

Anda dapat menemukan perubahan jarak untuk akselerasi yang diberikan selama periode waktu tertentu dengan persamaan ini:

s = 0.5*a*t^2

Solusi paling sederhana di sini adalah mempercepat sampai Anda mencapai titik tengah, kemudian mengurangi kecepatan sisa perjalanan.

Kami akan mengambil Psebagai jarak total yang ingin Anda pindahkan:

s = P/2
P/2 = 0.5*a*t^2
P = a*t^2
t^2 = P/a
t = sqrt(P/a)

Pada dasarnya:

  1. Akselerasi pada auntuk sqrt(P/a)satuan waktu (satuan berdasarkan dari unit Anda untuk akselerasi)
  2. Perlambat pada besaran yang sama untuk jumlah waktu yang sama

Ini bukan satu-satunya solusi. Ini akan membawa Anda ke sana dalam jumlah waktu tercepat ( 2*sqrt(P/a)). Tetapi bagaimana jika Anda menginginkan versi yang lebih santai?

Dalam hal ini, Anda dapat mempercepat 1/3 dari jalan, meluncur untuk 1/3, dan memperlambat sisanya. Atau 1/4, meluncur 1/2, perlambat 1/4 juga.

Atau mungkin Anda dapat mempercepat untuk waktu yang tetap, dan kemudian melambat untuk waktu yang tetap, tetapi tunggu sampai Anda tiba di posisi yang tepat sebelum Anda mulai melambat.

Justin L.
sumber
Anda sangat benar tentang hal ini karena gerak linear. Perhatian utama saya adalah menggunakan algoritma seperti ini dengan mesin fisika yang hanya memberi saya kontrol yaw, pitch, dan roll untuk torsi. Kapak itu bukan ortogonal begitu Anda mulai berputar, jadi saya berharap ada solusi yang lebih baik. Namun, pendekatan Anda terhadap waktu akan tetap berlaku.
Karantza
Ah; maaf, saya pasti tidak mengerti pertanyaan anda. Saya tidak yakin saya bisa menjawab lebih teliti tanpa melihat spesifikasi mesin Anda. Tetapi tentunya ada cara untuk menerapkan torsi konstan dalam arah konstan?
Justin L.
Ya, jawaban Anda mungkin sedekat mungkin. Saya memecahkan masalah khusus saya dengan meretas angka empat sampai saya mendapatkan sesuatu yang akan diterapkan algoritma linier. Terima kasih!
Karantza