Dopasowywanie danych eksperymentalnych
1. Wprowadzenie/Przegląd
Podobnie jak można dopasować równanie diody do krzywej prądu w ciemności, aby wyznaczyć współczynnik idealności, OghmaNano umożliwia bezpośrednie dopasowanie pełnych modeli urządzeń do danych eksperymentalnych. Poprzez kalibrację symulacji w oparciu o uzyskane wyniki pomiarów, można odzyskać fizycznie istotne parametry – mobilności, gęstości stanów pułapek, rezystancje kontaktów, współczynniki rekombinacji – w spójnym modelu. W porównaniu z prostymi wzorami analitycznymi, dopasowanie oparte na fizyce zachowuje sprzężenie optyczno-elektryczne i zapewnia bogatsze, bardziej wiarygodne informacje na temat mechanizmów, które wpływają na wydajność. Niniejszy przewodnik wprowadza proces dopasowania w OghmaNano i pokazuje, jak wybrać zmienne, zdefiniować funkcje minimalizacji i uruchomić wydajne, powtarzalne obliczenia.
2. Twój pierwszy strój/ubiór.
OghmaNano zawiera kilka przykładowych symulacji, które ilustrują, jak dopasowywać modele do danych eksperymentalnych. Jedna z nich wykorzystuje prosty model dryfu i dyfuzji jako przykład. Aby uzyskać do niej dostęp, kliknij ikonę „Nowa symulacja” na wstążce „Plik”, aby otworzyć okno „Nowa symulacja” (Rysunek ??). Następnie kliknij dwukrotnie kategorię „Skrypty i dopasowywanie”, aby otworzyć folder przedstawiony na Rysunku ??. Wybierz przykład „Dopasowywanie i ekstrakcja parametrów”, aby załadować przykładowy projekt. Po otwarciu uruchomi się prosta symulacja ogniwa słonecznego (Rysunek ??). Chociaż ta demonstracja skupia się na ogniwie słonecznym, mechanizm dopasowywania można zastosować do dowolnej symulacji i zestawu danych eksperymentalnych.
Po zapisaniu nowej symulacji pojawi się główne okno symulacji (??). Następnie przejdź do zakładki „Automatyzacja” (zaznaczonej na czerwono) i wybierz ikonę „Dopasuj do eksperymentu”, aby otworzyć okno dopasowywania ??.
Określony zakres danych wpływa na sposób przeprowadzania optymalizacji: definiuje on, z których zbiorów danych eksperymentalnych korzystamy i które zmienne symulacyjne są modyfikowane. Można dopasować dane do jednego zbioru, jak pokazano tutaj, lub do wielu zbiorów jednocześnie, co pozwala na bardziej precyzyjne określenie parametrów. Na rysunku ?? niebieska linia przedstawia eksperymentalną krzywą charakterystyki prądowo-napięciowej (JV), która będzie wykorzystywana do dopasowania danych.
💡 Ćwiczenie praktyczne: korzystanie z okna dopasowywania
- Zadanie 1 – Jedna iteracja: Kliknij przycisk „Jedna iteracja”, aby zaktualizować widok dopasowania (??a). Na karcie „Delta = Eksperyment – Symulacja” zobaczysz symulowaną krzywą prądowo-napięciową (niebieska) nałożoną na krzywą prądowo-napięciową z eksperymentu (czerwona), a także zieloną krzywą delty, zdefiniowaną punkt po punkcie jako \( \Delta(V) = J_{\mathrm{exp}}(V) - J_{\mathrm{sim}}(V) \). Dobrym punktem wyjścia jest sytuacja, w której zielona krzywa jest bliska zeru w całym zakresie napięć.
- Zadanie 2 – Uruchom optymalizację: Naciśnij przycisk „Uruchom optymalizację”, aby uruchomić automatyczny algorytm minimalizacji (ponowne naciśnięcie zatrzyma proces). Podczas pierwszych kilku iteracji błąd może chwilowo wzrosnąć, ale następnie powinien się zmniejszyć, gdy krzywe symulacyjne i eksperymentalne zaczną się zbliżać. Przejdź do zakładki „Postęp optymalizacji”, aby wyświetlić wykres przedstawiający zależność błędu od iteracji (??b); ten wykres jest również zapisywany w folderze symulacji w lokalizacji
fitlog.csvw celu późniejszego wykorzystania. W typowej konfiguracji ten etap trwa około 30 sekund.
3. Dodawanie i usuwanie danych
Główne okno służące do dopasowywania danych zawiera pasek narzędzi z poleceniami, które umożliwiają dodawanie, zarządzanie i wykonywanie dopasowań w eksperymentach. Za pomocą tych przycisków można importować lub usuwać zestawy danych, konfigurować, które parametry będą zmieniane, oraz rozpoczynać lub zatrzymywać proces dopasowywania. Najważniejsze opcje to:
- Nowy eksperyment: dodaje kolejny zestaw danych eksperymentalnych do okna dopasowania. Na przykład, można uwzględnić zarówno charakterystykę prądowo-napięciową (JV) w warunkach oświetlenia, jak i w warunkach braku oświetlenia. Dopasowanie do wielu zestawów danych zwiększa wiarygodność wyznaczonych parametrów, ale jednocześnie wydłuża i komplikuje proces dopasowania.
- Usuń eksperyment: Usuwa wybrany zestaw danych z analizy.
- Eksperyment klonowania: tworzy kopię aktualnego zbioru danych.
- Zmień nazwę eksperymentu: umożliwia zmianę nazwy wybranego zestawu danych.
- Eksport danych: zapisuje aktualne ustawienia i dane w postaci skompresowanego pliku ZIP.
- Import danych: Wczytuje zewnętrzne dane eksperymentalne do okna dopasowywania (szczegółowe informacje znajdują się w sekcji „Kreator importu”).
- Konfiguracja: otwiera okno konfiguracyjne, w którym można zdefiniować, które zmienne będą modyfikowane podczas dopasowywania (szczegółowe wyjaśnienie poniżej).
- Pojedyncza iteracja: Wykonuje pojedynczy krok dopasowania, aby sprawdzić, jak bardzo wynik symulacji odpowiada danym eksperymentalnym. Zaleca się użycie tej opcji i ręczne dostosowanie parametrów, aż do uzyskania zadowalającego punktu wyjścia, przed uruchomieniem automatycznego dopasowania.
- Uruchom dopasowanie: uruchamia automatyczny algorytm dopasowania. Proces trwa do momentu ręcznego zatrzymania, co następuje po ponownym naciśnięciu przycisku.
- Dopasuj do tego zbioru danych: Włącza lub wyłącza funkcję dopasowywania dla aktualnie wybranego zbioru danych.
4. Pasek narzędzi „Minimalizuj”
Zakładka „Minimizer” umożliwia sterowanie algorytmem optymalizacji używanym podczas dopasowywania danych. W tej zakładce można wybrać, który algorytm minimalizacji ma być zastosowany (np. domyślny algorytm Neldera-Meada) i skonfigurować jego ustawienia. Zakładka zawiera również narzędzia do zarządzania zmiennymi dopasowywania, kopiowania parametrów i stosowania reguł matematycznych w celu ograniczenia zakresu dopasowywania. Poprzez dostosowanie tych opcji można kontrolować sposób, w jaki algorytm przeszukuje przestrzeń parametrów, znaleźć równowagę między szybkością a dokładnością oraz zapewnić, że podczas procesu dopasowywania będą uwzględniane sensowne fizycznie ograniczenia.
5. Ustawianie wartości zmiennych, aby dopasować je do potrzeb.
Aby otworzyć okno zmiennych dopasowania, przejdź do zakładki „Minimizer” w oknie dopasowania (rycina ??) i kliknij „Zmienne dopasowania”. W tym panelu (rycina ??) możesz wybrać, które parametry będą zmieniane podczas dopasowania, oraz ustawić ich zakresy. Aby przyspieszyć i poprawić proces, zacznij od niewielkiego zestawu symetrycznych parametrów; dodaj więcej (lub wprowadź asymetrię) dopiero po uzyskaniu rozsądnych wstępnych wyników.
Tabela zmiennych „Fit” zawiera siedem kolumn: „Włączone”, „Zmienna”, „Min”, „Max”, „Funkcja błędu”, „Skala logarytmiczna” oraz „Zmienna (JSON)”.
- Włączone: umożliwia lub wyłącza funkcję regulacji zmiennej.
- Zmienna: Opisuje ścieżkę zmiennej, do której mają być dopasowywane dane, w języku angielskim.
- Min: minimalna wartość, jaką może przyjąć dana zmienna.
- Max: Najwyższa wartość, jaką może przyjąć dana zmienna.
- Funkcja błędu: do całkowitego błędu dopasowania dodawana jest kara, jeśli wartość zmiennej wykracza poza jej minimalny i maksymalny zakres. Dzięki temu algorytm jest skutecznie przywracany do dopuszczalnych granic.
- Skala logarytmiczna: dostosowuje wartość parametru do skali logarytmicznej. Przydatna w przypadku zmiennych, których wartości zmieniają się w bardzo szerokim zakresie, co pozwala na analizę całego zakresu.
- Zmienna (JSON): Zazwyczaj ukryta; reprezentuje pełną ścieżkę parametru w formacie
json. Serwer wykorzystuje tę ścieżkę, natomiast ścieżka w języku angielskim służy jedynie do poprawy czytelności i nie zawsze jest dokładna.
6. Kopiowanie zmiennych
Otwórz okno „Duplikuj zmienne” w menu „Minimizer” (??). To narzędzie kopiuje wartość parametru źródłowego do parametru docelowego w każdej iteracji. W przykładzie dotyczącym symetrycznego urządzenia dopasowujemy tylko parametr związany z elektronami, a następnie używamy funkcji „Duplikuj zmienne”, aby skopiować jego wartość do odpowiadającego mu parametru związanego z dziurami, utrzymując ich równość przez cały proces dopasowywania (zob. ??).
Kolumna „Funkcja y = f(x)” określa, w jaki sposób wartość źródłowa x jest modyfikowana przed zapisaniem jej w miejscu docelowym y. Domyślna opcja x polega na bezpośrednim kopiowaniu; możliwe są również inne opcje, takie jak 2*x (podwojenie wartości) lub x + 0.05 (zastosowanie przesunięcia).
7. Zasady dopasowania.
Okno „Reguły dopasowania” (??), dostępne z poziomu karty „Minimalizacja”, umożliwia stosowanie ograniczeń matematycznych do procesu dopasowania. Reguły dodają karę do funkcji błędu, gdy dane warunki nie są spełnione. Na przykład, można określić, że jeden parametr musi zawsze być większy od innego, lub zastosować karę, jeśli wartość zmiennej wykracza poza dopuszczalny zakres. Pomaga to zachować sens fizyczny dopasowania i zapobiega przeszukiwaniu przez algorytm minimalizacji nierealnych kombinacji parametrów.
x > y, aby wymusić określone relacje między parametrami. Jeśli któreś z ograniczeń zostanie naruszone, do wyniku dopasowania dodawany jest dodatkowy błąd, który kieruje algorytm minimalizacji z powrotem do poprawnego obszaru przestrzeni parametrów.💡 Najważniejsze wskazówki i porady dotyczące dopasowania:
- Ogólnie rzecz biorąc, dopasowanie elementów to skomplikowany proces, który wymaga dużej cierpliwości i precyzyjnych, ręcznych regulacji. Nie należy oczekiwać, że wystarczy kliknąć przycisk, a wszystko zadziała samoistnie – trzeba będzie poświęcić czas i dokładnie pracować, aby uzyskać zadowalający efekt.
- Jeśli model nie pasuje do danych, możliwe, że założyłeś błędne parametry fizyczne dotyczące swojego urządzenia. Model będzie pasował tylko do danych, które są fizycznie prawdopodobne, więc jeśli występuje znaczna rozbieżność, przemyśl, co dokładnie oczekujesz od modelu. Na przykład, jeśli nie możesz uzyskać zgodności wartości \(J_{sc}\) w ogniwie słonecznym, czy możliwe, że materiał, którego używasz, po prostu nie absorbuje wystarczającej liczby fotonów, aby osiągnąć pożądaną wartość \(J_{sc}\)?
- Różne zestawy danych dostarczają różnych rodzajów informacji. Na przykład, charakterystyka prądowo-napięciowa ogniwa słonecznego w ciemności pozwala uzyskać informacje na temat rezystancji bocznej, rezystancji szeregowej oraz niektórych parametrów związanych z ruchliwością nośników i rekombinacją. Natomiast charakterystyka prądowo-napięciowa ogniwa słonecznego w świetle dostarcza bardzo niewiele informacji na temat rezystancji bocznej, dlatego nie należy oczekiwać, że pozwoli ona na dokładne oszacowanie \(R_{shunt}\). Zawsze należy zastanowić się, jakie informacje zawierają dane, zanim przystąpi się do interpretacji dopasowanych parametrów.
- Proces dopasowywania przebiega w następujący sposób: 1) uruchamiana jest symulacja; 2) obliczana jest różnica między wynikami numerycznymi a eksperymentalnymi; 3) modyfikowane są parametry; 4) symulacja jest uruchamiana ponownie, a następnie sprawdzane jest, czy błąd się zmniejsza; 5) jeśli błąd się zmniejsza, zmiana parametrów jest akceptowana, a proces się powtarza. Może to wymagać setek lub tysięcy iteracji. Dlatego pojedyncze symulacje muszą przebiegać szybko. Na przykład, jeśli siatka liczy 1000 punktów, spróbuj zmniejszyć ją do 10 w celu dopasowania; jeśli masz 1000 kroków czasowych, zmniejsz do 100. Każde przyspieszenie w podstawowej symulacji przyspiesza proces dopasowywania.
- Zapisywanie plików na dysku to... najwolniejsza część każdego procesu obliczeniowego. Nawet nowoczesne dyski SSD są około 30 razy wolniejsze niż pamięć RAM (np. 456 MB/s w porównaniu do 12 800 MB/s dla PC3-12800). Korzystanie z dysków USB, pamięci sieciowej lub usług w chmurze, takich jak OneDrive/Dropbox, jeszcze bardziej pogarsza sytuację. Aby uzyskać najlepszą wydajność, zawsze zapisuj symulacje na lokalnym dysku SSD (a nie na dysku sieciowym lub mechanicznym).
- Zminimalizuj liczbę plików generowanych przez symulację. Wyłącz niepotrzebne opcje, takie jak tworzenie migawek, generowanie danych wyjściowych w formacie graficznym lub dynamicznych folderów. Dobrze skonfigurowana symulacja powinna generować około 50 plików. Jeśli zauważysz, że liczba plików jest znacznie większa, sprawdź, dlaczego tak się dzieje.
- Chociaż dopasowanie można przeprowadzić w interfejsie graficznym, często jest to proces czasochłonny. Dobrą praktyką jest konfigurowanie parametrów dopasowania w interfejsie graficznym, ale uruchamianie samego procesu z poziomu wiersza poleceń (instrukcje znajdują się poniżej).
- Ponieważ proces dopasowywania generuje wiele plików, które są zapisywane na dysku, oprogramowanie antywirusowe może spowalniać działanie systemu, skanując każdy z nich. Jeśli to stanie się problemem, rozważ wyłączenie skanowania w czasie rzeczywistym dla folderu zawierającego pliki symulacji.
👉 Następny krok: przejdź do sekcji Część B, aby zapoznać się z bardziej zaawansowanymi metodami dopasowywania.