Program do exportowania danych z charakterystyk

Układy półprzewodnikowe pełniące ważne funkcje pomocnicze w układach lampowych.

Moderatorzy: gsmok, tszczesn, Romekd, Einherjer, OTLamp

Awatar użytkownika
TooL46_2
1875...2499 postów
1875...2499 postów
Posty: 2048
Rejestracja: ndz, 20 lipca 2008, 12:06
Lokalizacja: Seattle, WA

Program do exportowania danych z charakterystyk

Post autor: TooL46_2 »

Czolem,

Jako, ze jestem len i nie lubie recznie sie bawic w exportowanie danych z charakterystyk, napisalem sobie maly program do 'extrahowania' tychze. Program dziala sobie w Pythonie. Po krotce:

1. Ladujemy sobie charakterystyke (JPEG lub PNG).
1_load.png
2. Ustalamy 'rozdzielczosc' osi napiecia oraz pradu.
2a. Klikamy 'Annotate axes'.
2_a_annotate.png
2b. Rysujemy linie z punktu 0 do konca osi lub jakiegos punktu charakterystycznego na tejze (np. 3ma w przypadku 12AX7). W okienku ustalamy punkty: poczatkowy oraz koncowy. Po zaakceptowaniu tychze punktow -- na wykresie pojawia sie oznaczenia dla zweryfikowania, czy wszystko zostalo opisane jak nalezy.
2_b_annotate.png
Powtarzamy dla drugiej osi.

3a. Nastepnie, dla kazdej z linii na charakterystyce, zaczynamy z punktu '0' i malymi odcinkami rysujemy sobie linie ktora jak najblizej sie pokrywa z krzywa. Algorytm ponizej wykrywa najblizsze linie wiec tutaj nie musimy byc super dokladni ale im blizej linii -- tym mniej potencjalnych bledow algorytm moze wykonac... ;)
3_a_line.png
3b. Opisujemy sobie linie nadajac jej nazwe.
3_b_line.png
3c. Kiedy juz opiszemy linie -- wyestymowana linia jest wrysowana w wykres w kolorze niebieskim co bysmy wiedzieli, ktore linie juz opisalismy.
3_c_line.png
Procedure powtarzamy dla pozostalych linii.

4. Nastepnie, zanim zapiszemy dane, musimy nazwac nasza lampke i zdefiniowac rozdzielczosc dla napiecia. Po kliknieciu na 'Save Annotations' mozemy sobie wybrac folder w ktorym dane zostana zapisane; raz wybrany folder bedzie zapamietany dla calej sesji uzywania programu. Program eksportuje dwa pliki CSV: jeden z charakterystykami dla zdefiniowanej rozdzielczosci (w ponizszym przykladzie -- kazdy punkt bedzie wielokrotnoscia 10V) oraz 'high-res', gdzie kazdy pixel wraz z napieciem / pradem jest opisany.
4_a_save.png
4_b_save.png
Ostatecznie, pliki CSV mozna sobie wrzucic do Excela, stworzyc tabele przestawna (pivot table) i wyrysowac wykres. W nastepnym odcinku planuje dodac automatyczne generowanie modeli Spice.
5_chart.png
Niebawem bede troche podrozowal ale planuje opublikowac ten programik na Githubie wraz z opcja sciagniecia programu wykonywalnego dla Windows, Linux, oraz MacOSX; musze tylko kod troche posprzatac i znalezc chwile, by ustawic CI/CD pipeline na githubie.

Jakbyscie znalezli jakies wieksze 'byki' to: comment below :)
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Pozdr,
-Tomek Drabas
________
‎"One should not pursue goals that are easily achieved. One must develop an instinct for what one can just barely achieve through one's greatest efforts."
—Albert Einstein

tomdrabas.com
Einherjer
2500...3124 posty
2500...3124 posty
Posty: 2647
Rejestracja: pt, 22 stycznia 2010, 18:34
Lokalizacja: Wałbrzych

Re: Program do exportowania danych z charakterystyk

Post autor: Einherjer »

Jak to robisz w Pythonie, to po co Ci Excel do wykresów? Matplotlib zrobi to ładniej 8)
Awatar użytkownika
TooL46_2
1875...2499 postów
1875...2499 postów
Posty: 2048
Rejestracja: ndz, 20 lipca 2008, 12:06
Lokalizacja: Seattle, WA

Re: Program do exportowania danych z charakterystyk

Post autor: TooL46_2 »

Ja robie w Pythonie ale nie kazdy tak chce lub lubi :)
Pozdr,
-Tomek Drabas
________
‎"One should not pursue goals that are easily achieved. One must develop an instinct for what one can just barely achieve through one's greatest efforts."
—Albert Einstein

tomdrabas.com
Einherjer
2500...3124 posty
2500...3124 posty
Posty: 2647
Rejestracja: pt, 22 stycznia 2010, 18:34
Lokalizacja: Wałbrzych

Re: Program do exportowania danych z charakterystyk

Post autor: Einherjer »

Jakby wykresy się "same zrobiły" to wielu myślę by lubiło :lol:
Awatar użytkownika
TooL46_2
1875...2499 postów
1875...2499 postów
Posty: 2048
Rejestracja: ndz, 20 lipca 2008, 12:06
Lokalizacja: Seattle, WA

Re: Program do exportowania danych z charakterystyk

Post autor: TooL46_2 »

Alez oczywiscie mozna dodac :) Zerkam na razie na CI / CD w Github actions zeby zbudowac binarki na wszystkie platformy najpierw. Potem bedziemy dodawac wiecej. 8)

Jesli wiecej osob bedzie 'lubilo' to prosze o kolejne propozycje i pomalu bedziemy dodawac dodatkowe funkcjonalnosci.
Pozdr,
-Tomek Drabas
________
‎"One should not pursue goals that are easily achieved. One must develop an instinct for what one can just barely achieve through one's greatest efforts."
—Albert Einstein

tomdrabas.com
Einherjer
2500...3124 posty
2500...3124 posty
Posty: 2647
Rejestracja: pt, 22 stycznia 2010, 18:34
Lokalizacja: Wałbrzych

Re: Program do exportowania danych z charakterystyk

Post autor: Einherjer »

Jak upublicznisz projekt na githubie to spróbuję coś od siebie dorzucić w wolnej chwili.
Awatar użytkownika
TooL46_2
1875...2499 postów
1875...2499 postów
Posty: 2048
Rejestracja: ndz, 20 lipca 2008, 12:06
Lokalizacja: Seattle, WA

Re: Program do exportowania danych z charakterystyk

Post autor: TooL46_2 »

Jak najbardziej! :) Kod jest tutaj: https://github.com/drabastomek/vacu_graph. Troche mi zeszlo, by przekonac pyinstaller do poprawnego pakowania wielo-zrodlowej aplikacji, ale w koncu sie dalo.

By zbudowac, z glownego folderu:

Kod: Zaznacz cały

pyinstaller --onefile --windowed --name vacu_graph --paths=. vacu_graph/app.py 
Zbudowana aplikacja bedzie w folderze dist.
Pozdr,
-Tomek Drabas
________
‎"One should not pursue goals that are easily achieved. One must develop an instinct for what one can just barely achieve through one's greatest efforts."
—Albert Einstein

tomdrabas.com