Home Examples Screenshots User manual Bluesky logo YouTube ☰
OghmaNano Multiphysics simulation platform for optoelectronic devices and photonic systems DOWNLOAD Quick Start guide

Ajustement des données expérimentales.

1. Aperçu général

De la même manière qu’il est possible d’ajuster l’équation de la diode à une courbe JV dans l’obscurité afin d’extraire le facteur d’idéalité, OghmaNano permet d’ajuster directement des modèles complets de dispositifs aux données expérimentales. En calibrant la simulation par rapport à vos mesures, vous pouvez obtenir des paramètres physiquement significatifs – mobilités, densités d’états de piège, résistances de contact, coefficients de recombinaison – dans le cadre d’un modèle cohérent. Par rapport aux formules analytiques simples, un ajustement basé sur la physique préserve le couplage opto-électrique et fournit des informations plus complètes et plus fiables sur les mécanismes qui régissent les performances. Ce tutoriel présente le processus d’ajustement dans OghmaNano et explique comment choisir les variables, sélectionner les algorithmes de minimisation et effectuer des ajustements efficaces et reproductibles.

2. Votre première séance d’essayage.

OghmaNano comprend plusieurs simulations de démonstration qui illustrent la manière d’ajuster des modèles aux données expérimentales. L’une d’entre elles utilise un modèle simple de dérive-diffusion à titre d’exemple. Pour y accéder, cliquez sur l’icône « Nouvelle simulation » dans le ruban « Fichier » afin d’ouvrir la fenêtre « Nouvelle simulation » (figure ??). À partir de là, double-cliquez sur la catégorie « Scripting et ajustement » pour ouvrir le dossier présenté dans la figure ??. Sélectionnez l’exemple « Ajustement et extraction de paramètres » pour charger un projet de démonstration. Une fois ouvert, il lance une simulation simple de cellule solaire (figure ??). Bien que cette démonstration porte sur une cellule solaire, le moteur d’ajustement peut être appliqué à toute simulation et à tout ensemble de données expérimentales.

The 'New simulation' window showing different device categories in OghmaNano. The 'Scripting and fitting' category is highlighted.
La nouvelle fenêtre de simulation. Sélectionnez la catégorie « Scripting et ajustement » pour accéder à des exemples d’ajustement.
The 'Scripting and fitting' folder opened, highlighting the 'Fitting and parameter extraction example'.
Dans le dossier « Scripting et ajustement ». Double-cliquez sur l’exemple « Ajustement et extraction de paramètres » pour charger un projet de démonstration.

Une fois que vous avez enregistré la nouvelle simulation, la fenêtre principale de la simulation s’affiche (??). À partir de là, accédez à l’onglet « Automatisation » (mis en surbrillance en rouge) et sélectionnez l’icône « Adapter aux paramètres de l’expérience » pour ouvrir la fenêtre d’ajustement ??.

OghmaNano Automation ribbon with the 'Fit to experiment' icon highlighted, and a 3D solar cell device structure displayed in the main window.
Le ruban « Automatisation » dans OghmaNano affiche l’icône « Adapter aux paramètres de l’expérience ». En sélectionnant cette option, la fenêtre principale d’adaptation s’ouvre.
The OghmaNano fitting window with an experimental JV curve loaded into the workspace.
La fenêtre s’affiche initialement avec les données expérimentales importées, prêtes à être utilisées pour l’ajustement.

La fenêtre d’ajustement contrôle la manière dont l’optimisation est effectuée : elle précise quels ensembles de données expérimentales sont utilisés et quelles variables de simulation sont ajustées. Vous pouvez effectuer l’ajustement sur un seul ensemble de données, comme illustré ici, ou sur plusieurs ensembles de données simultanément pour une extraction de paramètres plus précise. Dans la figure ??, la ligne bleue représente la courbe expérimentale de courant-tension (JV) qui sera utilisée pour l’ajustement.

💡 Exercice pratique : utilisation de la fenêtre d’ajustement.

  1. Tâche 1 – Une itération : Cliquez sur Une itération. bouton pour mettre à jour la vue de l’ajustement??). Dans Delta = Expérience – Simulation Dans l’onglet, vous verrez la courbe simulée de la jonction photovoltaïque (en bleu) superposée à la courbe expérimentale de la jonction photovoltaïque (en rouge), ainsi que la courbe verte. delta courbe définie point par point comme \( \Delta(V) = J_{\mathrm{exp}}(V) - J_{\mathrm{sim}}(V) \)Un bon point de départ est lorsque la courbe verte se rapproche de zéro sur toute la plage de tension.
  2. Tâche 2 – Exécuter l’optimisation : appuyez sur « Exécuter l’optimisation » pour lancer l’optimiseur automatique (en appuyant à nouveau, vous arrêtez l’optimisation). Au cours des premières étapes, l’erreur peut augmenter brièvement, mais elle devrait ensuite diminuer à mesure que les courbes simulées et expérimentales convergent. Passez à l’onglet « Suivi de l’optimisation » pour afficher l’évolution de l’erreur en fonction du nombre d’itérations (??b) ; ce graphique est également enregistré dans le dossier de simulation, à l’emplacement fitlog.csv, afin de pouvoir être utilisé pour une représentation graphique externe. Dans une configuration typique, cette étape prend environ 30 secondes.
