Funkcja dopasowująca wykresu w DIAdem

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
spalinowy
Posty: 106
Rejestracja: 03 lut 2012 15:09
Wersja środowiska: LabVIEW 2017
Lokalizacja: Warszawa
Been thanked: 3 times
Kontakt:

Funkcja dopasowująca wykresu w DIAdem

Post autor: spalinowy » 26 wrz 2018 23:03

W jaki sposób można dla poniższego wykresu znaleźć funkcję dopasowującą w DIAdem? Czyli żeby zamiast tych kilku pętli była tylko jedna. Niby w palecie Curve Fitting jest Non-Linear Curve Fitting, jednak jedyne co uzyskuję to krzywą, której daleko do elipsy.
Załączniki
Wykres XY.png

Awatar użytkownika
micard
Posty: 180
Rejestracja: 30 wrz 2011 11:28
Wersja środowiska: LabVIEW 2016
Has thanked: 6 times
Been thanked: 6 times
Kontakt:

Re: Funkcja dopasowująca wykresu w DIAdem

Post autor: micard » 27 wrz 2018 10:01

Bo "Curve fitting" to tak na prawdę optymalizacja funkcyjna - a Ty chyba potrzebujsz parametrycznej.

Prostym krokiem byłoby podzielić uzyskane punkty na dwie (y>0; y<=0)lub cztery sektory oddzielone osiami i zrobić curve fitting dla każdej z nich z osobna. Tochę to mało eleganckie, ale zadziała.

Jeśli wiesz, że ma wyjść elipsa to możesz spóbować optymalizacji parametrów elipsy, lub potraktować krzywa jako zamknięty spline

PiDi
Posty: 627
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice
Has thanked: 3 times
Been thanked: 3 times

Re: Funkcja dopasowująca wykresu w DIAdem

Post autor: PiDi » 27 wrz 2018 10:37

Bez danych źródłowych ciężko mi sprawdzić, ale w Analysis -> Curve Fitting jest Calculate Circle Approximation.
circle.png
circle.png (18.47 KiB) Przejrzano 1623 razy
ObrazekObrazekObrazekObrazek

spalinowy
Posty: 106
Rejestracja: 03 lut 2012 15:09
Wersja środowiska: LabVIEW 2017
Lokalizacja: Warszawa
Been thanked: 3 times
Kontakt:

Re: Funkcja dopasowująca wykresu w DIAdem

Post autor: spalinowy » 27 wrz 2018 12:46

Fakt, plik danych będzie pomocny.
No właśnie próbowałem w tym oknie, ale nie udało mi się. Chyba wszystkie opcje z menu testowałem. Inna sprawa, że jeszcze trudniej będzie to zrobić nie poprzez elipsę, bo wykres nie jest nią do końca.
W takim przypadku pozostaje mi pisanie skryptu w VBS dla regresji nieliniowej?
Załączniki
Plik.txt
(49.29 KiB) Pobrany 30 razy

Awatar użytkownika
dajpanspokój
Posty: 146
Rejestracja: 05 lis 2015 08:15
Wersja środowiska: LabVIEW 2016
Has thanked: 4 times
Been thanked: 5 times

Re: Funkcja dopasowująca wykresu w DIAdem

Post autor: dajpanspokój » 27 wrz 2018 19:01

Nie znam diadema, ale nie da sie zamienic tych punktow z kartezjanskiego na polarny i wykreslic graf ktory ma w osi x 0-360?
Mozesz wtedy polaczyc trzy takie grafy (jeden -360 do 0, drugi 0-360 a trzeci 360-720) i zrobic curve fitting, wyciac srodkowy i z powrotem do kartezjanskiego. Sklejanie tych grafow ma na celu sprawienie ze pochodna w 0 i 360 jest taka sama.
Obrazek

Awatar użytkownika
micard
Posty: 180
Rejestracja: 30 wrz 2011 11:28
Wersja środowiska: LabVIEW 2016
Has thanked: 6 times
Been thanked: 6 times
Kontakt:

Re: Funkcja dopasowująca wykresu w DIAdem

Post autor: micard » 28 wrz 2018 10:50

Czyli @dajpanspokój proponujesz prawie to samo - tylko przeniesienie do innych współrzędnych.

Jak już wrzucamy inne przestrzenie na stół - to zaproponuje przejscie w domenę parametrów elipsy (x, y, a, b, fi) i implementację transfotmaty Hough'a dla elipsy:

https://en.wikipedia.org/wiki/Randomize ... _transform
https://stackoverflow.com/questions/630 ... -transform

spalinowy
Posty: 106
Rejestracja: 03 lut 2012 15:09
Wersja środowiska: LabVIEW 2017
Lokalizacja: Warszawa
Been thanked: 3 times
Kontakt:

Re: Funkcja dopasowująca wykresu w DIAdem

Post autor: spalinowy » 28 wrz 2018 11:48

Sprawdziłem rozwiązanie @dajpanspokój i jest jak pisze @micard.
Ciekawy sposób proponujesz @micard, jednak trochę za dużo czasu by mi to zajęło. Ostatecznie wytnę jeden reprezentatywny fragment i będzie po temacie.
Dzięki za pomoc!

ODPOWIEDZ