Início Exemplos Capturas de ecrã Manual do utilizador Logótipo Bluesky YouTube
OghmaNano Simular células solares orgânicas/Perovskita, OFETs e OLEDs DESCARREGAR

Ajuste de dados experimentais

1. Visão geral

Assim como você pode ajustar a equação do diodo a uma curva JV no escuro para extrair o fator de idealidade, o OghmaNano permite ajustar modelos completos de dispositivos diretamente a dados experimentais. Ao calibrar a simulação às suas medições, você pode recuperar parâmetros fisicamente significativos — mobilidades, densidades de estados de armadilha, resistências de contato, coeficientes de recombinação — dentro de uma estrutura autoconsistente. Em comparação com fórmulas analíticas simples, um ajuste baseado em física preserva o acoplamento óptico-elétrico e fornece uma compreensão mais rica e confiável dos mecanismos que governam o desempenho. Este tutorial apresenta o fluxo de trabalho de ajuste no OghmaNano e mostra como escolher variáveis, selecionar minimizadores e executar ajustes eficientes e reproduzíveis.

2. Seu primeiro ajuste

OghmaNano inclui várias simulações de demonstração que ilustram como ajustar modelos a dados experimentais. Uma delas usa um modelo simples de drift–diffusion como exemplo. Para acessá-la, clique no ícone Nova simulação na faixa File para abrir a janela Nova simulação (Figura ??). A partir daí, clique duas vezes na categoria Scripting and fitting para abrir a pasta mostrada na Figura ??. Selecione o exemplo Fitting and parameter extraction para carregar um projeto de demonstração. Quando aberto, ele inicia uma simulação simples de célula solar (Figura ??). Embora esta demonstração se concentre em uma célula solar, o mecanismo de ajuste pode ser aplicado a qualquer simulação e conjunto de dados experimentais.

The 'New simulation' window showing different device categories in OghmaNano. The 'Scripting and fitting' category is highlighted.
A janela Nova simulação. Selecione a categoria Scripting and fitting para acessar exemplos de ajuste.
The 'Scripting and fitting' folder opened, highlighting the 'Fitting and parameter extraction example'.
Dentro da pasta Scripting and fitting. Clique duas vezes no Fitting and parameter extraction example para carregar um projeto de demonstração.

Depois de salvar a nova simulação, a janela principal da simulação aparecerá (??). A partir daí, vá para a faixa Automation (destacada em vermelho) e selecione o ícone Fit to experiment para acessar a janela de ajuste ??.

OghmaNano Automation ribbon with the 'Fit to experiment' icon highlighted, and a 3D solar cell device structure displayed in the main window.
A faixa Automation no OghmaNano, mostrando o ícone Fit to experiment. Selecionar esta opção abre a janela principal de ajuste.
The OghmaNano fitting window with an experimental JV curve loaded into the workspace.
A janela de ajuste logo após ser aberta, mostrando um conjunto de dados experimentais de JV sob iluminação importado e pronto para ajuste.

A janela de ajuste controla como a otimização é realizada: ela especifica quais conjuntos de dados experimentais são usados e quais variáveis de simulação são ajustadas. Você pode ajustar a um único conjunto de dados, como mostrado aqui, ou a múltiplos conjuntos de dados simultaneamente para uma extração de parâmetros mais restrita. Na Figura ??, a linha azul representa a curva JV experimental que será usada no ajuste.

💡 Exercício prático: usando a janela de ajuste

  1. Tarefa 1 – Uma iteração: Clique no botão One iteration para atualizar a visualização do ajuste (??a). Na aba Delta = Experiment − Simulation você verá a JV simulada (azul) sobreposta à JV experimental (vermelho), além da curva verde delta definida ponto a ponto como \( \Delta(V) = J_{\mathrm{exp}}(V) - J_{\mathrm{sim}}(V) \). Um bom ponto de partida é quando a curva verde está próxima de zero em toda a faixa de tensão.
  2. Tarefa 2 – Executar ajuste: Pressione Run fit para iniciar o minimizador automatizado (pressionar novamente interrompe a execução). Durante os primeiros passos o erro pode aumentar brevemente, mas depois deve cair à medida que as curvas simulada e experimental convergem. Mude para a aba Fit progress para plotar o erro em função da iteração (??b); este gráfico também é salvo em fitlog.csv no diretório da simulação para plotagem externa. Em uma configuração típica esta etapa leva ~30 s.
