Điều khiển tàu vũ trụ


8

Tôi đang phát triển một trò chơi dựa trên vật lý với tàu vũ trụ.

Một tàu vũ trụ được xây dựng từ các vòng tròn được kết nối bởi các khớp. Một số vòng tròn có động cơ kèm theo.

Động cơ có thể xoay quanh tâm vòng tròn và tạo lực đẩy. Tôi muốn có thể di chuyển con tàu theo hướng hoặc xoay quanh một điểm bằng cách đặt vòng quay và lực đẩy cho mỗi động cơ của con tàu.

Làm thế nào tôi có thể tìm thấy vòng quay và lực đẩy cần thiết cho mỗi động cơ để đạt được điều này?

nhập mô tả hình ảnh ở đây



1
Đừng quên xem pid control en.wikipedia.org/wiki/PID_controll điều này ngăn ngừa các dao động không cần thiết (không ổn định tạm thời) hoặc nhắm mục tiêu không tự nhiên.
huseyin tugrul buyukisik

Câu trả lời:


6

Hãy tưởng tượng tình huống đơn giản của một con tàu chỉ với một động cơ. Để di chuyển con tàu, chúng tôi chỉ cần hướng bộ đẩy ra khỏi hướng chúng tôi muốn đi và đẩy ra. Điều đó đẩy chúng ta theo hướng chúng ta muốn đi. Không thể xoay một con tàu chỉ gồm một bộ đẩy.

Cho phép quy mô tàu của chúng tôi thành ba động cơ để làm cho nó thú vị hơn:

nhập mô tả hình ảnh ở đây

Nếu chúng tôi muốn di chuyển con tàu này ở đâu đó sang bên trái, chúng tôi sẽ chỉ tất cả các máy đẩy của chúng tôi theo hướng ngược lại và bắn:

nhập mô tả hình ảnh ở đây

Giải pháp tương tự như bộ đẩy đơn chăm sóc chuyển động tuyến tính.

Nhưng những gì về nếu chúng ta thiếu một bộ đẩy? Chúng ta có một tải không bằng nhau?

nhập mô tả hình ảnh ở đây

Theo chiến lược tương tự sẽ khiến tàu quay. Trong nhiều tình huống, điều này sẽ hầu như không thể tránh khỏi, và trong một số trường hợp thích hợp hơn vì nó sẽ định hướng cho tàu sử dụng tốt hơn các bộ đẩy có sẵn.

Một chiến lược để giảm thiểu điều này sẽ là cân bằng. Tách con tàu xuống trục chuyển động mong muốn:

nhập mô tả hình ảnh ở đây

Sau đó đảm bảo rằng bên phải và bên trái bằng nhau. Nếu họ không mở rộng quy mô đầu ra cho đến khi họ làm. Điều này có thể dễ dàng dẫn đến không có lực đẩy được áp dụng. Tùy thuộc vào bạn để quyết định xem bạn có muốn đẩy ra ngoài gây ra xoay vòng hay buộc người chơi thiết kế lại tàu của họ bằng cách tổ chức lại bộ đẩy của họ.

Làm thế nào về luân chuyển?

Câu hỏi này mô tả ý tưởng rất tốt.

nhập mô tả hình ảnh ở đây

Bạn sẽ cần phải tính toán trung tâm của khối lượng . Sau đó tính toán mô-men xoắn được cung cấp bởi mỗi bộ đẩy. May mắn cho bạn, bộ đẩy của bạn xoay, vì vậy bạn có thể xoay chúng để cung cấp mô-men xoắn tối đa. Mô-men xoắn cực đại sẽ đến từ một góc phải đến cánh tay đòn. Áp dụng tổng của các viên đạn sẽ xoay cơ thể xung quanh tâm khối lượng. Bạn cũng có thể chọn một số điểm quay tùy ý khác như cầu của con tàu.

Nếu bạn muốn đảm bảo rằng bạn xoay tại chỗ, bạn có thể thu nhỏ lại lực đẩy của các bộ đẩy sẽ khiến tàu của bạn di chuyển tuyến tính. Bạn có thể làm điều đó bằng cách cộng tất cả các bộ đẩy có mô-men dương và tất cả các bộ đẩy có mô-men âm, sau đó so sánh các giá trị tuyệt đối của chúng. Nhóm có giá trị tuyệt đối lớn hơn nên được thu nhỏ lại để khớp với giá trị tuyệt đối của nhóm khác.

Bạn cũng có thể tìm thấy một tài nguyên rất hữu ích trong Amit Patel .

nhập mô tả hình ảnh ở đây

Ông đã thực hiện một loạt 4 phần về các tàu không gian có thể cấu hình ở đây: phần 1 , phần 2 , phần 3 , phần 4


Có những giải pháp khác (thanh lịch hơn) cho việc này. Nhưng lý tưởng, nếu người chơi tạo ra các thiết kế tốt, những chiến lược này sẽ hoạt động. Câu trả lời này chỉ có ý nghĩa như một điểm khởi đầu cơ bản cho loại điều khiển này. Có rất nhiều chỗ để cải thiện.
MichaelHouse

-5

Tôi đã giải quyết điều đó với tìm kiếm địa phương. Nó hoạt động, nhưng hiệu suất gần như là xấu. Có lẽ tốt hơn là sử dụng cơ học lý thuyết nhưng tôi không biết điều đó.


4
-1, đó là một câu trả lời rất mơ hồ. Bạn có thể giải thích thêm những gì bạn thực sự đã làm để giải quyết vấn đề?
MichaelHouse
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.