Inicio Ejemplos Capturas de pantalla Manual de usuario Logotipo de Bluesky YouTube
OghmaNano Simule células solares orgánicas/de perovskita, OFETs y OLEDs DESCARGAR

Ajuste de datos experimentales

1. Visión general

Del mismo modo que se puede ajustar la ecuación de diodo a una curva JV en oscuridad para extraer el factor de idealidad, OghmaNano le permite ajustar modelos completos de dispositivo directamente a datos experimentales. Al calibrar la simulación con sus mediciones, puede recuperar parámetros físicamente significativos—movilidades, densidades de estados trampa, resistencias de contacto, coeficientes de recombinación—dentro de un marco autoconsistente. En comparación con fórmulas analíticas simples, un ajuste basado en física conserva el acoplamiento óptico–eléctrico y proporciona una visión más rica y fiable de los mecanismos que gobiernan el rendimiento. Este tutorial introduce el flujo de trabajo de ajuste en OghmaNano y muestra cómo elegir variables, seleccionar minimizadores y ejecutar ajustes eficientes y reproducibles.

2. Su primer ajuste

OghmaNano incluye varias simulaciones de demostración que ilustran cómo ajustar modelos a datos experimentales. Una de ellas usa un modelo simple drift–diffusion como ejemplo. Para acceder a ella, haga clic en el icono New simulation en la cinta File para abrir la ventana New simulation (Figura ??). Desde aquí, haga doble clic en la categoría Scripting and fitting para abrir la carpeta mostrada en la Figura ??. Seleccione el ejemplo Fitting and parameter extraction para cargar un proyecto de demostración. Al abrirlo, lanza una simulación simple de célula solar (Figura ??). Aunque esta demostración se centra en una célula solar, el motor de ajuste puede aplicarse a cualquier simulación y conjunto de datos experimentales.

La ventana 'New simulation' que muestra diferentes categorías de dispositivos en OghmaNano. La categoría 'Scripting and fitting' está resaltada.
La ventana New simulation. Seleccione la categoría Scripting and fitting para acceder a ejemplos de ajuste.
La carpeta 'Scripting and fitting' abierta, resaltando el ejemplo 'Fitting and parameter extraction example'.
Dentro de la carpeta Scripting and fitting. Haga doble clic en el Fitting and parameter extraction example para cargar un proyecto de demostración.

Una vez que haya guardado la nueva simulación, aparecerá la ventana principal de simulación (??). Desde aquí, navegue a la cinta Automation (resaltada en rojo) y seleccione el icono Fit to experiment para acceder a la ventana de ajuste ??.

Cinta Automation de OghmaNano con el icono 'Fit to experiment' resaltado, y una estructura 3D de célula solar mostrada en la ventana principal.
La cinta Automation en OghmaNano, mostrando el icono Fit to experiment. Al seleccionar esta opción se abre la ventana principal de ajuste.
La ventana de ajuste de OghmaNano con una curva JV experimental cargada en el espacio de trabajo.
La ventana de ajuste al abrirse por primera vez, mostrando un conjunto de datos experimentales de JV con luz importado y listo para ajustar.

La ventana de ajuste controla cómo se realiza la optimización: especifica qué conjuntos de datos experimentales se utilizan y qué variables de simulación se ajustan. Puede ajustar a un solo conjunto de datos, como se muestra aquí, o a múltiples conjuntos de datos simultáneamente para una extracción de parámetros más restringida. En la Figura ??, la línea azul representa la curva JV experimental que se utilizará para el ajuste.

💡 Ejercicio práctico: Uso de la ventana de ajuste

  1. Tarea 1 – Una iteración: Haga clic en el botón One iteration para actualizar la vista de ajuste (??a). En la pestaña Delta = Experiment − Simulation verá la JV simulada (azul) superpuesta a la JV experimental (rojo), además de la curva verde delta definida punto por punto como \( \Delta(V) = J_{\mathrm{exp}}(V) - J_{\mathrm{sim}}(V) \). Un buen punto de partida es cuando la curva verde está cerca de cero en todo el rango de voltaje.
  2. Tarea 2 – Ejecutar ajuste: Pulse Run fit para lanzar el minimizador automatizado (al pulsarlo de nuevo se detiene la ejecución). Durante los primeros pasos el error puede aumentar brevemente, pero después debería caer a medida que las curvas simulada y experimental convergen. Cambie a la pestaña Fit progress para representar el error frente a la iteración (??b); esta gráfica también se guarda en fitlog.csv en el directorio de simulación para representación externa. En una configuración típica esta etapa dura ~30 s.
