Головна Приклади Знімки екрана Інструкція користувача Логотип Bluesky. YouTube ☰
OghmaNano Мультифізична платформа для моделювання оптоелектронних пристроїв і фотонних систем. ЗАВАНТАЖИТИ Короткий посібник зі швидкого старту

Підгонка експериментальних даних.

1. Загальний огляд

Так само, як ви можете підібрати рівняння діода до кривої темнового струму-напруги (IV), щоб визначити ідеальний коефіцієнт, OghmaNano дозволяє безпосередньо підібрати повні моделі пристроїв до експериментальних даних. Завдяки калібруванню моделювання на основі ваших вимірювань, ви можете отримати фізично значущі параметри – рухливість носіїв, концентрацію станів пасток, контактний опір, коефіцієнти рекомбінації – в межах узгодженої системи. Порівняно з простими аналітичними формулами, фізично обґрунтоване підбирання зберігає оптико-електричну взаємодію та забезпечує більш детальне та надійне розуміння механізмів, що визначають характеристики пристрою. У цьому посібнику представлено процес підбирання в OghmaNano та показано, як вибирати змінні, обирати алгоритми мінімізації та виконувати ефективне, відтворюване підбирання.

2. Ваш перший примір.

OghmaNano містить кілька демонстраційних симуляцій, які показують, як підібрати моделі до експериментальних даних. Одна з них використовує просту модель дрейфу-дифузії як приклад. Щоб отримати до неї доступ, натисніть на значок «Нова симуляція» на стрічці «Файл», щоб відкрити вікно «Нова симуляція» (рис. ??). Звідти двічі клацніть на категорії «Створення сценаріїв і підбір параметрів», щоб відкрити папку, показану на рис. ??. Виберіть приклад «Підбір параметрів і вилучення даних», щоб завантажити демонстраційний проєкт. Після відкриття запускається проста симуляція сонячної батареї (рис. ??). Хоча ця демонстрація зосереджена на сонячній батареї, механізм підбору параметрів можна застосувати до будь-якої симуляції та набору експериментальних даних.

The 'New simulation' window showing different device categories in OghmaNano. The 'Scripting and fitting' category is highlighted.
Нове вікно моделювання. Виберіть категорію «Створення сценаріїв і налаштування», щоб переглянути приклади налаштувань.
The 'Scripting and fitting' folder opened, highlighting the 'Fitting and parameter extraction example'.
У папці «Скрипти та налаштування». Двічі клацніть на прикладі «Налаштування та отримання параметрів», щоб завантажити демонстраційний проєкт.

Після збереження нової симуляції з’явиться головне вікно симуляції (??). Звідси перейдіть до вкладки «Автоматизація» (виділено червоним кольором) і виберіть піктограму «Підігнати до експерименту», щоб відкрити вікно налаштування ??.

OghmaNano Automation ribbon with the 'Fit to experiment' icon highlighted, and a 3D solar cell device structure displayed in the main window.
На панелі інструментів «Автоматизація» в OghmaNano відображається піктограма «Налаштувати для експерименту». Вибір цієї опції відкриває головне вікно налаштування.
The OghmaNano fitting window with an experimental JV curve loaded into the workspace.
Відкривається вікно, в якому відображається імпортований набір експериментальних даних, підготовлений для аналізу та налаштування параметрів.

Налаштування параметрів визначає, як виконується оптимізація: воно вказує, які набори експериментальних даних використовуються та які змінні моделювання коригуються. Можна налаштувати параметри для одного набору даних, як показано тут, або для кількох наборів даних одночасно, щоб отримати більш точні результати. На рисунку ?? синя лінія представляє експериментальну криву залежності струму від напруги, яка буде використана для налаштування параметрів.

💡 Практичне завдання: використання вікна налаштувань.

  1. Завдання 1 – Одна ітерація: натисніть кнопку «Одна ітерація», щоб оновити відображення результатів моделювання (??a). На вкладці «Дельта = Експеримент – Моделювання» ви побачите змодельовану криву струму-напруги (синя) накладеною на експериментальну криву струму-напруги (червона), а також зелену криву дельти, визначену для кожної точки як \( \Delta(V) = J_{\mathrm{exp}}(V) - J_{\mathrm{sim}}(V) \). Хорошою відправною точкою є ситуація, коли зелена крива близька до нуля на всьому діапазоні напруги.
  2. Завдання 2 – Запуск оптимізації: натисніть кнопку «Запуск оптимізації», щоб запустити автоматичний алгоритм мінімізації (повторне натискання зупинить процес). Під час перших кількох ітерацій похибка може короткочасно збільшитися, але згодом вона має зменшитися, оскільки змодельована та експериментальна криві зближуються. Перейдіть на вкладку «Прогрес оптимізації», щоб відобразити графік залежності похибки від ітерації (??b); цей графік також зберігається у папці симуляції за адресою fitlog.csv для подальшого використання. Зазвичай на цьому етапі процес займає близько 30 секунд.
