Jak obliczyć zmodyfikowaną krzywą sinusoidalną?

5

wprowadź opis zdjęcia tutaj

Projektuję dwuwymiarowe profile krzywkowe. Chcę użyć metody „zmodyfikowanego sinusa” do rysowania zmian położenia i kąta. (patrz załączony szkic). Zmodyfikowana krzywa sinusoidalna jest właściwie kombinacją krzywej cykloidalnej na pierwszej i ostatniej 1/8 krzywej oraz krzywej sinusoidalnej na środku 7/8 krzywej. Można go łatwo zastosować, gdy prędkości końcowe wynoszą zero. Jednak często konieczne jest, aby profil krzywki po prostu przeszedł od jednej prędkości (być może do zera) do stałej prędkości końcowej. Prędkość końcowa jest po prostu kątem na schemacie przemieszczenia.

Profil jest zdefiniowany przez:

y={h4+π(πθβ-14grzech(4πθβ)),0<θ<18βh4+π(2)+πθβ-94grzech(4πθ3)β+π3))),18β<θ<78βh4+π(4+πθβ-14grzech(4πθβ)),78β<θ<β

Maksymalna możliwa do osiągnięcia prędkość wynosi związku z tym tylko pierwsza połowa krzywej jest przydatna na moje potrzeby.45deg(π4)

jako przykład,

jaka metoda będzie można zastosować, aby zaprojektować krzywą że przejść z punktu przy kącie zero w punkcie ( 3 , 2 ), nachylenie 30 °.(0,0)(3),2))30

Jakie współczynniki i β w powyższych równaniach utworzą krzywą taką, że nachylenie w punkcie ( 3 , 2 ) jest równe 30hβ(3),2))?30180π

birdman3131
źródło
Myślę, że niektóre z matematyki są błędne. Prędkość końcowa nie jest tak naprawdę kątem, lecz pochodną a maksymalna prędkość występuje przyθ=0,5β. Nie wiem, czy naprawdę możesz rozwiązać ten problem, chyba że podasz pożądane nachylenie (prędkość) zamiast pożądanego kąta. Dodatkowo jednostki byłyby bardzo mile widziane. reyreθθ=0,5β
regdoug,

Odpowiedzi:

2

Użyłbym interpolacji Hermite'a. Wykorzystuje następujące cztery funkcje:

h1=2)s3)-3)s2)+1

h2)=-2)s3)+3)s2)

h3)=s3)-2)s2)+s

h4=s3)-s2)

I łączy je w następujący sposób:

output=(h1stzartP.ojant)+(h2)minreP.ojant)+(h3)solrzarejamintjan)+(h4solrzarejamintOut)

s01outputstzartP.ojant (0,0)minreP.ojant (3),2))solrzarejamintjan0solrzarejamintOuttzan(π6)=13)

xs=(h2)xminre)+(h4tzan(π6))=(h2)3))+(h413))

ys=(h2)yminre)+(h4tzan(π6))=(h2)2))+(h413))

Jeśli chcesz uzyskać więcej informacji na temat tego rodzaju krzywej interpolacji, oto opis matematyczny i opis bardziej funkcjonalny .

jhabbott
źródło
Dziękuję za pracę, którą wykonałeś. Nie wiem jednak, jak dojść do ogólnego równania z tego rozwiązania. Wydaje się, że dotyczy to tylko tego przykładu.
birdman3131
Ogólne równanie rozpoczyna się „wyjście = (h1 * startPoint) + ...” - tylko kawałek później jest specyficzny dla twojego przykładu. Aby to zrozumieć, użyj 0 dla punktu początkowego i 1 dla punktu końcowego, a następnie narysuj „s” jako „x”, a „wynik” jako „y”. Spróbuj dopasować nachylenie / wyjście gradientu, aby zobaczyć, jak wpływa to na krzywą i poczuj to. Następnie zobaczysz, jak łatwo można ponownie sparametryzować 's' na wielu segmentach, jeśli chcesz budować bardziej złożone krzywe (poprawiając gradienty dla dowolnego zastosowanego skalowania).
jhabbott,