Kysymys:
Kuinka lasketaan muokattu sinikäyrä?
birdman3131
2015-03-12 01:32:03 UTC
view on stackexchange narkive permalink

enter image description here

Suunnittelen kaksiulotteisia nokkaprofiileja. Haluan käyttää "modifioitu sini" -menetelmää piirtämään sijainnin ja kulman muutokset. (katso oheinen luonnos). Muokattu sinikäyrä on itse asiassa yhdistelmä sykloidikäyrää käyrän ensimmäisessä ja viimeisessä 1/8 osassa ja sinikäyrän keskellä käyrää 7/8. Sitä käytetään helposti, kun päätelaitteen nopeudet ovat nollia. Usein on kuitenkin välttämätöntä, että nokkaprofiili yksinkertaisesti siirtyy yhdestä nopeudesta (ehkä nollasta) vakionopeuteen. Päätönopeus on yksinkertaisesti kulma siirtymäkaaviossa.

Profiilin määrittelee:

$$ y = \ begin {cases} \ frac h {4+ \ pi} \ left (\ pi \ frac \ theta \ beta- \ frac14 \ sin \ left (4 \ pi \ frac \ theta \ beta \ right) \ right), & 0 \ lt \ theta \ lt \ frac18 \ beta \\ [ 2ex] \ frac h {4+ \ pi} \ left (2+ \ pi \ frac \ theta \ beta- \ frac94 \ sin \ left (4 \ pi \ frac \ theta {3 \ beta} + \ frac \ pi3 \ oikea) \ oikea), & \ frac18 \ beta \ lt \ theta \ lt \ frac78 \ beta \\ [2ex] \ frac h {4+ \ pi} \ vasen (4+ \ pi \ frac \ theta \ beta- \ frac14 \ sin \ left (4 \ pi \ frac \ theta \ beta \ right) \ right), & \ frac78 \ beta \ lt \ theta \ lt \ beta \ end {tapauksissa} $$

suurin saavutettavissa oleva nopeus on $ 45 \ deg \ vasen (\ frac \ pi4 \ right) $, joten vain käyrän ensimmäinen puolisko on käyttökelpoinen tarpeelleni.

esimerkkinä,

mitä menetelmää käyttäisit suunnitellaksesi käyrän, joka menisi pisteestä $ (0,0) $ nollakulmassa pisteeseen $ (3, 2) $ kaltevuus $ 30 $ astetta.

Mitkä kertoimet $ h $ ja $ \ beta $ yllä olevissa yhtälöissä luovat käyrän siten, että pisteen $ (3,2) $ kaltevuus on yhtä suuri kuin $ \ frac {30} {180} \ pi $?

Luulen, että sinulla voi olla osa matematiikastasi. Loppunopeus ei oikeastaan ​​ole kulma, vaan johdannainen $ \ frac {dy} {d \ theta} $ ja suurin nopeus tapahtuu $ \ theta = 0,5 \ beta $. En tiedä, voitko todella ratkaista tämän ongelman, ellet anna haluttua kaltevuutta (nopeutta) halutun kulman sijasta. Lisäksi yksiköt olisivat erittäin arvostettuja.
üks vastaus:
jhabbott
2015-03-16 08:16:29 UTC
view on stackexchange narkive permalink

Käytän Hermite-interpolointia. Se käyttää seuraavia neljää toimintoa:

$ h_1 = 2s ^ 3 - 3s ^ 2 + 1 $

$ h_2 = -2s ^ 3 + 3s ^ 2 $

$ h_3 = s ^ 3 - 2s ^ 2 + s $

$ h_4 = s ^ 3 - s ^ 2 $

Ja yhdistää ne näin:

$ output = (h_1 * startPoint) + (h_2 * endPoint) + (h_3 * gradientIn) + (h_4 * gradientOut) $

Neljän funktion arvo $ s $ on interpoloitava parametrin $ 0 $ ja $ 1 $ välillä, $ output $ siirtyy $ startPoint $ $ (0, 0) $: sta $ endPoint $ $ (3, 2) $: iin. Sinun $ gradientIn $ -asi ei määritetty, mutta näyttää olevan $ 0 $ ja $ gradientOut $ on kuten määritit: $ tan (\ frac {\ pi} {6}) = \ frac {1} {\ sqrt {3} } $ poistamalla termit, jotka kertovat nollalla (aloituspiste ja kaltevuus sisään):

$ x_s = (h_2 * x_ {end}) + (h_4 * tan (\ frac {\ pi} { 6})) = (h_2 * 3) + (h_4 * \ frac {1} {\ sqrt {3}}) $

$ y_s = (h_2 * y_ {end}) + (h_4 * tan (\ frac {\ pi} {6})) = (h_2 * 2) + (h_4 * \ frac {1} {\ sqrt {3}}) $

Jos haluat lisätietoja tämän tyyppinen interpolointikäyrä, tässä on matemaattinen kuvaus ja enemmän toiminnallinen kuvaus.

Kiitos tekemäsi työstä. En kuitenkaan tiedä miten päästä yleiseen yhtälöön tästä ratkaisusta. Vaikuttaa siltä, ​​että se koskee vain esimerkkiä.
Yleinen yhtälö alkaa "output = (h1 * startPoint) + ..." - vain sen jälkeinen bitti on omalle esimerkillesi. Ymmärtääksesi, käytä 0: ta startPointille ja 1: tä endPointille ja piirrä sitten s: t x: ksi ja 'output' y: ksi. Yritä säätää kaltevuutta sisään / ulos nähdäksesi, miten käyrä vaikuttaa, ja saat sen tuntuman. Sitten näet, kuinka helppoa parametrien parametrointi uudelleen useilla segmenteillä voi olla, jos haluat rakentaa monimutkaisempia käyriä (korjaamalla gradientit mahdolliselle skaalaukselle).


Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...