OghmaNano fitting window showing simulated (blue), experimental (red), and delta (green) JV curves after running one fit iteration.
a) Após uma iteração de ajuste: curvas JV simulada (azul), experimental (vermelho) e delta (verde).
OghmaNano fit progress window showing the error function decreasing over successive iterations, indicating convergence.
b) Progresso do ajuste: função de erro diminuindo com o número de iterações, mostrando convergência.

3. Adicionando e removendo dados

A janela principal de ajuste fornece uma barra de ferramentas com comandos que controlam como experimentos são adicionados, gerenciados e ajustados. Esses botões permitem importar ou remover conjuntos de dados, configurar quais parâmetros são variados e iniciar ou interromper o processo de ajuste. As opções mais importantes são:

4. A faixa do minimizador

A faixa Minimizer fornece controle sobre o algoritmo de otimização usado durante o ajuste. A partir desta aba você pode escolher qual minimizador aplicar (por exemplo, o padrão Nelder–Mead downhill simplex) e configurar suas definições. A faixa também inclui ferramentas para gerenciar variáveis de ajuste, duplicar parâmetros e aplicar regras matemáticas para restringir o ajuste. Ao ajustar essas opções, você pode controlar como o algoritmo explora o espaço de parâmetros, equilibrar velocidade e precisão e garantir que restrições fisicamente significativas sejam impostas durante o processo de ajuste.

OghmaNano fitting window showing the Minimizer tab with options for fitting variables, duplicate variables, fit rules, and minimizer selection (Nelder–Mead highlighted).
A aba Minimizer da janela de ajuste, onde você pode selecionar o algoritmo de otimização (por exemplo, Nelder–Mead) e configurar regras, duplicação de variáveis e definições do minimizador.

5. Definindo as variáveis a ajustar

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.
A janela Fit variables. Esta interface permite escolher quais parâmetros são variados durante o ajuste, e especificar seus intervalos permitidos, penalidades de erro e escala. Habilitar ou desabilitar variáveis aqui controla diretamente como o minimizador explora o espaço de parâmetros.

Para abrir a janela Fit variables, vá para a faixa Minimizer na janela de ajuste (Figura ??) e clique em Fitting variables. Este painel (Figura ??) permite escolher quais parâmetros são variados durante o ajuste e definir seus limites. Para velocidade e robustez, comece com um pequeno conjunto de parâmetros simétricos; adicione mais (ou introduza assimetria) somente depois de obter um ajuste inicial razoável.

A tabela Fit variables contém sete colunas: Enabled, Variable, Min, Max, Error function, Log scale, e Variable (JSON).

6. Duplicando variáveis

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.
A janela Duplicate variables. Esta ferramenta copia valores de uma variável fonte para uma variável destino, garantindo que os parâmetros permaneçam simétricos durante o ajuste (por exemplo, igualando mobilidades de elétrons e buracos).

Abra a janela Duplicate variables a partir da faixa Minimizer (??). Esta ferramenta espelha um parâmetro fonte em um parâmetro destino a cada iteração. No exemplo de dispositivo simétrico, ajustamos apenas o parâmetro do lado do elétron e usamos Duplicate variables para copiar seu valor para o parâmetro correspondente do lado do buraco, mantendo-os iguais durante todo o ajuste (veja ??).

A coluna Function y = f(x) define como o valor da fonte x é transformado antes de ser escrito no destino y. O padrão x realiza uma cópia direta; exemplos como 2*x (dobrar o valor) ou x + 0.05 (aplicar um deslocamento) também são possíveis.

