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.
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 ??.
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.
- 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.
- 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.
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 :
- Nouvelle expérience : ajoute un autre ensemble de données expérimentales à la fenêtre d’ajustement. Par exemple, vous pouvez inclure à la fois une courbe courant-tension sous éclairage et une courbe courant-tension dans l’obscurité. L’ajustement par rapport à plusieurs ensembles de données améliore la fiabilité des paramètres extraits, mais rend également le processus d’ajustement plus lent et plus complexe.
- Supprimer l’expérience : supprime l’ensemble de données sélectionné de l’ajustement.
- Expérience de clonage : crée une copie du jeu de données actuel.
- Renommer l’expérience : permet de renommer l’ensemble de données sélectionné.
- Exporter les données : enregistre l’ajustement et les données actuels dans un fichier ZIP compressé.
- Importer des données : importe des données expérimentales externes dans la fenêtre d’ajustement (voir la section « Assistant d’importation » pour plus de détails).
- Configurer : ouvre la fenêtre de configuration qui permet de définir les variables qui seront ajustées pendant l’optimisation (voir les explications détaillées ci-dessous).
- Une itération : effectue une seule étape d’ajustement pour vérifier à quel point la simulation se rapproche des données expérimentales. Il est recommandé d’utiliser cette option et d’ajuster manuellement les paramètres jusqu’à obtenir un point de départ satisfaisant avant de lancer l’ajustement automatisé.
- Exécuter l’ajustement automatique : lance l’algorithme d’ajustement automatique. Le processus se poursuit jusqu’à ce qu’il soit interrompu manuellement en appuyant à nouveau sur le bouton.
- Appliquer cet ensemble de données : active ou désactive l’ajustement pour l’ensemble de données actuellement sélectionné.
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.
5. Définir les valeurs des variables pour les adapter.
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).
- Activé : permet ou désactive la fonction de réglage de la variable.
- Variable : indique le chemin d’accès de la variable à ajuster (en anglais).
- Min : la valeur minimale que peut prendre la variable.
- Max : la valeur maximale que peut prendre la variable.
- Fonction d’erreur : pénalité ajoutée à l’erreur globale d’ajustement si la variable sort de sa plage minimale et maximale. Cela force en réalité l’algorithme à revenir dans les limites autorisées.
- Échelle logarithmique : ajuste le paramètre sur une échelle logarithmique. Utile pour les variables qui couvrent une large plage de valeurs, afin de s’assurer que toute la plage est explorée.
- Variable (JSON) : généralement masquée ; elle représente le chemin d’accès complet du paramètre au format
json. Le serveur utilise ce chemin d’accès, tandis que le chemin d’accès en anglais est uniquement destiné à faciliter la lecture et n’est pas toujours exact.
6. Dupliquer des variables.
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.
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 :
- 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.
- 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 ?
- 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.
- 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.
- 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).
- 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.
- 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).
- É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.