diff options
author | Bernhard Tittelbach <xro@realraum.at> | 2011-12-10 18:42:59 +0000 |
---|---|---|
committer | Bernhard Tittelbach <xro@realraum.at> | 2011-12-10 18:42:59 +0000 |
commit | e4243718126891cd607dabf7405c0e987b4670d8 (patch) | |
tree | 3da0819fdca4fa7a1b41118f8615882165332624 /hardware | |
parent | measurements (diff) |
solarmeter poti sweep
git-svn-id: https://svn.spreadspace.org/mur.sat@217 7de4ea59-55d0-425e-a1af-a3118ea81d4c
Diffstat (limited to 'hardware')
-rwxr-xr-x | hardware/energy/solarcells_p_r_graph.py | 234 |
1 files changed, 0 insertions, 234 deletions
diff --git a/hardware/energy/solarcells_p_r_graph.py b/hardware/energy/solarcells_p_r_graph.py deleted file mode 100755 index aab38fa..0000000 --- a/hardware/energy/solarcells_p_r_graph.py +++ /dev/null @@ -1,234 +0,0 @@ -#!/usr/bin/python2 -00 -# -*- coding: utf-8 -*- - -import numpy as np -import pylab - -measurements={} - -def addm(subject, r, u, i): - """ Add Measurments to dict - @param subject name of solarcell panel. each panel has 6 cells. each 3 are in series. "1b" means panel 1 and second series of three cells - @param r load resistor - @param u measured voltage in volts - @param i remasured current in ampere - """ - global measurements - if not subject in measurements: - measurements[subject]={} - measurements[subject][r] = (u,i) - -def getm_ui(subject): - global measurements - return zip(* map( lambda (r, ui): ui, sorted(measurements[subject].items()) )) - -def getm_rp(subject): - """ get measurements load over power - @param subject name of solarpanelcells series - @returns tuple of lists: (list(r values), list(p values)) - """ - global measurements - return zip(* map( lambda (r, (u,i)): (u/i, u*i), sorted(measurements[subject].items()) )) - -def getm_parallelAB_ui(panelnum): - global measurements - (uA, iA) = getm_ui(str(panelnum)+'a') - (uB, iB) = getm_ui(str(panelnum)+'b') - u_par = map(lambda us: sum(us)/2, zip(uA,uB)) - i_par = map(lambda (i1,i2): i1+i2, zip(iA,iB)) - return (u_par, i_par) - -def getm_parallelAB_rp(panelnum): - """ get measurements load over power with simulated parallel connection between xA and xB - @panelnum number of panel - @returns tuple of lists: (list(r values), list(p values)) - """ - (u_s, i_s) = getm_parallelAB_ui(panelnum) - return zip(* map(lambda (u,i): (u/i, u*i), zip(u_s, i_s))) - -subjects = [str(i)+c for i in range(1,7) for c in "ab"] - -#### Measurements with 250W Baustellenstrahler #### -addm("2a", 120, 0.88, 7.4e-3) -addm("2b",120, 0.8, 6.6e-3) -addm("3a",120, 0.7, 5.8e-3) -addm("3b",120, 0.65, 5.4e-3) -addm("4a",120, 0.66, 5.5e-3) -addm("4b",120, 0.78, 6.6e-3) -addm("5a",120, 0.77, 6.5e-3) -addm("5b",120, 0.9, 7.8e-3) -addm("6a",120, 0.72, 6.0e-3) -addm("6b",120, 0.93, 7.8e-3) -addm("1a",120, 0.84, 7.1e-3) -addm("1a", 330, 2, 6.2e-3) -addm("1a", 1000, 4.58, 4.5e-3) -addm("1a", 4700, 6, 1.2e-3) -addm("1b",120, 0.74 , 6.2e-3) -addm("1b", 330, 1.8, 5.7e-3) -addm("1b", 1000, 4, 4e-3) -addm("1b", 4700, 4.3, 0.9e-3) -addm("2a", 330, 2.25, 6.9e-3) -addm("2a", 1000, 4.74, 4.7e-3) -addm("2a", 4700, 5.8, 1.2e-3) -addm("2b", 330, 2.17, 6.7e-3) -addm("2b", 1000, 3.95, 3.9e-3) -addm("2b", 4700, 4.6, 1.0e-3) -addm("3a", 330, 1.86, 5.7e-3) -addm("3a", 1000,4.75, 4.7e-3) -addm("3a", 4700, 5.8, 1.2e-3) -addm("3b", 330, 1.74, 5.3e-3) -addm("3b", 1000, 4.52, 4.6e-3) -addm("3b", 4700, 5.8, 1.2e-3) -addm("4a", 330, 1.81, 5.5e-3) -addm("4a", 1000, 4.98, 4.9e-3) -addm("4a", 4700, 5.8, 1.2e-3) -addm("4b", 330, 2.21, 6.5e-3) -addm("4b", 1000, 4.29, 4.2e-3) -addm("4b", 4700, 5.5, 1.2e-3) -addm("5a", 330, 2.1, 6.4e-3) -addm("5a", 1000, 4.0, 4.0e-3) -addm("5a", 4700, 4.7, 1e-3) -addm("5b", 330, 2.27, 7e-3) -addm("5b", 1000, 4.29, 4.3e-3) -addm("5b", 4700, 5.5, 1.2e-3) -addm("6a", 330, 1.69, 5.2e-3) -addm("6a", 1000, 3.61, 3.6e-3) -addm("6a", 4700, 3.9, 0.8e-3) -addm("6b", 330, 2, 6.2e-3) -addm("6b", 1000, 3.54, 3.5e-3) -addm("6b", 4700,4.2, 0.9e-3) -addm ('1a', 3300, 6.71, 2.0e-3) -addm ('1b', 3300, 4.8, 1.4e-3) -addm ('2a', 3300, 6.6, 1.9e-3) -addm ('2b', 3300, 5.1, 1.5e-3) -addm ('3a', 3300, 6.47, 1.9e-3) -addm ('3b', 3300, 6.45, 1.9e-3) -addm ('4a', 3300, 6.5, 1.9e-3) -addm ('4b', 3300, 6.02, 1.8e-3) -addm ('5a', 3300, 5.25, 1.5e-3) -addm ('5b', 3300, 6.05, 1.8e-3) -addm ('6a', 3300, 4.27, 1.2e-3) -addm ('6b', 3300, 4.62, 1.4e-3) -addm ('1a', 1500, 6.25, 4.1e-3) -addm ('1b', 1500, 4.72, 3.1e-3) -addm ('2a', 1500, 6.20, 4.1e-3) -addm ('2b', 1500, 4.80, 3.2e-3) -addm ('3a', 1500, 6.25, 4.1e-3) -addm ('3b', 1500, 6.28, 4.2e-3) -addm ('4a', 1500, 6.32, 4.2e-3) -addm ('4b', 1500, 5.68, 3.8e-3) -addm ('5a', 1500, 5.00, 3.3e-3) -addm ('5b', 1500, 5.67, 3.8e-3) -addm ('6a', 1500, 4.19, 2.8e-3) -addm ('6b', 1500, 4.36, 2.9e-3) -si = iter(subjects) -addm(si.next(), 2200, 6.60, 3e-3) -addm(si.next(), 2200, 4.57, 2.1e-3) -addm(si.next(), 2200, 6.17,2.8e-3) -addm(si.next(), 2200, 4.96, 2.2e-3) -addm(si.next(), 2200, 6.1, 2.8e-3) -addm(si.next(), 2200, 6.08, 2.75e-3) -addm(si.next(), 2200, 6.16, 2.8e-3) -addm(si.next(), 2200,5.77, 2.6e-3) -addm(si.next(), 2200, 5.0, 2.25e-3) -addm(si.next(), 2200, 5.75, 2.6e-3) -addm(si.next(), 2200, 4.05, 1.8e-3) -addm(si.next(), 2200, 4.34, 1.98e-3) -si = iter(subjects) -addm(si.next(), 1200, 5.6, 4.8e-3) -addm(si.next(), 1200, 4.2, 3.6e-3) -addm(si.next(), 1200, 5.5, 4.7e-3) -addm(si.next(), 1200, 4.4, 3.7e-3) -addm(si.next(), 1200, 5.8,5e-3) -addm(si.next(), 1200, 5.4, 4.6e-3) -addm(si.next(), 1200, 6.0, 5.1e-3) -addm(si.next(), 1200, 5.35, 4.5e-3) -addm(si.next(), 1200, 4.6, 3.9e-3) -addm(si.next(), 1200, 5.1, 4.3e-3) -addm(si.next(), 1200, 3.9, 3.3e-3) -addm(si.next(), 1200, 4, 3.4e-3) -addm("3a", 1800, 6.2, 3.4e-3) -addm("3b", 1800, 6, 3.3e-3) -addm("4a", 1800, 6.25, 3.5e-3) -addm("4b", 1800, 5.7, 3.2e-3) - -#### Measurements with 1200W Halogen Scheinwerfer #### -addm("es3a", 1200, 6.7, 5.7e-3) -subjects_es = ["es"+str(i)+c for i in range(1,7) for c in "ab"] -esi = iter(subjects_es) -addm(esi.next(), 220, 3.8, 17.9e-3) -addm(esi.next(), 220, 3.2, 14.2e-3) -addm(esi.next(), 220, 3.7, 17.6e-3) -addm(esi.next(), 220, 3.6, 17.2e-3) -addm(esi.next(), 220, 3, 14.2e-3) -addm(esi.next(), 220, 3.2, 15.2e-3) -addm(esi.next(), 220, 3, 14e-3) #4a -addm(esi.next(), 220, 3.2, 15.2e-3) #4b -addm(esi.next(), 220, 3.8, 18e-3) -addm(esi.next(), 220, 3.5, 16.5e-3) -addm(esi.next(), 220, 2.7, 12.7e-3) -addm(esi.next(), 220, 3.4, 16.3e-3) - -#~ esi = iter(subjects_es) -#~ addm(esi.next(), 220, -#~ addm(esi.next(), 220, -#~ addm(esi.next(), 220, -#~ addm(esi.next(), 220, -#~ addm(esi.next(), 220, -#~ addm(esi.next(), 220, -#~ addm(esi.next(), 220, -#~ addm(esi.next(), 220, -#~ addm(esi.next(), 220, -#~ addm(esi.next(), 220, -#~ addm(esi.next(), 220, -#~ addm(esi.next(), 220, - - -#subjects = ["1a", "1b"] -#subjects.remove("1b") - -pylab.figure(1) -pylab.xlabel('Spannung [U]') -pylab.ylabel('Strom [I]') -pylab.grid(True) -for subject in subjects: - (u, i) = getm_ui(subject) - pylab.plot(u,i, label=subject) - pylab.hold(True) -pylab.legend() - -pylab.figure(2) -pylab.xlabel('Widerstand [Ohm]') -pylab.ylabel('Leistung [W]') -pylab.xscale('log', basex=10) -pylab.yscale('log', basey=10) -pylab.grid(True) -for subject in subjects: - (r, p) = getm_rp(subject) - pylab.plot(r,p, label=subject) - pylab.hold(True) -pylab.legend() - -pylab.figure(3) -pylab.xlabel('Spannung [U]') -pylab.ylabel('Strom [I]') -pylab.grid(True) -for panelid in range(1,7): - (u, i) = getm_parallelAB_ui(panelid) - pylab.plot(u,i, label=str(panelid)) - pylab.hold(True) -pylab.legend() - -pylab.figure(4) -pylab.xlabel('Widerstand [Ohm]') -pylab.ylabel('Leistung [W]') -pylab.xscale('log', basex=10) -pylab.yscale('log', basey=10) -pylab.grid(True) -for panelid in range(1,7): - (r, p) = getm_parallelAB_rp(panelid) - pylab.plot(r,p, label=str(panelid)) - pylab.hold(True) -pylab.legend() - -pylab.show() |