임의 정확도 확장 가능한 로프 시뮬레이션


12

로프 객체를 시뮬레이션하려고합니다. 내가 이해하는 제제는 스프링으로 연결된 입자 배열입니다. 이 스프링은 k 값이 매우 커서 선이 변형되지만 거의 늘어나지 않습니다. 로프는 진자 (닫힌 형태가 아님)의 일반화이므로 닫힌 함수에서는 이것을 시간의 함수로 해결하는 것이 불가능하다는 결론을 내 렸습니다.

그러면 대략적인 솔루션에 정착합니다. 잘 확장되는 알고리즘이 필요합니다. 예에서는 입자를 이동시키기 위해 명시 적 또는 암시 적 Eulerian 통합을 사용하는 것을 보았습니다. 이것은 확장되지 않습니다.

이것을 보려면 n 개의 노드가있는 로프를 고려하십시오. 한쪽 끝에 큰 힘을가하십시오. 로프는 크게 늘어나지 않아야하므로 다른 쪽 끝의 가속도는 즉각적이어야합니다.

그러나 오일러 통합, 얻을 수 있는 다른 쪽 끝은 n 개의 단계가 필요에 힘을. 지수 감소가 나타납니다. 첫 번째 노드가 특정 양을 가속하면 인접한 노드가 덜 가속합니다 (동일한 속도로 가속하면 알고리즘이 안정적이지 않습니다). 따라서, 인접 노드 노드도 느린 가속!

따라서 n 개의 노드가 떨어져도 가속은 거의 무시할 수 있습니다. 이로 인해 로프가 크게 늘어납니다. 시뮬레이션 해상도를 두 배로 늘리려면 유사한 동작을 얻기 위해 갑자기 수십 또는 수백 배 더 작은 시간 단계를 수행해야합니다.

이 문제를 해결하는 간단한 방법을 찾고 있습니다. 즉, 높은 해상도 시뮬레이션은 다항식 시간 추가 계산만으로 솔루션에 수렴됩니다. 행렬 및 선형 대수 기법의 전체 라이브러리를 사용할 수 있습니다. 고전 역학에 대한 나의 지식은 매우 좋으며 수치 분석을 알고 있습니다.


vsdt

@dmckee, 그래, 제발! 두 번째 의견에 대한 답으로, 모든 시간 단계에서 힘이 무한히 효과적으로 전파되어야합니다.
imallett

음속은 꽤 빠를 것입니다. 그러나 시간 간격이 10ms 미만인 경우 전파 길이는 여전히 몇 미터에 불과합니다.
dmckee --- 전 운영자 고양이 새끼

여기서받은 제안이 도움이되었는지 궁금합니다. 나는 수용의 결여가 당신이 아직 후속 조치를 취하고 있거나 답이 정확히 당신이 바랐던 것이 아니라는 것을 의미한다고 생각하지만, 그들은 당신에게 앞으로 나아갈 길을 보여 주었습니까?
dmckee --- 전 운영자 고양이 새끼

그들은 도움이되었지만 많은 것들이 동시에 나타났습니다. 나는 몇 가지 답변에 대한 의도를 분명히했으며, 숨을 쉴 때 나는 그에 대한 후속 조치를 취할 수 있습니다. 감사합니다,
imallett

답변:


4

우선, Jed Brown 이 언급했듯이, 문제가 상당히 뻣뻣 해 보이 거나 Leapfrog 통합 또는 Verlet 통합 과 같은보다 안정적이고 똑같이 간단한 구성표로 암시 적 타임 스테핑 구성표를 사용해야합니다 .

신체적 문제는 스트레칭에 얼마나 관심이 있습니까? 입자를 뻣뻣한 스프링으로 연결하는 대신 , 균등 구속 조건을 사용 하여 입자 쌍 사이의 거리를 일정하게 유지할 수 있습니다. 제약 조건은 각 시간 단계마다 해결되어야하며 정확하게 설정하기위한 효율적인 알고리즘, 즉 긴 링크 체인 제약 조건이 있습니다. 예를 들어이 백서 를 참조하십시오 .

호기심에서 로프의 길이를 따라 각도 전위를 사용하여 유연성을 모델링하고 있습니까?


암시 적 시간 스테핑 (도움이되는)을 사용하더라도 스트레칭이 발생합니다. 사실, 나는 그것을 없애려고 노력하는 한에만 스트레칭에 관심이 있습니다. 논문의 수학은 기본적으로 내 머리 위에 있지만 포트란 코드를 연구하고 있습니다. 아직 모든 각도 구속 조건을 사용하지 않습니다.
imallett

