Lập trình khác biệt cho một chiếc xe


8

Tôi đến một điểm trên xe của mình, khi tôi đang đi nhanh và rẽ, chiếc xe có hành động kỳ lạ vì lốp xe bên trong đang di chuyển nhanh hơn lốp bên ngoài. Vì vậy, tôi cần tìm ra cách lập trình trong một vi sai nhưng dường như tôi không thể làm cho nó hoạt động chính xác vì vậy tôi ở đây để xem có ai có kinh nghiệm về việc này không.

Tôi đã kiểm tra trực tuyến về vật lý nhưng dường như có nhiều thông tin hơn tôi có thể cung cấp trong trò chơi của mình (như ảnh hưởng trọng lực thực sự trên xe). Hiện tại tôi sử dụng logic sau để xác định tốc độ bánh xe vi sai. Tôi sẽ cố gắng giải thích rõ ràng và đơn giản nhất có thể để tôi xin lỗi nếu nó khó hiểu hoặc quá đơn giản, nó khó hiểu với tôi!

Đây là những gì tôi làm: Tôi chia mức độ lần lượt hiện tại của mình cho số lần quay tối đa để có được tỷ lệ phần trăm, sau đó tôi lấy tỷ lệ phần trăm đó và áp dụng tỷ lệ đó cho tỷ lệ phần trăm sửa đổi (chỉ một phần trăm tôi đã tạo ra và điều chỉnh để giảm số lượng đã vượt qua đến vi sai, không chắc đây thực sự là gì. Tốc độ động cơ? Vận tốc?). Sau đó, trong vi sai của mình, tôi kiểm tra xem xe đang rẽ trái hay phải và giảm tốc độ ở một bên x% và tăng tốc độ ở phía bên kia thêm x%

Tôi chắc chắn rằng vấn đề lớn nhất của tôi là con số tôi đang tạo ra để giảm phần trăm lần lượt nhưng tôi không thể biết phải đặt gì ở đó. Tôi biết rằng việc chuyển trực tiếp% rẽ sang vi sai (giả sử, 40%) sẽ giảm một bên xuống 40 và tăng 40 bên còn lại và điều đó rõ ràng là không đúng.

Tôi có quyền truy cập vào tốc độ động cơ, hộp số, tốc độ trục bánh xe, mô-men xoắn, vận tốc xe, v.v. nhưng tôi không chắc nên xem xét đến những điều nào trong số này khi thực hiện công thức này.

Có lẽ tôi đang làm phức tạp nó hoặc có thể tôi đang đơn giản hóa nó. Bất kỳ trợ giúp để hiểu điều này sẽ là tuyệt vời!


Những vấn đề bạn thực sự có với vật lý thực sự liên quan? Bởi vì trọng lực có thể dễ dàng thu được (đó là một hằng số mà bạn chỉ cần điều chỉnh, tương tự với khối lượng xe, v.v.)
Roy T.

Chà, thực sự không có bất kỳ vấn đề lớn nào với vật lý thực tế nhưng vì tôi không thực sự biết nhiều về vi phân và cơ học (đời thực), nên vật lý đã xuất hiện trong đầu tôi.
Mungoid

Câu trả lời:


9

Tôi thực sự nghĩ rằng bạn không nên làm theo cách này và bạn nên nhìn sâu hơn vào vật lý thực tế (xem bình luận của tôi). Tuy nhiên tôi có thể cho bạn biết lý do tại sao phương pháp hiện tại của bạn không hiệu quả. (Quá dài cho các bình luận vì vậy tôi sẽ chỉ đăng bài này dưới dạng câu trả lời)

Trước tiên hãy khám phá những gì xảy ra (có lẽ bạn đã tự làm điều này rồi).

Bước ngoặt

Cách chọn cơ bản như trong hình trên, nhưng hãy đơn giản hóa các con số một chút:

Giả sử xe C rộng 2 mét và có vòng tròn tối thiểu 5 mét. Bây giờ tôi chỉ đạo trái đầy đủ. Bánh xe bên trái phía trước bây giờ đi theo một vòng tròn với đường kính 5 mét. Bánh trước bên phải bây giờ đi theo một vòng tròn với đường kính 7 mét. Hoàn thành một vòng tròn đầy đủ sẽ có bánh xe bên trái di chuyển 10 * pi mét. Bánh xe bên phải đi được 14 * pi mét. Bây giờ nói rằng các bánh xe của C tất cả đều có cùng kích thước, và rằng chu vi của bánh xe là 0,5 * m pi (vâng đó là những bánh xe lớn, nhưng không ai nói rằng chúng ta không thể mô hình một chiếc xe tải quái vật!) Bộ vi sai sẽ phải đảm bảo rằng cứ 20 vòng quay của bánh xe bên trái thì bánh xe bên phải quay 28 lần để không có bánh xe nào bị trượt.

Vì vậy, bây giờ bạn có thể nói rằng phần trăm khác nhau nên được điều chỉnh, nói cho toàn bộ bên trái, nó sẽ phân biệt + 40%, và chúng ta chỉ cần điều này để hoàn toàn đúng -40% và sau đó chúng ta có vàng không?

Thật không may, như bạn đã thấy, điều này không hoạt động. Chúng ta hãy tìm một công thức chung cho sự khác biệt trong chiếc xe này. Ở đây x là vòng tròn quay mong muốn.

left wheel distance: x*pi meters
right wheel distance: (x+2)*pi meters:
left wheel rotations: x*4
right wheel rotations: (x+2)*4  

Tôi sẽ lập luận rằng diff nên hoạt động ở phân số ((x + 2) * 4 / (x * 4)) [*]. (Lần 100% nếu bạn muốn tỷ lệ phần trăm) Hãy vẽ biểu đồ:

âm mưu khác

Như bạn có thể thấy rõ chức năng này là phi tuyến tính. Vì vậy, chỉ có sự khác biệt phụ thuộc tuyến tính vào mức độ lái của bạn sang trái hoặc phải là không bao giờ làm việc.

Bây giờ tôi thấy rằng thật hấp dẫn khi chỉ sử dụng công thức trên nhưng tôi nghĩ có lẽ tốt nhất nếu bạn không vì những lý do được mô tả ở trên :). Ngoài ra, bạn sẽ cần phải thực hiện 2 vi sai trừ khi việc điều khiển của bạn liên quan đến cả bốn bánh xe, điều này khiến việc thực hiện thậm chí còn khó khăn hơn, hãy xem lại hình ảnh thứ 1.

[*]: mà chúng ta có thể đơn giản hóa: (x + 2) * 4 / (x * 4) => (x + 2) / x


Tôi không ở máy tính làm việc của mình để thử điều này nhưng tôi có cảm giác mạnh mẽ rằng bạn đúng về mọi điểm! Và bạn không quá xa về những thứ xe tải quái vật. Đây là một phần của máy móc hạng nặng cho một trình giả lập để các bánh xe có đường kính khoảng 2 mét. Ban đầu tôi nghĩ rằng tôi sẽ có thể 'gian lận' vì tôi chỉ cần giữ các bánh xe trên mặt đất nhưng tôi nghĩ điều này sẽ làm cho nó chính xác hơn nhiều. Tôi sẽ chạy các số vào ngày mai và cho bạn biết. Cảm ơn!
Mungoid

Đúng, bài viết của bạn chỉ cho tôi đi đúng hướng. Tôi đã thử phiên bản toán học của riêng bạn nhưng dường như tôi đã làm sai một chút. Cảm ơn đã hướng dẫn!
Mungoid
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.