OghmaNano fitting window showing simulated (blue), experimental (red), and delta (green) JV curves after running one fit iteration.
а) Після одного циклу ітерацій: змодельовані (сині), експериментальні (червоні) та дельта-криві (зелені) характеристики вольт-амперної характеристики.
OghmaNano fit progress window showing the error function decreasing over successive iterations, indicating convergence.
б) Динаміка покращення: значення функції помилки зменшується зі збільшенням кількості ітерацій, що свідчить про збіжність.

3. Додавання та видалення даних

Основне вікно налаштування містить панель інструментів із командами, за допомогою яких можна керувати процесом додавання, організації та налаштування експериментів. За допомогою цих кнопок можна імпортувати або видаляти набори даних, налаштовувати параметри, які змінюються, а також запускати або зупиняти процес налаштування. Найважливіші параметри:

4. Смужка мінімізації вікон

Панель «Мінімізатор» забезпечує керування алгоритмом оптимізації, який використовується під час підгонки даних. На цій вкладці ви можете вибрати, який мінімізатор застосувати (наприклад, стандартний алгоритм Nelder–Mead) і налаштувати його параметри. Крім того, на цій панелі є інструменти для керування змінними підгонки, дублювання параметрів і застосування математичних правил для обмеження процесу підгонки. Налаштовуючи ці параметри, ви можете контролювати, як алгоритм досліджує простір параметрів, знаходити баланс між швидкістю та точністю, а також забезпечувати дотримання фізично обґрунтованих обмежень під час процесу підгонки.

OghmaNano fitting window showing the Minimizer tab with options for fitting variables, duplicate variables, fit rules, and minimizer selection (Nelder–Mead highlighted).
Вкладка «Мінімізатор» у вікні налаштувань, де можна вибрати алгоритм оптимізації (наприклад, Nelder–Mead) і налаштувати правила, дублювання змінних та параметри мінімізатора.

5. Налаштування змінних для досягнення потрібних параметрів.

OghmaNano Fit variables window showing a list of enabled and disabled parameters such as charge density, mobility, trap densities, and resistances, with controls for min, max, error function, and log scale.
Вікно «Змінні для оптимізації». Цей інтерфейс дає змогу вибрати, які параметри змінюватимуться під час оптимізації, а також вказати допустимі діапазони їх значень, штрафні коефіцієнти за похибки та масштабування. Увімкнення або вимкнення змінних тут безпосередньо впливає на те, як алгоритм мінімізації досліджує простір параметрів.

Щоб відкрити вікно зі змінними для оптимізації, перейдіть на вкладку «Мінімізатор» у вікні налаштування (рис. ??) і натисніть «Змінні для налаштування». На цій панелі (рис. ??) ви можете вибрати, які параметри змінюватимуться під час налаштування, і встановити їхні межі. Для забезпечення швидкості та надійності почніть з невеликої кількості симетричних параметрів; додавайте інші (або вводьте асиметрію) лише після отримання прийнятного початкового результату налаштування.

Таблиця змінних для налаштування містить сім стовпців: «Увімкнено», «Змінна», «Мінімум», «Максимум», «Функція обчислення похибки», «Логарифмічна шкала» та «Змінна (JSON)».

6. Дублювання змінних

OghmaNano Duplicate variables window showing a table that maps source variables, such as electron mobility or trap densities, onto destination variables to enforce symmetry during fitting.
Вікно «Дублювання змінних». Цей інструмент копіює значення з вихідної змінної до цільової, забезпечуючи збереження симетрії параметрів під час налаштування (наприклад, узгодження рухливості електронів і дірок).

Відкрийте вікно «Дублювати змінні» на стрічці інструментів «Мінімізатор» (??). Цей інструмент копіює значення вихідного параметра до цільового параметра на кожній ітерації. У прикладі з симетричним пристроєм ми налаштовуємо лише параметр, що відповідає за електрони, і використовуємо функцію «Дублювати змінні», щоб скопіювати його значення до відповідного параметра, що відповідає за дірки, зберігаючи їх рівними протягом усього процесу налаштування (див. ??).

У стовпці «Функція y = f(x)» визначається, яким чином вихідне значення x змінюється перед тим, як воно буде записане в пункт призначення y. За замовчуванням x виконується пряме копіювання; також можливі інші варіанти, наприклад, 2*x (подвоєння значення) або x + 0.05 (застосування зміщення).