@IanMallett : 좋습니다. 그러면 제약 조건이 갈 길이 있습니다. 즉 제약 조건이 전혀 확장되지 않습니다.
Pedro

5

현재 공식에 맞는 시스템이 있습니다. 끈의 역동적 인 스트레칭과 진동은 (아마도) 흥미롭지 않지만, 명백한 시간 단계를 제어합니다. 이것은 내재 된 시간 통합 방법을 사용함을 나타냅니다. 댐핑을 사용하여 암시 적 방법에 대한 적응 형 오류 제어를 망칠 경향이있는 진동을 방지 할 수 있습니다.

미세 진동이 단계를 넘어 가고 싶지만 모델링에 중요한 경우 (예 : 피로 모델링) 이기종 멀티 스케일 방법 (Engquist, Tsai 등) 또는 세미- 시간 방법의 스펙트럼. 이러한 방법을 사용하는 것은 연구 수준의 주제이므로 문제의 여부와 방법의 능력을 잘 이해하여 적절한 지 여부를 결정해야합니다. 예를 들어 특정 진동 모드가 소멸되지 않아야하는 에너지를 절약하려면 Verlet과 같은 상징적 인 통합기를 살펴보십시오.

원하는 경우 제로 스트레치 한계를 해결할 수도 있습니다. 관성 항을 사용하면 모델을 각도로 재구성하여 강성이 아닌 ODE 시스템을 만들 수 있습니다. faleichik이 지적했듯이, 이것은 ROPEHairer, Nørsett 및 Wanner의 책에서 고려 된 테스트 문제입니다. 로프 자체의 관성을 버리지 만 느슨 함 (이산 하중의 가볍고 스트레치 로프, 일반적인 모델이 아님)을 허용하면 문제가 차등 불평등 (DVI)이되고 일반적으로 1 차 정확도보다 나을 수 없습니다. 시각.


2
HMM은 본질적으로 프로젝션 기반 모델 축소 방법입니다. 응용 프로그램에서 특별히 요구하지 않는 한 이러한 방법을 권장합니다. 속도의 정확성을 기꺼이 희생해야합니다. 압축 및 재구성 연산자의 "좋은"선택을 결정하는 것은 (HMM의 명명법을 사용하여) 일부 응용 분야에서 사소한 것으로 남아 있습니다 (연소는 그러한 예 중 하나임).
Geoff Oxberry

@GeoffOxberry Agreed, 경고를 추가했습니다. 고전적인 문제는 시계의 기계적 진동이 드리프트를 일으키는 방법입니다. 내가 적절하다고 생각하는 문제의 예는로드 된 측면에서 진동 모드에 의해 가속 된 캡스턴 주위에 로프의 크리프 / 슬립을 모델링하는 것입니다. 모든 것이 연소가 아닙니다. ;-)
Jed Brown

제로 스트레치 제한은 기본적 으로이 시점에서 실제로 시도하는 유일한 것입니다. 미세한 진동은 좋지만, 너무 부드러운 비탄성 천이 바람직합니다. 나는 OpenCloth의 공식을 통해 암시 적 시간 스테핑을 시도했지만 불행히도 문제는 여전히 발생합니다. 마지막 단락을 실행하는 방법에 대한 링크를 정교하게 제공 할 수 있습니까? 감사합니다,
imallett

2

빠르고 근사한 솔루션에 관심이있는 경우 이산 차등 형상과 같은 디지털 효과에 사용 된 방법이 유용 할 수 있습니다. 컬럼비아 대학교 Grinspun 그룹의 2008 년 논문 인 Discrete Elastic Rods 의 준 정적 공식을 알고 있지만이 분야에 더 최근의 문헌이있을 것입니다.


2

교수형 밧줄의 움직임은 Hairer와 Wanner가 사랑하는 테스트 문제로, "정상 미분 방정식 풀기"의 두 번째 (딱딱한) 볼륨과 첫 번째 볼륨 (1993)의 두 번째 에디션에 나타납니다. 마지막 옵션 인 247 페이지를 추천합니다. 방정식을 도출하는 것은 까다 롭고 수치 해법 알고리즘은 그리 간단하지 않습니다. 마지막에는 DOPRI, RK45 또는 ODEX와 같은 기존의 명시 적 타임 스테퍼가 적용되고 꽤 잘 작동하므로 문제가 실제로 딱딱하지는 않습니다.


1
ROPE책 의 문제는 관성 효과에 의해 지배되는 역학으로 늘어나지 않는 로프를 모델링합니다. 문제는 늘어난 로프에 대해 묻는 것 같습니다.
Jed Brown
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.