Experimentation tools
for our PV experiments 1 and 3.

The simulation computer for Experiment 1...
draws the mathematically expected power curves of a PV system, depending on the inclination and orientation of the modules. The basis of the simulation is the perspective reduction in the area of the modules as the sun moves from east to west and from the horizon to its highest point.
The program for Experiment 3...
introduces data fitting as a concept to programmatically obtain a continuous function from the discrete U-I data set of the experiment. The fitted function is similar to the Shockley diode equation, i.e. it describes the ensemble of expected effects that occur in the photo effect.
Experiment 1
Experiment 3
Exp1: Simulation of the power curve of a PV system over the day

South
East
West
Exp3: Drawing the MPP curve
When first experimenting at university and in technical drawing, so-called graph paper is often used in order to be able to draw graphs of the measurement data as accurate as possible. The graph paper is a rectangular grid with a box width of one millimeter.
In physics, it is important to "craft" a continuous line from discrete data points in order to be able to draw conclusions with certainty about certain characteristic quantities of the system.
But which line fits best to a data set? Which line
is the best fit line ?

If the data trend is linear, it is clear that the best-fit line must be a straight line that goes through the points. This can be done easily with graph paper. The important parameters of the system are then the slope and the y-intercept, i.e. the parameters of the function
variable
Slope parameters
Y-intercept parameters
But what if the trend is not clear? Non-linear trends and so-called "outliers" in the data complicate the procedure greatly, especially in the case of complicated physical processes.
With the advent of electronically controlled machine logic, its use in data processing and interpretation has proven indispensable. Today, we use software that contains algorithms that allow us to process the data. An algorithm is simply a set of mathematical instructions that a computer can perform. In order to give the computer the instruction, you must be able to speak one of the many languages that it understands.
Many scientists choose the programming language " Python". It is extremely powerful and versatile, but its syntax - that is, the sentence structure and grammar of the language - is kept simple.

✨
✨
The procedure is now as follows:
-
Which equation from physics theoretically describes the data? This is our mathematical model. We now want to find the parameters of this equation using an algorithm
-
Define the equation in Python using the 'def' keyword
-
Create so-called 'lists' in Python that contain all your x-values and all your y-values
-
Perform the fit by applying the 'curve_fit' algorithm to your lists and the equation. The algorithm assumes that the values your multimeter showed are the most likely to be correct, despite the uncertainty in the measurement. It does this by minimizing the so-called "squared information loss" (more information).
The program then draws the best-fit lines, gives you the values of the parameters and even their uncertainty - because everything we measure in experiments has an error.
Try it yourself below!



Example values
show



Example values
delete
U_list = [
]
I_list = [
]
Import the plot and the fitting module. Define the mathematical equation used to fit the data.
import plot
from scientific_python import curve_fit
# This is a comment section. The equation below is a version
# of the so-called Shockley equation, which describes the current
# of a diode, and therefore also of a solar cell.
def shockley_equation(U, a, b ,c):
return a*(1-b*(e**(U/c)-1))
P_list = I_list * U_list
In the code above, the "e" denotes the so-called Euler's number. The symbol '**' means 'power' and '*' is the multiplication point. The letters 'a', 'b' and 'c' are the parameters of the function that need to be determined, similar to the example above with the parameters 'm' and 't', except that the former don't have specific names. Translated into mathematical terms, the equation looks like this:
Because this equation contains "e to the power of...", we speak of a non-linear equation. The Shockley equation gives the current of a PV cell as a function of the total voltage applied. The corresponding equation for an ohmic element is
which you probably know. Now all that's left is to plot the data points and find the best-fit line!
plot (x= U_list , y= I_list , marker= "Point" , color= "red" )
plot (x= U_list , y= P_list , marker= "Point" , color= "blue" )

I_result = curve_fit(shockley_equation, U_list, I_list)
P_result = I_result * U_list
plot(x=U_list, y=I_result, marker="line", color="red")
plot(x=U_list, y=P_result, marker="line", color="blue")

