Làm thế nào để tôi tính toán các lực tác dụng bởi một dây taut quấn các vật 2D?


10

Giả sử tôi có một nguyên thủy vật lý tôi sẽ gọi là "dây", quấn quanh môi trường 2D (như được mô tả trong câu hỏi này ).

Đây là một minh họa về những gì có thể trông như thế nào:

dây quấn quanh các đối tượng trò chơi tĩnh và động

Trong ví dụ minh họa: Hộp được kéo lên (giữ lên) bằng dây và hộp kéo dây xuống. Đối tượng trên lò xo đang bị dây đẩy xuống, nhưng cũng đang đẩy dây lên trên.

Trong khi tôi chưa tìm ra cách thực hiện nó, giả sử dây sẽ trượt tự do qua các điểm mà nó được quấn quanh.

Trong một mô phỏng vật lý 2D (nghĩa là: dựa trên khung), làm thế nào để bạn tính toán các lực (hoặc xung) để áp dụng cho các đối tượng được gắn hoặc quấn bởi một dây như thế này?


Như tôi đã đề cập trong câu hỏi đầu tiên của mình , tôi tưởng tượng rằng nếu vật duy nhất không tĩnh "trên" dây là khối lượng ở cuối, thì lực sẽ giống hệt khớp nối có chiều dài cố định giữa khối lượng và điểm trước đó mà trên dây.

Câu trả lời:


9

Hộp kéo trên dây áp dụng một lực căng cho dây. Căng thẳng là một lực, được đo bằng Newton. Nếu chúng ta thực hiện một số giả định đơn giản hóa (không có ma sát giữa dây và môi trường) thì lực căng là như nhau tại tất cả các điểm dọc theo dây.

Nếu chúng tôi coi ví dụ của bạn là tĩnh, thì lực căng trên dây chỉ là trọng lượng của hộp:

T = m * g

Trong đó m là khối lượng của hộp và g là gia tốc do trọng lực (tức là 9,8 m / s ^ 2). Lưu ý điều này chỉ hợp lệ trong trường hợp tĩnh, xem bên dưới để biết giải thích về cách tính toán trong trường hợp động.

Lực tại mỗi lần uốn trong dây sau đó chỉ là hình chiếu của lực căng lên hướng liên quan. Ví dụ, lực ở đầu của vật lò xo là một lực dọc theo tiếp xúc bình thường, có độ lớn:

F = T * cos(angle between wire and contact normal)

Trong trường hợp này, hướng tiếp xúc thông thường sẽ là sự phân chia góc giữa các đoạn dây. Lực tại điểm đánh dấu thứ hai của bạn trên môi trường là không liên quan, vì nó không có tác động đến căng thẳng hoặc bất cứ điều gì khác.

Bây giờ, trong trường hợp động, lực căng chỉ đơn giản là lực ràng buộc mà bạn áp dụng cho hộp để giữ cho nó được gắn vào dây. Vì vậy, nếu động cơ vật lý dựa trên xung lực, sự căng thẳng chỉ là:

T = impulse / timestep

Điều này cũng dẫn đến thuật toán chung để quấn dây xung quanh môi trường. Tài sản quan trọng là tổng chiều dài của dây. Chỉ phân đoạn cuối cùng cần được mô phỏng, tất cả các phân đoạn trước đó có thể được coi là cố định. Vì vậy, độ dài của đoạn cuối cùng đã được biết, chỉ cần trừ độ dài của các đoạn trước đó khỏi tổng chiều dài. Sau đó, phân khúc cuối cùng có thể là một hạn chế mùa xuân đơn giản. Sau đó, chỉ cần tách một phân đoạn bất cứ khi nào nó giao nhau với môi trường và loại bỏ phân chia khi uốn cong ra.


Vì vậy - chỉ cần làm rõ: tôi sẽ có khối lượng tự do trên một khớp có chiều dài cố định gắn với thế giới ở "khúc quanh" tiếp theo trong dây. Tôi tìm ra xung lực nào mà khớp áp dụng cho hộp mỗi khung, và từ đó tôi có thể có được lực căng trong dây không?
Andrew Russell

Ngoài ra - tôi quan tâm đến F = T * cos(angle between wire and spring axis). Góc nào, chính xác? Ngoài ra: Tôi không nghĩ rằng (trong mô phỏng) có một cách hợp lý để có dây "biết" rằng có một lò xo gắn vào vật thể đó.
Andrew Russell

@Andrew - Đối với điểm đầu tiên của bạn, vâng, lực tác dụng lên hộp bằng khớp là theo định nghĩa bằng với lực căng trong dây. Đối với điểm thứ hai của bạn, bạn nói đúng, điều này không rõ ràng lắm, thực ra đó là góc giữa dây và điểm tiếp xúc bình thường. Tôi đã chỉnh sửa câu trả lời để làm cho điều này rõ ràng hơn.
Niall

4

Tôi chắc chắn đánh giá cao sự thất vọng của bạn trong các chủ đề dựa trên dây này, đó là một vấn đề khó giải quyết. Chúng tôi không bao giờ có va chạm làm việc hoàn hảo, nhưng mô phỏng ràng buộc chắc chắn là có thể thực hiện được và đơn giản.

Một ràng buộc dây thực sự gần giống với ràng buộc khoảng cách thông thường. Thay vì hai điểm ràng buộc bạn có n + 1 cho một dây có n đoạn, một điểm cho mỗi đỉnh - ở điểm cuối, Jacobian giống hệt với một ràng buộc khoảng cách (nghĩa là nó giống như d / | d | trong đó d là vectơ giữa các điểm) và đối với các nút bên trong, Jacobian giống như (a / | a | - b / | b |) trong đó a và b là các vectơ từ nút đến các nút lân cận. (Xin lỗi, đã một vài năm kể từ khi tôi chạm vào điều này ...)

Bạn không thể giả mạo nó là "chỉ phân đoạn cuối là động" bởi vì, trong ví dụ của bạn, các đối tượng có thể tương tác với các phân đoạn khác, nhưng bạn chỉ cần mô phỏng khối lượng ở hai đầu của sợi dây - bên trong sợi dây có thể không có khối lượng Các xung lực ràng buộc được tính toán tại mỗi nút cần được áp dụng cho đối tượng va chạm tại nút đó.

Dưới đây là một vài giấy tờ liên quan:

Ba cái đầu tiên tương đối gần đây và sẽ giúp ích rất nhiều. Trang 75 của bài viết dưới đây mô tả một ràng buộc "nhiều thanh" mà về cơ bản là một dây.

Chúc may mắn :)

raigan


0

Ý tưởng cơ bản là chiều dài của sợi dây vẫn giữ nguyên. Nếu nó được đẩy lên, bạn sẽ cần tạo một "điểm phân chia" ở đó. Sau đó, sợi dây xác định phía nào nó được gắn vào, bởi vì nó không thể "phát triển" theo hướng đó. Bởi vì nó được gắn vào một cái gì đó ở bên phải, đoạn dây bên trái sẽ trở nên ngắn hơn và phần giữa điểm phân tách và điểm đính kèm sẽ trở nên dài hơn một chút. Sau đó, như Niall đã nói, tính toán độ căng của dây. Làm thế nào tôi sẽ làm điều này là để tính toán sức căng của từng "mảnh" của sợi dây. Sau đó bạn có thể sử dụng điều này để xác định các lực liên quan.

Hi vọng điêu nay co ich.


Không thực sự, xin lỗi.
Andrew Russell
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.