Ventana de ajuste de OghmaNano que muestra las curvas JV simulada (azul), experimental (rojo) y delta (verde) después de ejecutar una iteración de ajuste.
a) Después de una iteración de ajuste: curvas JV simulada (azul), experimental (rojo) y delta (verde).
Ventana de progreso del ajuste de OghmaNano mostrando la disminución de la función de error a lo largo de iteraciones sucesivas, indicando convergencia.
b) Progreso del ajuste: la función de error disminuye con el número de iteración, mostrando convergencia.

3. Añadir y eliminar datos

La ventana principal de ajuste proporciona una barra de herramientas de comandos que controlan cómo se añaden, gestionan y ajustan los experimentos. Estos botones le permiten importar o eliminar conjuntos de datos, configurar qué parámetros se varían e iniciar o detener el proceso de ajuste. Las opciones más importantes son:

4. La cinta Minimizer

La cinta Minimizer proporciona control sobre el algoritmo de optimización utilizado durante el ajuste. Desde esta pestaña puede elegir qué minimizador aplicar (por ejemplo, el Nelder–Mead downhill simplex predeterminado) y configurar sus ajustes. La cinta también incluye herramientas para gestionar variables de ajuste, duplicar parámetros y aplicar reglas matemáticas para restringir el ajuste. Ajustando estas opciones, puede controlar cómo el algoritmo explora el espacio de parámetros, equilibrar velocidad frente a precisión y garantizar que se impongan restricciones físicamente significativas durante el proceso de ajuste.

Ventana de ajuste de OghmaNano mostrando la pestaña Minimizer con opciones para variables de ajuste, variables duplicadas, reglas de ajuste y selección de minimizador (Nelder–Mead resaltado).
La pestaña Minimizer de la ventana de ajuste, donde puede seleccionar el algoritmo de optimización (p. ej. Nelder–Mead) y configurar reglas, duplicación de variables y ajustes del minimizador.

5. Configuración de las variables a ajustar

Ventana Fit variables de OghmaNano que muestra una lista de parámetros habilitados y deshabilitados como densidad de carga, movilidad, densidades de trampas y resistencias, con controles de min, max, función de error y escala logarítmica.
La ventana Fit variables. Esta interfaz le permite elegir qué parámetros se varían durante el ajuste, y especificar sus rangos permitidos, penalizaciones de error y escala. Habilitar o deshabilitar variables aquí controla directamente cómo el minimizador explora el espacio de parámetros.

Para abrir la ventana Fit variables, vaya a la cinta Minimizer en la ventana de ajuste (Figura ??) y haga clic en Fitting variables. Este panel (Figura ??) le permite elegir qué parámetros se varían durante el ajuste y fijar sus límites. Para mayor velocidad y robustez, comience con un pequeño conjunto de parámetros simétricos; añada más (o introduzca asimetría) solo después de tener un ajuste inicial razonable.

La tabla Fit variables contiene siete columnas: Enabled, Variable, Min, Max, Error function, Log scale, y Variable (JSON).

6. Duplicación de variables

Ventana Duplicate variables de OghmaNano que muestra una tabla que asigna variables fuente, como movilidad electrónica o densidades de trampas, a variables destino para imponer simetría durante el ajuste.
La ventana Duplicate variables. Esta herramienta copia valores de una variable origen a una variable destino, asegurando que los parámetros permanezcan simétricos durante el ajuste (por ejemplo, haciendo coincidir las movilidades de electrones y huecos).

Abra la ventana Duplicate variables desde la cinta Minimizer (??). Esta herramienta refleja un parámetro origen en un parámetro destino en cada iteración. En el ejemplo de dispositivo simétrico, ajustamos solo el parámetro del lado electrónico y usamos Duplicate variables para copiar su valor al parámetro correspondiente del lado de huecos, manteniéndolos iguales durante todo el ajuste (véase ??).

La columna Function y = f(x) define cómo el valor origen x se transforma antes de ser escrito en el destino y. El valor predeterminado x realiza una copia directa; también son posibles ejemplos como 2*x (duplicar el valor) o x + 0.05 (aplicar un desplazamiento).

