Complex ExampleΒΆ

A more complex example from the test_uncertainty_wrapper module called test_IV(), includes combinations of several exponential and power operations. It contains 9 input arguments, there 126 observations of each corresponding to different voltages and there are 3 return values. The calculated uncertainty using a 1% standard deviation (square root of variance) for all 9 inputs is shown below.

../_images/IV_and_PV_plots_with_uncertainty.png

The test compares the derivatives calculated using central finite difference approximation with an analytical calculation from 0.3[V] to 0.6[V]. Below 0.3[V] the approximations deviate from the analytical for \(\frac{\partial I_{sc}}{\partial I_{sat_{1,0}}}\), \(\frac{\partial I_{sc}}{\partial I_{sat_2}}\) and \(\frac{\partial I_{sc}}{\partial E_g}\) while all other independent variables are consistently below 10e-7. The analytical derivatives are propagated using AlgoPy, an automatic differentiation package, which requires rewriting all NumPy operations like \(exp\) using AlgoPy. This makes it impractical for use in most models, but still useful for testing.

../_images/IV-PV-jac-errors.png