OghmaNano fitting window showing simulated (blue), experimental (red), and delta (green) JV curves after running one fit iteration.
a) Après une itération d’ajustement : courbes caractéristiques simulées (en bleu), expérimentales (en rouge) et représentant la différence (en vert).
OghmaNano fit progress window showing the error function decreasing over successive iterations, indicating convergence.
b) Amélioration de l’ajustement : la fonction d’erreur diminue au fur et à mesure des itérations, ce qui indique une convergence.

3. Ajouter et supprimer des données.

La fenêtre principale d’ajustement propose une barre d’outils contenant des commandes qui permettent de contrôler la manière dont les expériences sont ajoutées, gérées et ajustées. Ces boutons vous permettent d’importer ou de supprimer des ensembles de données, de configurer les paramètres qui seront modifiés, et de démarrer ou d’arrêter le processus d’ajustement. Les options les plus importantes sont les suivantes :

4. La barre d’outils « Réduire ».

Le ruban « Minimizer » permet de contrôler l’algorithme d’optimisation utilisé pendant l’ajustement. Dans cet onglet, vous pouvez choisir l’algorithme de minimisation à appliquer (par exemple, l’algorithme Nelder-Mead par défaut) et configurer ses paramètres. Le ruban comprend également des outils pour gérer les variables d’ajustement, dupliquer les paramètres et appliquer des règles mathématiques afin de contraindre l’ajustement. En ajustant ces options, vous pouvez contrôler la manière dont l’algorithme explore l’espace des paramètres, trouver un équilibre entre la vitesse et la précision, et vous assurer que des contraintes physiquement significatives sont appliquées pendant le processus d’ajustement.

OghmaNano fitting window showing the Minimizer tab with options for fitting variables, duplicate variables, fit rules, and minimizer selection (Nelder–Mead highlighted).
L’onglet « Minimiseur » de la fenêtre d’ajustement vous permet de sélectionner l’algorithme d’optimisation (par exemple, Nelder-Mead) et de configurer les règles, la duplication des variables et les paramètres du minimiseur.

5. Définir les valeurs des variables pour les adapter.

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.
La fenêtre des variables à ajuster. Cette interface vous permet de choisir les paramètres qui seront modifiés lors de l’ajustement, et de spécifier leurs plages de valeurs autorisées, les pénalités d’erreur et les facteurs d’échelle. L’activation ou la désactivation des variables ici contrôle directement la manière dont l’algorithme de minimisation explore l’espace des paramètres.

Pour ouvrir la fenêtre des variables d’ajustement, accédez à l’onglet « Minimizer » dans la fenêtre d’ajustement (figure ??) et cliquez sur « Variables d’ajustement ». Ce panneau (figure ??) vous permet de choisir les paramètres qui seront modifiés pendant l’ajustement et de définir leurs limites. Pour une meilleure rapidité et fiabilité, commencez par un petit ensemble de paramètres symétriques ; ajoutez-en d’autres (ou introduisez une asymétrie) seulement après avoir obtenu un premier ajustement satisfaisant.

Le tableau des variables « Fit » contient sept colonnes : Activé, Variable, Minimum, Maximum, Fonction d’erreur, Échelle logarithmique et Variable (JSON).

6. Dupliquer des variables.

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.
La fenêtre des variables dupliquées. Cet outil permet de copier les valeurs d’une variable source vers une variable de destination, en veillant à ce que les paramètres restent symétriques pendant l’ajustement (par exemple, en faisant correspondre les mobilités des électrons et des trous).

Ouvrez la fenêtre « Variables à dupliquer » à partir du ruban « Minimizer » (??). Cet outil permet de reproduire la valeur d’un paramètre source dans un paramètre de destination à chaque itération. Dans l’exemple du dispositif symétrique, nous ajustons uniquement le paramètre du côté des électrons et utilisons la fonction « Variables à dupliquer » pour copier sa valeur dans le paramètre correspondant du côté des trous, en veillant à ce que les deux valeurs restent égales tout au long de l’ajustement (voir ??).

La colonne « Fonction » y = f(x) définit la manière dont la valeur source x est transformée avant d’être écrite dans la destination y. La valeur par défaut x effectue une copie directe ; d’autres options sont possibles, comme dans les exemples 2*x (doubler la valeur) ou x + 0.05 (appliquer un décalage).