7. Правила відповідності вимогам.

Вікно «Правила підгонки» (??), до якого можна отримати доступ зі стрічки «Мінімізатор», дозволяє застосовувати математичні обмеження до процесу підгонки. Правила додають штраф до функції похибки, коли порушується певна умова. Наприклад, можна встановити, що один параметр завжди має бути більшим за інший, або застосувати штраф, якщо значення змінної виходить за межі допустимого діапазону. Це допомагає забезпечити фізичну обґрунтованість результатів підгонки та запобігає дослідженню нереалістичних комбінацій параметрів мінімізатором.


OghmaNano Fit rules window showing a table where constraints such as x > y can be defined between variables, with options to enable or disable each rule.
Вікно налаштувань параметрів. Тут користувачі можуть визначати обмеження, наприклад x > y, щоб встановити зв’язки між параметрами. Якщо правило порушено, до результатів налаштування додається додаткова помилка, яка спрямовує алгоритм оптимізації назад до допустимої області параметрів.

💡 Основні поради та лайфхаки для підбору:

  1. Загалом, процес підгонки вимагає великої кількості терпіння та ретельного ручного налаштування. Не варто очікувати, що достатньо буде натиснути кнопку, і все запрацює — потрібно буде ретельно попрацювати, щоб досягти бажаного результату.
  2. Якщо модель не дає очікуваних результатів, можливо, проблема полягає в невірних фізичних припущеннях, які ви зробили щодо вашого пристрою. Модель працюватиме лише з фізично обґрунтованими даними, тому, якщо спостерігається значна розбіжність, варто переглянути, що саме ви намагаєтеся отримати від моделі. Наприклад, якщо вам не вдається досягти відповідності \(J_{sc}\) у сонячній батареї, можливо, причина в тому, що ваш матеріал просто не поглинає достатньо фотонів для досягнення бажаного значення \(J_{sc}\)?
  3. Різні набори даних містять різні типи інформації. Наприклад, темна крива залежності струму від напруги (JV-крива) сонячної батареї дає уявлення про паралельний опір, послідовний опір і деякі деталі, пов’язані з рухливістю носіїв заряду та рекомбінацією. Однак світла JV-крива практично не містить інформації про паралельний опір, тому не варто очікувати, що вона надасть точні оцінки \(R_{shunt}\). Завжди аналізуйте, яку інформацію містять ваші дані, перш ніж інтерпретувати отримані параметри.
  4. Процес оптимізації відбувається наступним чином: 1) запускається моделювання; 2) обчислюється різниця між числовими та експериментальними результатами; 3) коригуються параметри; 4) повторно запускається моделювання та перевіряється, чи зменшується похибка; 5) якщо похибка зменшується, зміни параметрів приймаються, і процес повторюється. Це може зайняти сотні або тисячі ітерацій. Тому окремі моделювання повинні виконуватися швидко. Наприклад, якщо ваша сітка містить 1000 точок, спробуйте зменшити її до 10 для оптимізації; якщо у вас 1000 часових кроків, зменште їх до 100. Будь-яке прискорення базового моделювання прискорює процес оптимізації.
  5. Запис файлів на диск — це найповільніша частина будь-якого обчислювального процесу. Навіть сучасні твердотільні накопичувачі (SSD) приблизно в 30 разів повільніші за оперативну пам’ять (наприклад, 456 МБ/с проти 12 800 МБ/с для PC3-12800). Використання USB-накопичувачів, мережевих сховищ або хмарних сервісів, таких як OneDrive/Dropbox, ще більше погіршує ситуацію. Для досягнення максимальної швидкості завжди зберігайте результати моделювання на локальному твердотільному накопичувачі (а не на мережевому або механічному).
  6. Зменште кількість файлів, які генерує ваша симуляція. Вимкніть непотрібні вихідні дані, такі як знімки екрана, оптичний вивід або динамічні папки. Добре налаштована симуляція має генерувати приблизно 50 файлів. Якщо ви бачите сотні файлів, з’ясуйте причину.
  7. Хоча налаштування можна виконувати в графічному інтерфейсі, це часто займає багато часу. Найкраще налаштувати параметри в графічному інтерфейсі, а запускати процес – через командний рядок (інструкції наведено нижче).
  8. Оскільки процес обчислення передбачає запис великої кількості файлів на диск, антивірусне програмне забезпечення може сповільнювати роботу, скануючи кожен файл. Якщо це стає проблемою, розгляньте можливість виключення папки з файлами моделювання зі списку для сканування в режимі реального часу.

👉 Наступний крок: Перейдіть до розділу Частина B, де розглядатимуться більш складні методи підгонки.