wyszukiwanie maksymalnej wartości funkcji

0

Witam
Problem jest następujący. Wyliczam wartości przemieszczeń pewnego oscylatora i dostaję następujący wykres przemieszczeń w zależności od czasu:
028e5c63fb.png

Potrzebuję znaleźć maksymalne przemieszczenie gdy ruch oscylatora się ustabilizuje (zakres zaznaczony zieloną linią, funkcja jest w miarę sinusoidalna). W tym konkretnym przypadku oscylator jest ustabilizowany po okolo 5s a interesujące mnie przemieszczenie wynosi 3,2.
Problemy i ograniczenia są natępujące:

  • posiadam wyłącznie wartości funkcji tzn. dla każdego czasu t znam wartość funkcji u(t),
  • wartości funkcji wyliczane są iteracyjnie tzn. ui+1=ui+f(t)
  • oscylator może się ustabilizować po czasie 2s, 20s lub nawet 200s więc zaczynając obliczenia nie wiem jaki jest czas końcowy. Zależy mi też na efektywności rozwiązania. Nie chciałbym wyliczać wartości funkcji dla 10lat (po 10 latach na pewno dla większości przypadków oscylator się ustabilizuje;))
  • wartości maksymalne muszę znaleźć dla około 6 podobnych funkcji (przemieszczenie, prędkość, przyspieszenie etc.)

Jakieś pomysły jak to ugryźć?
Dzięki

1

Pierwsza pochodna różnicy kolejnych ekstremów

0
mch0588 napisał(a):

Potrzebuję znaleźć maksymalne przemieszczenie gdy ruch oscylatora się ustabilizuje

Jak definiujesz ustabilizowanie oscylatora? Raz ustabilizowany oscylator pozostaje ustabilizowny na zawsze ?
Można porównać "podobieństwo" sąsiednich okresów (cykli) dla każdej pary obliczając sumę kwadratów różnic czyli sumę z (f(x) - f(x + T)) ^ 2 gdzie T to okres. Im obliczona sumą jest bliższa zeru tym dla sąsiednie cykle są bardziej podobne.

0

Jak definiujesz ustabilizowanie oscylatora? Raz ustabilizowany oscylator pozostaje ustabilizowny na zawsze ?

Tak, po pewnym czasie oscylator jest ustabilizowany "na zawsze" tzn jego ruch jest harmoniczny. Mam problem jak znaleźć ten czas po którym ruch oscylatora jest ustabilizowany.
Wklejam jeszcze dwa przypadki. Jak widać przebieg "nieustabilizowany" może być totalnie różny dla różnych parametrów wejściowych jednak po jakimś czasie jest ustabilizowany.
a004058287.png
04efb968ea.png

3

Z punktu widzenia statystycznej analizy danych najlepiej by było zrobić transformatę furiera i na tej podstawie wyznaczyć amplitudę i możliwość oceny czy oscylator jest już stabilny.
Możesz też próbować dopasować sinus metodą najmniejszych kwadratów.

Jeśli chcesz dokładnie chwilowe wychylenie, to najlepiej dopasowywać trójmian w małym zakresie i na tej podstawie wyznaczyć maksimum.

Widząc wykresy powyżej transformata furiera z ostatnich 10 oscylacji pozwoli ci na oszacowanie stabilności wahań i dokładne wyznaczenie amplitudy (energii) wahań oscylatora. Musisz porównać stosunek pierwszej harmonicznej do kolejnych harmonicznych.

0

Mch'u, wrzuć coś strawnego dla Excela

0

Na razie jedynie co przyszło mi do głowy to wyznaczanie maksymalnej wartości dla każdego lokalnego ekstremum i porównywanie ich między sobą. Gdy różnica jest mniejsza niż jakaś wartość tzn. że przemieszczenia się ustabilizowały. Nie wiem jak będzie z "wydajnością" takiego podejścia.

Dorzucam plik excela z wykresem i przykładowymi danymi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1