7. Règles d’adaptation.

La fenêtre des règles d’ajustement (??), accessible via l’onglet « Minimiseur », vous permet d’appliquer des contraintes mathématiques au processus d’ajustement. Les règles ajoutent une pénalité à la fonction d’erreur chaque fois qu’une condition n’est pas respectée. Par exemple, vous pouvez imposer qu’un paramètre doit toujours être supérieur à un autre, ou appliquer une pénalité si une variable s’écarte d’une plage acceptable. Cela permet de garantir que l’ajustement est physiquement pertinent et empêche le minimiseur d’explorer des combinaisons de paramètres irréalistes.


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.
La fenêtre des règles d’ajustement. Ici, les utilisateurs peuvent définir des contraintes, telles que x > y, afin d’imposer des relations entre les paramètres. Si une règle est enfreinte, une erreur supplémentaire est ajoutée à l’ajustement, ce qui permet de guider l’algorithme de minimisation vers une zone valide de l’espace des paramètres.

💡 Conseils et astuces essentiels pour l’ajustement :

  1. En général, l’ajustement est un processus délicat qui exige beaucoup de patience et de réglages manuels. Ne vous attendez pas à ce qu’il suffise d’appuyer sur un bouton pour que tout fonctionne parfaitement ; vous devrez travailler avec soin pour obtenir un résultat satisfaisant.
  2. Si les résultats ne correspondent pas à ce que vous attendiez, il se peut qu’il y ait un problème avec les hypothèses physiques que vous avez formulées concernant votre dispositif. Le modèle ne s’applique qu’aux données physiquement plausibles. Si les résultats diffèrent considérablement, il est nécessaire de revoir ce que vous demandez au modèle. Par exemple, si vous n’arrivez pas à obtenir la valeur \(J_{sc}\) souhaitée dans une cellule solaire, est-il possible que votre matériau n’absorbe tout simplement pas suffisamment de photons pour atteindre la valeur \(J_{sc}\) que vous visez ?
  3. Différents ensembles de données fournissent différents types d’informations. Par exemple, la courbe JV dans l’obscurité d’une cellule solaire donne des indications sur la résistance de dérivation, la résistance série et certains détails concernant la mobilité et la recombinaison. Cependant, la courbe JV à la lumière ne fournit presque aucune information sur la résistance de dérivation, il ne faut donc pas s’attendre à ce qu’elle fournisse des estimations précises de \(R_{shunt}\). Réfléchissez toujours au type d’informations contenues dans vos données avant d’interpréter les paramètres ajustés.
  4. Le processus d’optimisation fonctionne de la manière suivante : 1) on effectue une simulation ; 2) on calcule la différence entre les résultats numériques et expérimentaux ; 3) on ajuste les paramètres ; 4) on relance la simulation et on vérifie si l’erreur diminue ; 5) si l’erreur diminue, la modification du paramètre est acceptée et le processus se répète. Cela peut nécessiter des centaines, voire des milliers d’itérations. Par conséquent, chaque simulation doit s’exécuter rapidement. Par exemple, si votre maillage comporte 1 000 points, essayez de le réduire à 10 pour l’optimisation ; si vous avez 1 000 pas de temps, réduisez-les à 100. Chaque amélioration de la vitesse de la simulation de base accélère le processus d’optimisation.
  5. L’écriture de fichiers sur le disque est la partie la plus lente de tout processus de calcul. Même les SSD modernes sont environ 30 fois plus lents que la mémoire vive (par exemple, 456 Mo/s contre 12 800 Mo/s pour la PC3-12800). L’utilisation de clés USB, de stockage en réseau ou de services en nuage comme OneDrive/Dropbox ne fait qu’aggraver la situation. Pour une meilleure performance, enregistrez toujours vos simulations sur un SSD local (et non sur un disque dur ou un support de stockage en réseau).
  6. Réduisez au minimum le nombre de fichiers générés par votre simulation. Désactivez les sorties inutiles, telles que les captures d’écran, les données optiques ou les dossiers dynamiques. Une simulation correctement configurée ne devrait générer qu’environ 50 fichiers. Si vous constatez qu’elle en génère des centaines, essayez d’en identifier la cause.
  7. Bien que l’ajustement puisse être effectué dans l’interface graphique, il est souvent lent. Il est recommandé de configurer les paramètres d’ajustement dans l’interface graphique, puis de lancer le processus à partir de la ligne de commande (les instructions sont fournies ci-dessous).
  8. Étant donné que le processus d’ajustement crée de nombreux fichiers sur le disque dur, les logiciels antivirus peuvent ralentir le processus en analysant chaque fichier. Si cela devient un problème, envisagez d’exclure le dossier de simulation de l’analyse en temps réel.

👉 Prochaine étape : Continuez maintenant. Partie B pour des méthodes d’ajustement plus perfectionnées.