7. Reglas de ajuste

La ventana Fit rules (??), accesible desde la cinta Minimizer, le permite aplicar restricciones matemáticas al proceso de ajuste. Las reglas añaden una penalización a la función de error cuando se viola una condición. Por ejemplo, puede imponer que un parámetro siempre sea mayor que otro, o aplicar una penalización si una variable se desvía fuera de un rango aceptable. Esto ayuda a mantener el ajuste físicamente significativo y evita que el minimizador explore combinaciones de parámetros irreales.


Ventana Fit rules de OghmaNano que muestra una tabla donde pueden definirse restricciones como x > y entre variables, con opciones para habilitar o deshabilitar cada regla.
La ventana Fit rules. Aquí, los usuarios pueden definir restricciones como x > y para imponer relaciones entre parámetros. Si se incumple una regla, se añade un error adicional al ajuste, guiando al minimizador de vuelta a una región válida del espacio de parámetros.

💡 Consejos y trucos clave para el ajuste:

  1. En términos generales, el ajuste es un proceso complicado que requiere mucha paciencia y ajuste manual fino. No espere pulsar un botón y que simplemente funcione — tendrá que trabajar cuidadosamente para conseguir buenos ajustes.
  2. Si el ajuste no funciona, puede que algo esté mal en las suposiciones físicas que ha hecho sobre su dispositivo. El modelo solo ajustará datos físicamente razonables, así que si algo se desvía en un orden de magnitud, reconsidere lo que está pidiendo al modelo. Por ejemplo, si simplemente no consigue que \(J_{sc}\) coincida en una célula solar, ¿podría ser que su material simplemente no esté absorbiendo suficientes fotones para alcanzar el valor de \(J_{sc}\) deseado?
  3. Diferentes conjuntos de datos proporcionan distintos tipos de información. Por ejemplo, la curva JV en oscuridad de una célula solar da información sobre resistencia shunt, resistencia serie y algunos detalles de movilidad/recombinación. La curva JV con luz, sin embargo, proporciona casi ninguna información sobre la resistencia shunt, así que no espere que dé estimaciones precisas de \(R_{shunt}\). Piense siempre en qué información contienen sus datos antes de interpretar los parámetros ajustados.
  4. El proceso de ajuste funciona así: 1) ejecutar una simulación; 2) calcular la diferencia entre resultados numéricos y experimentales; 3) retocar parámetros; 4) volver a ejecutar la simulación y comprobar si el error se reduce; 5) si el error se reduce, se acepta el cambio de parámetro y el proceso se repite. Esto puede requerir cientos o miles de iteraciones. Por tanto, las simulaciones individuales deben ejecutarse rápidamente. Por ejemplo, si su malla tiene 1000 puntos, pruebe a reducirla a 10 para el ajuste; si tiene 1000 pasos temporales, reduzca a 100. Cada mejora de velocidad en la simulación base acelera el proceso de ajuste.
  5. Escribir archivos en disco es la parte más lenta de cualquier proceso computacional. Incluso los SSD modernos son aproximadamente 30× más lentos que la memoria principal (p. ej. 456 MB/s frente a 12,800 MB/s para PC3-12800). Usar unidades USB, almacenamiento en red o servicios en la nube como OneDrive/Dropbox empeora aún más la situación. Para mayor velocidad, guarde siempre las simulaciones en un SSD local (no en una unidad de red o mecánica).
  6. Minimice el número de archivos que produce su simulación. Desactive salidas innecesarias como snapshots, salida óptica o carpetas dinámicas. Una simulación bien configurada debería producir solo unos 50 archivos. Si ve cientos, investigue por qué.
  7. Aunque el ajuste puede hacerse en la GUI, a menudo es lento. Una buena práctica es configurar los ajustes en la GUI pero ejecutarlos desde la línea de comandos (más abajo se dan instrucciones).
  8. Como el ajuste escribe muchos archivos en disco, el software antivirus puede ralentizar el proceso al escanear cada archivo. Considere excluir su carpeta de simulación del escaneo en tiempo real si esto se convierte en un problema.

👉 Siguiente paso: Ahora continúe con Parte B para métodos de ajuste más avanzados.