-
21. Data: 2013-04-24 00:57:25
Temat: Re: wzór na obrót wiezyczki strzelniczej
Od: "M.M." <m...@g...com>
W dniu wtorek, 23 kwietnia 2013 23:42:25 UTC+2 użytkownik firr kenobi napisał:
> to jest fizyka w ruchu dyskretnym,
> jaki jest wzor na droge w ruchu
> jednostajnie spowolnionym (o predkosci
> poczatkowej v i spowolnieniu a)?
Chyba tak:
predkosc poczatkowa: v0.
droga poczatkowa s0.
przyspieszenie w czasie: a (dodatnie, zakładamy że przykładane jest przeciwnie do
zwrotu wektora ruchu)
predkosc: v(t) = v0 - calka a(t)dt = v0 - a*t
droga: s(t) = s0 + calka v(t)dt = s0 + v0*t - 0.5at^2
Jesli chcesz znac droge hamowania, to trzeba obliczyc czas t z
podstawienia v(t) = 0. Nastepnie ten czas podstawic do s(t).
> w wersji dyskretnej to mi wychodzi chyba
Co to jest wersja dyskretna? Wersja z dyskretnym
czasem?
Pozdrawiam
-
22. Data: 2013-04-24 09:00:32
Temat: Re: wzór na obrót wiezyczki strzelniczej
Od: firr kenobi <p...@g...com>
W dniu środa, 24 kwietnia 2013 00:57:25 UTC+2 użytkownik M.M. napisał:
> W dniu wtorek, 23 kwietnia 2013 23:42:25 UTC+2 użytkownik firr kenobi napisał:
>
> > to jest fizyka w ruchu dyskretnym,
>
> > jaki jest wzor na droge w ruchu
>
> > jednostajnie spowolnionym (o predkosci
>
> > poczatkowej v i spowolnieniu a)?
>
>
>
> Chyba tak:
>
>
>
> predkosc poczatkowa: v0.
>
> droga poczatkowa s0.
>
>
>
> przyspieszenie w czasie: a (dodatnie, zakładamy że przykładane jest przeciwnie do
zwrotu wektora ruchu)
>
>
>
> predkosc: v(t) = v0 - calka a(t)dt = v0 - a*t
>
>
>
> droga: s(t) = s0 + calka v(t)dt = s0 + v0*t - 0.5at^2
>
>
>
> Jesli chcesz znac droge hamowania, to trzeba obliczyc czas t z
>
> podstawienia v(t) = 0. Nastepnie ten czas podstawic do s(t).
>
>
>
>
>
> > w wersji dyskretnej to mi wychodzi chyba
>
> Co to jest wersja dyskretna? Wersja z dyskretnym
>
> czasem?
>
to chyba by bylo
float s,v,a;
s=v*v/(2*a);
chcialem zobaczyc czy na ile to jest
podobne do wersji dyskretnej
int s,v,a;
s = ((a*(v/a)/2+(v%a))*(v/a+1)
nawet chyba wiecej niz z dyskretnym
czasem bo wogole z dyskretnymi
'iteracjami' ruchu, (czyli liczone
'schodkami')
-
23. Data: 2013-04-24 18:35:59
Temat: Re: wzór na obrót wiezyczki strzelniczej
Od: Vax <...@i...nie.ma>
W dniu 2013-04-23 14:56, bartekltg pisze:
> Wykres prędkości od czasu będzie albo trójkątem,
> albo trapezem, w zależności, czy uda się rozpędzić.
> Uda się, jeśli droga jest prędkość graniczna jest mniejsza
> niż sqrt (a*droga)
Dopiero teraz sobie zerknąłem, a tu coś ciekawego :)
Pierwsze moje spostrzeżenie:
mamy do czynienia z "dyskretnymi krokami/ramkami" co jeżeli dobrze
rozumiem, oznacza jakieś taktowanie.
Założyłem, że w każdym takcie możemy przesłać sterownikowi wartość
przyspieszenia (lub opóźnienia) co nie wynika jednoznacznie z pobieżnego
opisu zadania ;)
I tu pojawią się przypadki gdy bez osiągania prędkości maksymalnej
trzeba będzie rozstrzygnąć, czy mniej ramek wygeneruje trapez czy trójkąt.
Np. dla przyspieszenia 2 stopnie na takt obrót o 3 stopnie można
zrealizować w czterech taktach (trójkąt) lub tylko trzech taktach (trapez):
1. rozpędzanie 0 - 1.5 -> pokonany dystans 0.75
2. ruch jednostajny 1.5 -> pokonany dystans 1.5
3. hamowanie 1.5 - 0 -> pokonany dystans 0.75
W dwóch się nie da, maksymalne rozpędzenie i hamowanie po jednym takcie
da tylko 2 stopnie.
Analogicznie dla tegoż przyspieszenia obrót o 7 stopni wymaga minimum 4
kroków i owe 4 kroki realizujemy przebiegiem trójkątnym, "trapezowanie"
wymagałoby minimum 5 kroków.
Celowo pomijam tu fikuśne łamane typu "trójkąt na trapezie", gdyż można
dobrać przyspieszenie pośrednie, by uzyskać trójkąt o tym samym polu.
Podobnie z "trapezem na trapezie".
Natomiast "intuicyjne" podejście do tematu nakazuje się rozpędzać "ile
fabryka dała" kontrolując jedynie "czy dam radę się zatrzymać" i
dopiero, gdy dalsze rozpędzanie (bądź utrzymywanie maksymalnej
prędkości) grozi przestrzeleniem mety, rozpocząć kalkulację jak
rozplanować hamowanie by utrafić w punkt w ostatnim takcie.
Dodatkowym "smaczkiem" jest ogranicznik prędkości maksymalnej nie będący
wielokrotnością przyspieszenia, więc mamy sytuację niesymetryczną, gdzie
prędkość wzrasta liniowo 0,3,6,9,10 za to maleje w sposób: 10,7,4,1,0
(zakładając hamowanie z maksymalnej, co nie musi być regułą) - cały czas
pamiętamy o taktowaniu.
Zabawy miałem na co najmniej 3 kwadranse - dziękuję za łamigłówkę :)
Nie wiem tylko, czy "optymalizacja" bierze pod uwagę na to, w którym
momencie taktu nastąpi wyhamowanie do zera i czy w takim przypadku
(wcześniej niż koniec taktu) sterownik zatrzyma mechanizm, czy np.
rozpocznie obrót w przeciwnym kierunku, ale to już niuanse ;)
-
24. Data: 2013-04-24 20:32:21
Temat: Re: wzór na obrót wiezyczki strzelniczej
Od: Kosu <K...@n...com>
On 2013-04-22, firr kenobi <p...@g...com> wrote:
> napisac prosty algorytm dla zadanego kata
> X, predkosci maxymalnej v, przyspieszenia a
To jest zadanie na kartkę, a nie do programowania...
Po prostu równania ruchu, a potem je sobie jakoś rozwiąż.
Dygresja:
Jak zobaczyłem tytuł, to miałem nadzieję na jakieś ciekawe
zadanie balistyczne, a nie na układ równań z jakąś bajką
o obracaniu armaty...
pozdrawiam,
Kosu
-
25. Data: 2013-04-24 23:37:28
Temat: Re: wzór na obrót wiezyczki strzelniczej
Od: firr kenobi <p...@g...com>
No właśnie mw o to chodzi, z tym ze
Nie jestem przekonany czy byłby to
Trapez bo to jak mówiłem układ dyskretny, byłoby to cos jak (ograniczenie na prędkość
olawszy)
+a +a +a +b -a -a -a
Gdzie przyspieszenie b mniejsze od a i większe od -a ma być takie by pasownie skleic
fazę przyspieszania i. Zwalniania ale Nie całkiem wiem jak napisać równanie na b i je
rozwiązać.
Można to zrobic inaczej i wspomniałem
Ze napisalem prosty algorytm
Loop {
If (pozostała droga > droga hamowania (v+a) ) v+=a
If (pozostała droga < droga hamowania(v) ) v-=a
s+=v
}
Ale tu z kolei tez lekko ciężko zweryfikowac czy to nie daje błędów,
Zwłaszcza przy końcu ruchu czy np wieza nie zatrzymuje sie parę stopni
Za wczesnie
-
26. Data: 2013-04-24 23:51:14
Temat: Re: wzór na obrót wiezyczki strzelniczej
Od: firr kenobi <p...@g...com>
Ten algorytm uzywa tylko +a -a i 0 ale byc może wstawia te zera inteligentnie w fazie
zwalniania, nie jestem pewien bo jest to troche zastanawiania, :/
-
27. Data: 2013-04-25 19:34:22
Temat: Re: wzór na obrót wiezyczki strzelniczej
Od: bartekltg <b...@g...com>
W dniu 2013-04-24 20:32, Kosu pisze:
> On 2013-04-22, firr kenobi <p...@g...com> wrote:
>> napisac prosty algorytm dla zadanego kata
>> X, predkosci maxymalnej v, przyspieszenia a
>
> To jest zadanie na kartkę, a nie do programowania...
>
> Po prostu równania ruchu, a potem je sobie jakoś rozwiąż.
>
> Dygresja:
> Jak zobaczyłem tytuł, to miałem nadzieję na jakieś ciekawe
> zadanie balistyczne, a nie na układ równań z jakąś bajką
> o obracaniu armaty...
Ale to byłoby na fizykę, nie tu.
Tutaj... sterowanie ustawieniem wieżyczki, mając
dany obraz z radaru i dane balistyczne pocisków;-)
pzdr
bartekltg
-
28. Data: 2013-04-25 19:55:19
Temat: Re: wzór na obrót wiezyczki strzelniczej
Od: bartekltg <b...@g...com>
W dniu 2013-04-24 18:35, Vax pisze:
> W dniu 2013-04-23 14:56, bartekltg pisze:
>> Wykres prędkości od czasu będzie albo trójkątem,
>> albo trapezem, w zależności, czy uda się rozpędzić.
>> Uda się, jeśli droga jest prędkość graniczna jest mniejsza
>> niż sqrt (a*droga)
>
> Dopiero teraz sobie zerknąłem, a tu coś ciekawego :)
> Pierwsze moje spostrzeżenie:
> mamy do czynienia z "dyskretnymi krokami/ramkami" co jeżeli dobrze
> rozumiem, oznacza jakieś taktowanie.
> Założyłem, że w każdym takcie możemy przesłać sterownikowi wartość
> przyspieszenia (lub opóźnienia) co nie wynika jednoznacznie z pobieżnego
> opisu zadania ;)
Cały problem u fira pojawia się przez to, że chce on jednocześnie
zadać jednoznaczny ruch wieżyczki, oraz sterować prędkością
i puszczać swojego eulera.
To jest podejście bez sensu. Albo budujemy prawdziwy sterownik
do wieżyczki, który pobiera pozycje (a nawet prędkość) celu
i wysyła sygnał do sterowania 'silnikiem' (wszytko jedno, czy
to będzie prędkością, czy np mocą) a cześć programu odpowiedzialna
za fizykę to symuluje,
...albo zadajemy ruch na sztywno, wtedy nie ma sensu pytać się
o prędkość w danym momencie, jeszcze uwzględniając poprawkę na
niezbyt dokłądną symulację.
Mamy pozycję (kąt) w funkcji czasu i z niego korzystamy, tyle.
W każdej 'ramce symulacji' ustawiamy wczsniej analitycznie
policzoną pozycję - jesteśmy dokładniejsi, zrobiliśmy to prościej,
do tego spowoduje to mniejsze obciążenie dla komputera.
> I tu pojawią się przypadki gdy bez osiągania prędkości maksymalnej
> trzeba będzie rozstrzygnąć, czy mniej ramek wygeneruje trapez czy trójkąt.
Tak, ale rozróżnienie jest nietrudne.
Jeśli droga to S, a -przyszpieszenie, v - predkość maksymalna,
to prędkość v osiagniemy po czasie wynikającym z v=a*t,
przebywając wtedy drogę s = 0.5 at^2
s = 0.5 v^2/a
Jeśli ta droga jest większa niż połowa trasy:
0.5 v^2/a > S/2
to nie rozpędzimy się do końca. Połowę czasu/drogi się rozpędzamy,
połowę hamujemy.
Najwygodniej policzyć sobie charakterystyczne momenty,
jak zmiana przyszpieszenia, a pomiedzy nimi ruch jest albo
jednostajnie przyszpieszony/opozniony, albo jednostajny.
czyli mamy funkcje kwadratową lub liniową, + 2ify w każdej ramce.
NO, chyba, ze zbudujemy prawdziwy sterownik i fizykę.
> Np. dla przyspieszenia 2 stopnie na takt obrót o 3 stopnie można
> zrealizować w czterech taktach (trójkąt) lub tylko trzech taktach (trapez):
> 1. rozpędzanie 0 - 1.5 -> pokonany dystans 0.75
> 2. ruch jednostajny 1.5 -> pokonany dystans 1.5
> 3. hamowanie 1.5 - 0 -> pokonany dystans 0.75
> W dwóch się nie da, maksymalne rozpędzenie i hamowanie po jednym takcie
> da tylko 2 stopnie.
>
> Analogicznie dla tegoż przyspieszenia obrót o 7 stopni wymaga minimum 4
> kroków i owe 4 kroki realizujemy przebiegiem trójkątnym, "trapezowanie"
> wymagałoby minimum 5 kroków.
Nie przejmowałbym się tą dyskretyzacją, patrz pierwsze uwago.
To, czy mamy trapez powinno wynikać wyłącznie z tego, czy osiągnelismy
predkość maksymalną
>
> Celowo pomijam tu fikuśne łamane typu "trójkąt na trapezie", gdyż można
> dobrać przyspieszenie pośrednie, by uzyskać trójkąt o tym samym polu.
Da się udowodnić, że optymalne czasowo sterowanie będzie trapezem,
albo trójkątem, zaleznie od tego, czy uzyskamy maksymalną prędkość.
> Natomiast "intuicyjne" podejście do tematu nakazuje się rozpędzać "ile
> fabryka dała" kontrolując jedynie "czy dam radę się zatrzymać" i
> dopiero, gdy dalsze rozpędzanie (bądź utrzymywanie maksymalnej
> prędkości) grozi przestrzeleniem mety, rozpocząć kalkulację jak
> rozplanować hamowanie by utrafić w punkt w ostatnim takcie.
>
> Dodatkowym "smaczkiem" jest ogranicznik prędkości maksymalnej nie będący
> wielokrotnością przyspieszenia, więc mamy sytuację niesymetryczną, gdzie
> prędkość wzrasta liniowo 0,3,6,9,10 za to maleje w sposób: 10,7,4,1,0
> (zakładając hamowanie z maksymalnej, co nie musi być regułą) - cały czas
> pamiętamy o taktowaniu.
To nie jest problem dyskretny. Na razie wszytko jest liczbami
rzeczywistymi, wyliczamy na kartce odpowiedź, a potem implementujemy
double pozycja_wiezyczki(t); //zwróc uwagę na typ:)
> Zabawy miałem na co najmniej 3 kwadranse - dziękuję za łamigłówkę :)
:-)
> Nie wiem tylko, czy "optymalizacja" bierze pod uwagę na to, w którym
> momencie taktu nastąpi wyhamowanie do zera i czy w takim przypadku
> (wcześniej niż koniec taktu) sterownik zatrzyma mechanizm, czy np.
> rozpocznie obrót w przeciwnym kierunku, ale to już niuanse ;)
pzdr
bartekltg
-
29. Data: 2013-04-26 05:21:38
Temat: Re: wzór na obrót wiezyczki strzelniczej
Od: A.L. <a...@a...com>
On Tue, 23 Apr 2013 20:22:33 +0000 (UTC), Edek
<e...@g...com> wrote:
>
>Ja zrozumiałem ten problem tak, sądząc po innych wątkach OPa,
>że to wieżyczka na statku, który się obraca i AI może zdecydować
>w dowolnym momencie o zmianie kursu.
Ja nie zrozumialem tego problemu w ogole, bo zostal pzredstawiony
pzrez OPa jako belkot.
Normalnie problem sterowanai czasooptymalnego wyglada tak (w
najprostszej posatci)
1. Masa napedzana przez silnik elektryczny
2. Na poczatku masa jest w bezruchu
3. Trzeba mase pzrestawic z poczatkowego polozenai w inne polozenie w
najkrotszym czasie
4. W tym inyum polozeniu masa musi znalezc sie w bezruchu
Nei wiem czy o to chodzi OPowi. Juz sie nie dowiem bo jest u mnie w KF
A.L.
-
30. Data: 2013-04-26 08:14:34
Temat: [OT] Re: wzór na obrót wiezyczki strzelniczej
Od: voy <v...@M...pl>
W dniu 2013-04-22 15:11, Edek pisze:
> Użyj fuzzy logic. Serio, najlepiej się sprawdza w roli maszynisty,
> ruch podobny - jedynie użyj modulo do kątów.
>
Tak mi się przypomniało o fuzzy logic:
http://people.clarkson.edu/~esazonov/neural_fuzzy/lo
adsway/LoadSway.htm
Pozdr :)