7. Regras de ajuste

A janela Fit rules (??), acessada a partir da faixa Minimizer, permite aplicar restrições matemáticas ao processo de ajuste. As regras adicionam uma penalidade à função erro sempre que uma condição é violada. Por exemplo, você pode impor que um parâmetro deve ser sempre maior que outro, ou aplicar uma penalidade se uma variável sair de um intervalo aceitável. Isso ajuda a manter o ajuste fisicamente significativo e evita que o minimizador explore combinações de parâmetros irreais.


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.
A janela Fit rules. Aqui, os usuários podem definir restrições como x > y para impor relacionamentos entre parâmetros. Se uma regra for violada, um erro adicional é adicionado ao ajuste, guiando o minimizador de volta para uma região válida do espaço de parâmetros.

💡 Dicas e truques principais para ajuste:

  1. De modo geral, ajuste é um processo difícil que requer muita paciência e refinamento manual. Não espere clicar em um botão e simplesmente funcionar — você precisará trabalhar com cuidado para obter bons ajustes.
  2. Se o ajuste não estiver funcionando, algo pode estar errado com as hipóteses físicas que você fez sobre o dispositivo. O modelo só ajustará dados fisicamente razoáveis, então, se algo estiver errado por uma ordem de grandeza, reconsidere o que você está pedindo ao modelo. Por exemplo, se você simplesmente não conseguir fazer o \(J_{sc}\) coincidir em uma célula solar, será que o seu material simplesmente não está absorvendo fótons suficientes para atingir o valor desejado de \(J_{sc}\)?
  3. Diferentes conjuntos de dados fornecem diferentes tipos de informação. Por exemplo, a curva JV no escuro de uma célula solar fornece informações sobre resistência shunt, resistência série e alguns detalhes de mobilidade/recombinação. A curva JV sob iluminação, porém, fornece quase nenhuma informação sobre resistência shunt, portanto não espere que ela forneça estimativas precisas de \(R_{shunt}\). Sempre pense sobre quais informações seus dados contêm antes de interpretar os parâmetros ajustados.
  4. O processo de ajuste funciona assim: 1) executar uma simulação; 2) calcular a diferença entre resultados numéricos e experimentais; 3) ajustar parâmetros; 4) executar novamente a simulação e verificar se o erro diminui; 5) se o erro diminuir, a mudança do parâmetro é aceita e o processo se repete. Isso pode levar centenas ou milhares de iterações. Portanto, as simulações individuais devem executar rapidamente. Por exemplo, se sua malha tiver 1000 pontos, tente reduzi-la para 10 para o ajuste; se você tiver 1000 passos de tempo, reduza para 100. Cada aceleração na simulação base acelera o processo de ajuste.
  5. Escrever arquivos em disco é a parte mais lenta de qualquer processo computacional. Mesmo SSDs modernos são cerca de 30× mais lentos do que a memória principal (por exemplo, 456 MB/s vs 12,800 MB/s para PC3-12800). Usar drives USB, armazenamento em rede ou serviços em nuvem como OneDrive/Dropbox torna isso ainda pior. Para velocidade, sempre salve simulações em um SSD local (não em uma unidade de rede ou mecânica).
  6. Minimize o número de arquivos que sua simulação produz. Desative saídas desnecessárias como snapshots, saída óptica ou pastas dinâmicas. Uma simulação bem configurada deve produzir apenas cerca de 50 arquivos. Se você vir centenas, investigue o motivo.
  7. Embora o ajuste possa ser feito na interface gráfica, ele costuma ser lento. Uma boa prática é configurar os ajustes na GUI, mas executá-los a partir da linha de comando (instruções são dadas abaixo).
  8. Como o ajuste grava muitos arquivos em disco, softwares antivírus podem tornar tudo mais lento ao verificar cada arquivo. Considere excluir sua pasta de simulação da verificação em tempo real se isso se tornar um problema.

👉 Próximo passo: Agora continue para a Parte B para métodos de ajuste mais avançados.