From b211da4cbfc82ee72c7eb9bffe04c9d2620cbc2c Mon Sep 17 00:00:00 2001 From: Christian Zufferey Date: Mon, 16 Sep 2019 19:10:11 +0200 Subject: [PATCH] =?UTF-8?q?Voil=C3=A0,=20une=20version=20qui=20marche,=20m?= =?UTF-8?q?ais=20je=20veux=20encore=20essayer=20de=20simplifier=20le=20cal?= =?UTF-8?q?cul=20de=20l'offset?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Mesures/solar_pv_energy/0_get_data.lua | 51 ++++++++------------------ 1 file changed, 16 insertions(+), 35 deletions(-) diff --git a/Mesures/solar_pv_energy/0_get_data.lua b/Mesures/solar_pv_energy/0_get_data.lua index b4ed0cb..c4fed64 100644 --- a/Mesures/solar_pv_energy/0_get_data.lua +++ b/Mesures/solar_pv_energy/0_get_data.lua @@ -1,6 +1,6 @@ -- Lit le convertisseur ADC connecté sur le transformateur de courant -- pour mesurer le courant électrique de l'installation PV -print("\n 0_get_data.lua zf190916.1534 \n") +print("\n 0_get_data.lua zf190916.1904 \n") -- Astuce de mesure: -- au lieu de découper la sinusoïde en 100 parties, c'est à dire toutes @@ -13,7 +13,14 @@ print("\n 0_get_data.lua zf190916.1534 \n") -- quelque soit sa forme ! -- On le somme sur 2.1 secondes avec une moyenne glissante sur 3 valeurs -zadc_min=1024 zadc_max=0 zadc_sum=0 znb_mes=0 +zadc_offset=550 +zpow_cal=401 +zadc_cal=189 +zadc_err=-5 + +zadc_min=zadc_offset zadc_max=zadc_offset +zadc_sum=0 zadc_min_sum=0 zadc_max_sum=0 znb_mes=0 +zadc_rms1=0 zadc_rms2=0 zadc_rms3=0 if adc.force_init_mode(adc.INIT_ADC) then @@ -31,55 +38,29 @@ tmr_calc_rms:alarm(2.1*1000, tmr.ALARM_AUTO, function() calc_rms() end) - ---zadc_min1=500 zadc_min2=500 zadc_min3=500 ---zadc_max1=500 zadc_max2=500 zadc_max3=500 - -zadc_min_sum=0 zadc_max_sum=0 - function read_adc() zadc=adc.read(0) - if zadc<=zadc_min then zadc_min=zadc end if zadc>=zadc_max then zadc_max=zadc end - --- zadc_min1=zadc_min2 zadc_min2=zadc_min3 zadc_min3=zadc_min --- zadc_min=math.floor((zadc_min1+zadc_min2+zadc_min3)/3) - --- zadc_max1=zadc_max2 zadc_max2=zadc_max3 zadc_max3=zadc_max --- zadc_max=math.floor((zadc_max1+zadc_max2+zadc_max3)/3) - zadc_min_sum=zadc_min_sum+zadc_min zadc_max_sum=zadc_max_sum+zadc_max - - - - zadc=zadc-zadc_offset - if zadc<=0 then zadc=zadc*-1 end + zadc=zadc-zadc_offset if zadc<=0 then zadc=zadc*-1 end zadc_sum=zadc_sum+zadc znb_mes=znb_mes+1 end -zadc_offset=550 -zpow_cal=409 -zadc_cal=192 -zadc_err=-2 - -zadc_rms1=0 zadc_rms2=0 zadc_rms3=0 - function calc_rms() zadc_rms=math.floor(zadc_sum/znb_mes)+zadc_err + if zadc_rms<=0 then zadc_rms=0 end + zadc_rms1=zadc_rms2 zadc_rms2=zadc_rms3 zadc_rms3=zadc_rms + zadc_rms=math.floor((zadc_rms1+zadc_rms2+zadc_rms3)/3) zadc_min=math.floor(zadc_min_sum/znb_mes) zadc_max=math.floor(zadc_max_sum/znb_mes) - --- zadc_rms1=zadc_rms2 zadc_rms2=zadc_rms3 zadc_rms3=zadc_rms --- zadc_rms=math.floor((zadc_rms1+zadc_rms2+zadc_rms3)/3) - --- if zadc_rms<=0 then zadc_rms=0 end zadc_offset=math.floor((zadc_min+zadc_max)/2) + zpower=math.floor(zadc_rms*zpow_cal/zadc_cal) print(zadc_min,zadc_max,zadc_max-zadc_min,zadc_offset,zadc_rms,zpower.."W") - zadc_min=1024 zadc_max=0 zadc_sum=0 znb_mes=0 - zadc_min_sum=0 zadc_max_sum=0 + zadc_min=zadc_offset zadc_max=zadc_offset + zadc_sum=0 zadc_min_sum=0 zadc_max_sum=0 znb_mes=0 end