Підгонка експериментальних даних.
1. Загальний огляд
Так само, як ви можете підібрати рівняння діода до кривої темнового струму-напруги (IV), щоб визначити ідеальний коефіцієнт, OghmaNano дозволяє безпосередньо підібрати повні моделі пристроїв до експериментальних даних. Завдяки калібруванню моделювання на основі ваших вимірювань, ви можете отримати фізично значущі параметри – рухливість носіїв, концентрацію станів пасток, контактний опір, коефіцієнти рекомбінації – в межах узгодженої системи. Порівняно з простими аналітичними формулами, фізично обґрунтоване підбирання зберігає оптико-електричну взаємодію та забезпечує більш детальне та надійне розуміння механізмів, що визначають характеристики пристрою. У цьому посібнику представлено процес підбирання в OghmaNano та показано, як вибирати змінні, обирати алгоритми мінімізації та виконувати ефективне, відтворюване підбирання.
2. Ваш перший примір.
OghmaNano містить кілька демонстраційних симуляцій, які показують, як підібрати моделі до експериментальних даних. Одна з них використовує просту модель дрейфу-дифузії як приклад. Щоб отримати до неї доступ, натисніть на значок «Нова симуляція» на стрічці «Файл», щоб відкрити вікно «Нова симуляція» (рис. ??). Звідти двічі клацніть на категорії «Створення сценаріїв і підбір параметрів», щоб відкрити папку, показану на рис. ??. Виберіть приклад «Підбір параметрів і вилучення даних», щоб завантажити демонстраційний проєкт. Після відкриття запускається проста симуляція сонячної батареї (рис. ??). Хоча ця демонстрація зосереджена на сонячній батареї, механізм підбору параметрів можна застосувати до будь-якої симуляції та набору експериментальних даних.
Після збереження нової симуляції з’явиться головне вікно симуляції (??). Звідси перейдіть до вкладки «Автоматизація» (виділено червоним кольором) і виберіть піктограму «Підігнати до експерименту», щоб відкрити вікно налаштування ??.
Налаштування параметрів визначає, як виконується оптимізація: воно вказує, які набори експериментальних даних використовуються та які змінні моделювання коригуються. Можна налаштувати параметри для одного набору даних, як показано тут, або для кількох наборів даних одночасно, щоб отримати більш точні результати. На рисунку ?? синя лінія представляє експериментальну криву залежності струму від напруги, яка буде використана для налаштування параметрів.
💡 Практичне завдання: використання вікна налаштувань.
- Завдання 1 – Одна ітерація: натисніть кнопку «Одна ітерація», щоб оновити відображення результатів моделювання (??a). На вкладці «Дельта = Експеримент – Моделювання» ви побачите змодельовану криву струму-напруги (синя) накладеною на експериментальну криву струму-напруги (червона), а також зелену криву дельти, визначену для кожної точки як \( \Delta(V) = J_{\mathrm{exp}}(V) - J_{\mathrm{sim}}(V) \). Хорошою відправною точкою є ситуація, коли зелена крива близька до нуля на всьому діапазоні напруги.
- Завдання 2 – Запуск оптимізації: натисніть кнопку «Запуск оптимізації», щоб запустити автоматичний алгоритм мінімізації (повторне натискання зупинить процес). Під час перших кількох ітерацій похибка може короткочасно збільшитися, але згодом вона має зменшитися, оскільки змодельована та експериментальна криві зближуються. Перейдіть на вкладку «Прогрес оптимізації», щоб відобразити графік залежності похибки від ітерації (??b); цей графік також зберігається у папці симуляції за адресою
fitlog.csvдля подальшого використання. Зазвичай на цьому етапі процес займає близько 30 секунд.
3. Додавання та видалення даних
Основне вікно налаштування містить панель інструментів із командами, за допомогою яких можна керувати процесом додавання, організації та налаштування експериментів. За допомогою цих кнопок можна імпортувати або видаляти набори даних, налаштовувати параметри, які змінюються, а також запускати або зупиняти процес налаштування. Найважливіші параметри:
- Новий експеримент: додає ще один набір експериментальних даних до вікна для аналізу. Наприклад, можна включити як світлу, так і темну криву струму-напруги. Аналіз на основі кількох наборів даних підвищує надійність отриманих параметрів, але водночас ускладнює та сповільнює процес аналізу.
- Видалити експеримент: видаляє вибраний набір даних із результатів аналізу.
- Експеримент із клонуванням: створює копію поточного набору даних.
- Перейменувати експеримент: дозволяє змінити назву вибраного набору даних.
- Експорт даних: зберігає поточні налаштування та дані у вигляді стиснутого ZIP-архіву.
- Імпорт даних: завантажує зовнішні експериментальні дані у вікно для налаштування (детальнішу інформацію див. у розділі «Майстер імпорту»).
- Налаштування: відкриває вікно налаштувань, де можна визначити, які параметри будуть змінюватися під час підгонки даних (детальніше описано нижче).
- Один цикл: виконує один етап підгонки даних, щоб перевірити, наскільки результати моделювання відповідають експериментальним даним. Рекомендується використовувати цей варіант і вручну налаштовувати параметри, доки не буде отримано прийнятну початкову точку, перш ніж запускати автоматизовану підгонку.
- Запустити автоматичне налаштування: активує автоматизований алгоритм налаштування. Процес триває доти, доки його не буде зупинено вручну повторним натисканням кнопки.
- Застосувати до цього набору даних: увімкнути або вимкнути функцію підгонки для поточного вибраного набору даних.
4. Смужка мінімізації вікон
Панель «Мінімізатор» забезпечує керування алгоритмом оптимізації, який використовується під час підгонки даних. На цій вкладці ви можете вибрати, який мінімізатор застосувати (наприклад, стандартний алгоритм Nelder–Mead) і налаштувати його параметри. Крім того, на цій панелі є інструменти для керування змінними підгонки, дублювання параметрів і застосування математичних правил для обмеження процесу підгонки. Налаштовуючи ці параметри, ви можете контролювати, як алгоритм досліджує простір параметрів, знаходити баланс між швидкістю та точністю, а також забезпечувати дотримання фізично обґрунтованих обмежень під час процесу підгонки.
5. Налаштування змінних для досягнення потрібних параметрів.
Щоб відкрити вікно зі змінними для оптимізації, перейдіть на вкладку «Мінімізатор» у вікні налаштування (рис. ??) і натисніть «Змінні для налаштування». На цій панелі (рис. ??) ви можете вибрати, які параметри змінюватимуться під час налаштування, і встановити їхні межі. Для забезпечення швидкості та надійності почніть з невеликої кількості симетричних параметрів; додавайте інші (або вводьте асиметрію) лише після отримання прийнятного початкового результату налаштування.
Таблиця змінних для налаштування містить сім стовпців: «Увімкнено», «Змінна», «Мінімум», «Максимум», «Функція обчислення похибки», «Логарифмічна шкала» та «Змінна (JSON)».
- Увімкнено: дозволяє вмикати або вимикати функцію регулювання.
- Змінна: описує шлях до змінної, значення якої потрібно визначити, англійською мовою.
- Min: Мінімальне значення, яке може приймати змінна.
- Макс: максимальне значення, яке може приймати змінна.
- Функція обробки помилок: до загальної похибки під час налаштування додається штраф, якщо значення змінної виходить за межі встановленого мінімального та максимального діапазону. Це фактично змушує алгоритм повернутися до допустимих меж.
- Логарифмічна шкала: застосовує логарифмічну шкалу для відображення параметра. Корисно для змінних, значення яких охоплюють широкий діапазон, щоб забезпечити аналіз усього діапазону.
- Змінна (JSON): зазвичай прихована; містить повний шлях до параметра у форматі
json. Бекенд використовує цей шлях, тоді як англійська версія шляху призначена лише для зручності читання і не завжди є абсолютно точною.
6. Дублювання змінних
Відкрийте вікно «Дублювати змінні» на стрічці інструментів «Мінімізатор» (??). Цей інструмент копіює значення вихідного параметра до цільового параметра на кожній ітерації. У прикладі з симетричним пристроєм ми налаштовуємо лише параметр, що відповідає за електрони, і використовуємо функцію «Дублювати змінні», щоб скопіювати його значення до відповідного параметра, що відповідає за дірки, зберігаючи їх рівними протягом усього процесу налаштування (див. ??).
У стовпці «Функція y = f(x)» визначається, яким чином вихідне значення x змінюється перед тим, як воно буде записане в пункт призначення y. За замовчуванням x виконується пряме копіювання; також можливі інші варіанти, наприклад, 2*x (подвоєння значення) або x + 0.05 (застосування зміщення).
7. Правила відповідності вимогам.
Вікно «Правила підгонки» (??), до якого можна отримати доступ зі стрічки «Мінімізатор», дозволяє застосовувати математичні обмеження до процесу підгонки. Правила додають штраф до функції похибки, коли порушується певна умова. Наприклад, можна встановити, що один параметр завжди має бути більшим за інший, або застосувати штраф, якщо значення змінної виходить за межі допустимого діапазону. Це допомагає забезпечити фізичну обґрунтованість результатів підгонки та запобігає дослідженню нереалістичних комбінацій параметрів мінімізатором.
x > y, щоб встановити зв’язки між параметрами. Якщо правило порушено, до результатів налаштування додається додаткова помилка, яка спрямовує алгоритм оптимізації назад до допустимої області параметрів.💡 Основні поради та лайфхаки для підбору:
- Загалом, процес підгонки вимагає великої кількості терпіння та ретельного ручного налаштування. Не варто очікувати, що достатньо буде натиснути кнопку, і все запрацює — потрібно буде ретельно попрацювати, щоб досягти бажаного результату.
- Якщо модель не дає очікуваних результатів, можливо, проблема полягає в невірних фізичних припущеннях, які ви зробили щодо вашого пристрою. Модель працюватиме лише з фізично обґрунтованими даними, тому, якщо спостерігається значна розбіжність, варто переглянути, що саме ви намагаєтеся отримати від моделі. Наприклад, якщо вам не вдається досягти відповідності \(J_{sc}\) у сонячній батареї, можливо, причина в тому, що ваш матеріал просто не поглинає достатньо фотонів для досягнення бажаного значення \(J_{sc}\)?
- Різні набори даних містять різні типи інформації. Наприклад, темна крива залежності струму від напруги (JV-крива) сонячної батареї дає уявлення про паралельний опір, послідовний опір і деякі деталі, пов’язані з рухливістю носіїв заряду та рекомбінацією. Однак світла JV-крива практично не містить інформації про паралельний опір, тому не варто очікувати, що вона надасть точні оцінки \(R_{shunt}\). Завжди аналізуйте, яку інформацію містять ваші дані, перш ніж інтерпретувати отримані параметри.
- Процес оптимізації відбувається наступним чином: 1) запускається моделювання; 2) обчислюється різниця між числовими та експериментальними результатами; 3) коригуються параметри; 4) повторно запускається моделювання та перевіряється, чи зменшується похибка; 5) якщо похибка зменшується, зміни параметрів приймаються, і процес повторюється. Це може зайняти сотні або тисячі ітерацій. Тому окремі моделювання повинні виконуватися швидко. Наприклад, якщо ваша сітка містить 1000 точок, спробуйте зменшити її до 10 для оптимізації; якщо у вас 1000 часових кроків, зменште їх до 100. Будь-яке прискорення базового моделювання прискорює процес оптимізації.
- Запис файлів на диск — це найповільніша частина будь-якого обчислювального процесу. Навіть сучасні твердотільні накопичувачі (SSD) приблизно в 30 разів повільніші за оперативну пам’ять (наприклад, 456 МБ/с проти 12 800 МБ/с для PC3-12800). Використання USB-накопичувачів, мережевих сховищ або хмарних сервісів, таких як OneDrive/Dropbox, ще більше погіршує ситуацію. Для досягнення максимальної швидкості завжди зберігайте результати моделювання на локальному твердотільному накопичувачі (а не на мережевому або механічному).
- Зменште кількість файлів, які генерує ваша симуляція. Вимкніть непотрібні вихідні дані, такі як знімки екрана, оптичний вивід або динамічні папки. Добре налаштована симуляція має генерувати приблизно 50 файлів. Якщо ви бачите сотні файлів, з’ясуйте причину.
- Хоча налаштування можна виконувати в графічному інтерфейсі, це часто займає багато часу. Найкраще налаштувати параметри в графічному інтерфейсі, а запускати процес – через командний рядок (інструкції наведено нижче).
- Оскільки процес обчислення передбачає запис великої кількості файлів на диск, антивірусне програмне забезпечення може сповільнювати роботу, скануючи кожен файл. Якщо це стає проблемою, розгляньте можливість виключення папки з файлами моделювання зі списку для сканування в режимі реального часу.
👉 Наступний крок: Перейдіть до розділу Частина B, де розглядатимуться більш складні методи підгонки.