#Nur auf aequidistante Daten mit delta alpha=delta beta anwenden! Start: #13.02.2004 als Lumenaufstrasse.awk Restart: 06.10.2005 dist in [m]! # #Aufruf: #awk -f Auswertung.awk oink.splotn #Achtung: Vorerst nur .splotn (Ausgabe aus #gonio2splot.awk verwenden!) # #Absatz 5a: <42 lm #Absatz 5b: >42 lm BEGIN{{sw=0;dist=10;pi=3.14159265;distq=dist^2;i=0;j=0;scale=1.00} {filec=ARGV[1];print filec} {for (n=0;n<=(length(filec));n++) if (substr(filec,n,1)=="/") {n1=n}} {file=substr(filec,n1+1,length(filec)-7-n1)} } #Datenklauben {if (substr($0,1,1)!="#") { {if (split($0,oink," ")==3) { #Datensatz {I[i,j]=($3*scale);be[i]=$1;al[j]=$2} # {print i"\t"j} {if (($3*scale)>Emax) {Emax=($3*scale);bEmax=$1;iEmax=i;aEmax=$2;jEmax=j}} {if (sw==1) {dalpha=$2-alphamin;sw=2}} {if (sw==0) {betamin=$1;alphamin=$2;sw=1}} {if ($1>betamax) {betamax=$1}} {if ($2>alphamax) {alphamax=$2}} {j++} } else {if (i==0) {jmax=j};i++1;j=1} }} else { {if (substr($0,1,7)=="#Model:") {model=substr($0,8,length($0))}} {if (substr($0,1,9)=="#Voltage:") {voltage=substr($0,10,length($0))}} {if (substr($0,1,9)=="#Current:") {current=substr($0,10,length($0))}} {if (substr($0,1,6)=="#Bulb:") {bulb=substr($0,7,length($0))}} }} #Fertig mit dem Einlesen END{ {if (model=="") {model=file}; if (voltage=="") {voltage=0};if (current=="") {current=0}; if (bulb=="") {bulb="?"}} #Falls nicht im Header definiert gewesen. {dphi=dalpha;j=jmax} #aequidistanz! {print "\nUnverschoben:\nMeßfeld beta_min: "betamin" , beta_max: "betamax" , alpha_min: "alphamin" , alpha_max: "alphamax"\ndeltaphi: "dphi" Grad"} {print "E_max="Emax" auf beta="bEmax" und alpha="aEmax"!"} #Horizontale Verschiebung bestimmen, Dazu wird Emax/1.2/2 geteilt und als Grenzwert herangezogen {for (k=jEmax;k>0;k--) {if (I[iEmax,k]<(Emax/2.4)) {jl=k;all=al[k]; break}}} {for (k=jEmax;k<=jmax;k++) {if (I[iEmax,k]<(Emax/2.4)) {jr=k;alr=al[k]; break}}} {print "alpha_l (E_max/2.4)="all" , alpha_r (E_max/2.4)="alr} # {print "\tj_l="jl"\tj_r="jr} {alk=(all+alr)/2;jm=int((jl+jr)/2)} {print"HV wird um alpha="alk" verschoben.\n"} #js bestimmen {for (k=0;k=(alk-4)) {jL1=k;break}}} #Für L1, L4 {for (k=jm;k<=jmax;k++) {if (al[k]>=(4+alk)) {jR1=k;break}}} #Für R1, R4 {for (k=0;k=(alk-8)) {jL5=k;break}}} #Für L5 {if (jL5=="") {jR5=0;sw5b++}} {for (k=jm;k<=jmax;k++) {if (al[k]>=(8+alk)) {jR5=k;break}}} #Für R5 {if (jR5=="") {jR5=jmax;sw5b++}} #{print jL5,jL1,jm,jR1,jR5} #is bestimmen {for (l=0;l=(bEmax-3.4)) {iZ1=l;break}}} #Für Zone 1 {for (l=iZ1;l=(bEmax+2)) {i2=l;break}}} #Für Punkt 2 {for (l=i2;l=(bEmax+5)) {i3=l;break}}} #Für Punkt 3 und L4-R4, L5-R5 #{print iZ1, i2, i3} #{print "jm="jm} {ta23=0; ta235a=0; ta235b=0} #Zulassungsverletzzähler, für unter und über 42 lm. #Zone 1-Prüfung {z1v=0;ze1=0} #Zone 1 verletzt und Zone 1 erfüllt {for (l=0;lz1max) {z1max=I[l,k]};if (I[l,k]>2.0) {z1v++} else {z1e++}}}} {if (z1v>0) {print "Zone 1 in "z1v" von "z1e+z1v" Messpunkten verletzt, Maximum " z1max" lx!";ta23++;htmlZ1=z1max} else {print "\nZone 1 mit max. "z1max" lx erfüllt.";htmlZ1="OK"}} #Ab wann 2 lx? (Nicht Zulassungsrelevant) {sw=0;sw2lx=0} {for (l=0;l2.0) {be2lx=be[l];l2lx=l;sw=1;break}}; if (sw==1) {break}}} {print "2 lux wird bei beta="bEmax+be2lx" überschritten."} {if (l==0) {sw2lx=1}} #HV und H/Emax {HV=I[iEmax,jm]; if ((HV*1.2)20) {print "HV="HV">20 lx, TA23 (5b) für 5 W / >42 lm erfüllt."} else {print "HV="HV">10 lx, TA23 (5a) für 3 W / <42 lm erfüllt.";ta235b++} }} {if (zEmax==1) {print "E_max/HV="Emax/HV">1.2, TA23 verletzt!"} else {print "E_max/HV="Emax/HV"<=1.2, TA23 erfüllt."}} #L1--R1-Prüfung {for (k=jL1;k<=jR1;k++) {vL1R1=HV/I[iEmax,k];if (vL1R1>2) {zL1R1++} else {zL1R1e++}; if (vL1R1>vL1R1max) {vL1R1max=vL1R1}}} {if (zL1R1>=1) {print "max. HV/E(L1--R1)="vL1R1max">2 , nach TA23 in "zL1R1" von "zL1R1+zL1R1e" Meßpunkten nicht erfüllt!";ta23++} else {print "max. HV/E(L1--R1)="vL1R1max"<2, nach TA23 erfüllt"}} #Halbwertsbreite bestimmen (nicht Zulassungsrelevant!} {swHH=0} #Halbwertsbreitenschalter {for (k=jm;k>0;k--) {if (I[iEmax,k]<(Emax/2)) {beHWL1=be[k];break}}} {if (k==0) {beHWL1=be[k];swHH++}} {for (k=jm;k"(beHWR1-beHWL1)" Grad, da auf "swHH" Seite(n) aus dem Meßbereich!"}} #Zehntelbreite bestimmen (nicht Zulassungsrelevant!} {swHZ=0} #Zehntelbreitenschalter {for (k=jm;k>0;k--) {if (I[iEmax,k]<(Emax/10)) {beHZL1=be[k];break}}} {if (k==0) {beHZL1=be[k];swHZ++}} {for (k=jm;k"(beHZR1-beHZL1)" Grad, da aus "swHZ" Seite(n) aus dem Meßbereich!"}} #HV--2-Prüfung {for (l=iEmax;l<=i2;l++) {vHV2=HV/I[l,jm];if (vHV2>2) {z2++}; if (vHV2>vHV2max) {vHV2max=vHV2}}} {if (z2>=1) {print "max. HV/E(HV--2)="vHV2max">2 , nach TA23 nicht erfüllt!";ta23++} else {print "max. HV/E(HV--2)="vHV2max"<2, nach TA23 erfüllt."}} #2--3-Prüfung {e23min5a=I[i2,jm];e23min5b=I[i2,jm]} #Startwert in Punkt2 {for (l=i2;l<=i3;l++) {if (I[l,jm]<1.5) {z35a++};if (I[l,jm]<2.0) {z35b++}; if (I[l,jm]=1) {print "E_min (2--3) mit "e23min5a"<1.5 lx, nach T23 (5a) nicht erfüllt!";ta235a++} else {print "E_min (2--3) mit "e23min5a">1.5 lx, nach TA23 (5a) erfüllt."}} {if (z35b>=1) {print "E_min (2--3) mit "e23min5b"<2.5 lx, nach T23 (5b) nicht erfüllt!";ta235b++} else {print "E_min (2--3) mit "e23min5b">2.5 lx, nach TA23 (5b) erfüllt."}} #L4--R4-Prüfung {e44min=I[i3,jm];z445a=0;z445b=0} #Startwert in Punkt3 {for (k=jL1;k<=jR1;k++) {if (I[i3,k]<1.0) {z445a++} else {z44e5a++}; if (I[i3,k]<2.0) {z445b++} else {z44e5b++}; if (I[i3,k]=1) {print "E_min (L4--R4)="e44min"<1.0 lx in "z445a" von "z445a+z44e5a" Meßpunkten, nach TA23 (5a) nicht erfüllt!";ta235a++} else {print "E_min (L4--R4)="e44min">1.0 lx, nach TA23 (5a) erfüllt."}} {if (z445b>=1) {print "E_min (L4--R4)="e44min"<2.0 lx in "z445b" von "z445b+z44e5b" Meßpunkten, nach TA23 (5b) nicht erfüllt!";ta235b++} else {print "E_min (L4--R4)="e44min">2.0 lx, nach TA23 (5b) erfüllt."}} #L5--R5-Prüfung {e55min=I[i3,jm];z555b=0} #Startwert in Punkt3 {for (k=jL5;k<=jL1;k++) {if (I[i3,k]<2.0) {z555b++} else {z55e5b++}; if (I[i3,k]=1) {print "E_min (L5--R5)="e55min"<2.0 lx in "z555b" von "z555b+z55e5b" Meßpunkten, nach TA23 (5b) nicht erfüllt!";ta235b++} else {print "E_min (L5--R5)="e55min">2.0 lx, nach TA23 (5b) erfüllt."}} #Auswertung # {if (ta23==1) {print "\nTA23 in einem Kriterium nicht erfüllt!"} else if (ta23>1) {print "\nTA23 in "ta23" Kriterien nicht erfüllt!"} # else { # {if (ta235a>=1) {print "\n\nTA23 (5a) für 3W / <42 lm in "ta235a" Kriterien nicht erfüllt!"} else {print "\n\nTA23 (5a) für 3W / <42 lm erfüllt."}} # {if (ta235b>=1) {print "\n\nTA23 (5b) für 5W / >42 lm in "ta235b" Kriterien nicht erfüllt!"} else {print "\n\nTA23 (5b) für 5W / >42 lm erfüllt."}} # }} #Lichtstromberechnung {print "a"jL5"b"jL1"c"jR1"d"jR5} {faktor=dphi^2*pi^2*distq/180^2} #Umrechnungsfaktor {for (l=iZ1;l<=i3;l++) {for (k=jL1;k<=jR1;k++) {sum5a+=I[l,k]}}} #5a-Feld {for (l=iZ1;l<=i3;l++) {for (k=jL5;k<=jR5;k++) {sum5b+=I[l,k]}}} #5b-Feld {for (l=0;l erfüllt erfüllt nicht #TA23 #TA23 (5a) #TA23 (5b) {print "\n"} {ausgabe="%s\n%s%8.3g%8.3g"} {if (z1v>=1) {ausgabe=ausgabe "%8.3g"} else {ausgabe=ausgabe "%8.3g"}} #Zone 1 {if (HV>=20) {ausgabe=ausgabe "%8.3g"} else #HV {if (HV>=10) {ausgabe=ausgabe "%8.3g"} else {ausgabe=ausgabe "%8.3g"}}} {if (zEmax==1) {ausgabe=ausgabe "%8.3g"} else {ausgabe=ausgabe "%8.3g"}} #Emax/HV {if (zL1R1>=1) {ausgabe=ausgabe "%8.3g"} else {ausgabe=ausgabe "%8.3g"}} #L1R1 {if (z2>=1) {ausgabe=ausgabe "%8.3g"} else {ausgabe=ausgabe "%8.3g"}} #HV--2 {if (e23min5b>=2.5) {ausgabe=ausgabe "%8.3g";e23min=e23min5b} else #2--3 {if (e23min5a>=1.5) {ausgabe=ausgabe "%8.3g";e23min=e23min5a} else {ausgabe=ausgabe "%8.3g";e23min=e23min5a}}} {if (z445b==0) {ausgabe=ausgabe "%8.3g"} else {if (z445a==0) {ausgabe=ausgabe "%8.3g"} else {ausgabe=ausgabe "%8.3g"}}} #L4R4 {if (z555b==0) {ausgabe=ausgabe "%8.3g"} else {ausgabe=ausgabe "%8.3g"}} #L5R5 {ausgabe=ausgabe "\nlinks rechts\n"} #Links auf die Bilder {ausgabe=ausgabe "links rechts\n"} {ausgabe=ausgabe "links rechts\n"} {ausgabe=ausgabe "links rechts"} {ausgabe=ausgabe ""} #F"ur Temperatur und Spannung {if (swHH==0) {ausgabe=ausgabe "%8.3g"} else #Halbwertsbreite {if (swHH==1) {ausgabe=ausgabe "%8.3g"} else {ausgabe=ausgabe "%8.3g"}}} {if (swHZ==0) {ausgabe=ausgabe "%8.3g"} else #Zehntelbreite {if (swHZ==1) {ausgabe=ausgabe "%8.3g"} else {ausgabe=ausgabe "%8.3g"}}} {if (sw2lx==0) {ausgabe=ausgabe "%8.3g"} else {ausgabe=ausgabe "%8.3g"}} #Ab wann 2lx {ausgabe=ausgabe "%8.3g"} #Phi5a {if (sw5b==0) {ausgabe=ausgabe "%8.3g"} else #Phi5b {if (sw5b==1) {ausgabe=ausgabe "%8.3g"} else {ausgabe=ausgabe "%8.3g"}}} {ausgabe=ausgabe "%8.3g"} {if (sw5b==0) {ausgabe=ausgabe "%8.3g"} else #PhiZ15b {if (sw5b==1) {ausgabe=ausgabe "%8.3g"} else {ausgabe=ausgabe "%8.3g"}}} {ausgabe=ausgabe "%8.3g%8.3g"} #Lichtströme rest {ausgabe=ausgabe "\n\n\n"} #Das war es {printf(ausgabe,model,bulb,voltage,current,z1max,HV,Emax/HV,vL1R1max,vHV2max,e23min,e44min,e55min,file,file,file,file,file,file,file,file,beHWR1-beHWL1,beHZR1-beHZL1,bEmax+be2lx,sum5a*faktor,sum5b*faktor,sumZ15a*faktor,sumZ15b*faktor,sumZ1*faktor,sumges*faktor)} } #Ende der Ausgabe