introduzione da k1 a k5

This commit is contained in:
marco.locatelli@steamware.net
2023-03-22 10:33:19 +01:00
parent 1853575919
commit 3aebe55260
+14 -4
View File
@@ -41,9 +41,15 @@ if redSrv0.get('SETTINGS:LOG:FREQ') is None:
if redSrv0.get('SETTINGS:DECIMALS:COUNT') is None:
redSrv0.set('SETTINGS:DECIMALS:COUNT',1)
if redSrv0.get('RTDATA:VALUE:K1CONST') is None:
redSrv0.set('RTDATA:VALUE:K1CONST', 0)
redSrv0.set('RTDATA:VALUE:K1CONST', 1)
if redSrv0.get('RTDATA:VALUE:K2CONST') is None:
redSrv0.set('RTDATA:VALUE:K2CONST', 1)
redSrv0.set('RTDATA:VALUE:K2CONST', 0)
if redSrv0.get('RTDATA:VALUE:K3CONST') is None:
redSrv0.set('RTDATA:VALUE:K3CONST', 0)
if redSrv0.get('RTDATA:VALUE:K4CONST') is None:
redSrv0.set('RTDATA:VALUE:K4CONST', 0)
if redSrv0.get('RTDATA:VALUE:K5CONST') is None:
redSrv0.set('RTDATA:VALUE:K5CONST', 0)
if redSrv0.get('RTDATA:VALUE:OFFSET') is None:
redSrv0.set('RTDATA:VALUE:OFFSET', 0)
if redSrv0.get('SETTINGS:POWER:UPTIME') is None:
@@ -182,6 +188,9 @@ def calculateValue():
v2 = getRedisVal('RTDATA:OUT:' + ch2)
k1 = getRedisVal('RTDATA:VALUE:K1CONST')
k2 = getRedisVal('RTDATA:VALUE:K2CONST')
k1 = getRedisVal('RTDATA:VALUE:K3CONST')
k2 = getRedisVal('RTDATA:VALUE:K4CONST')
k1 = getRedisVal('RTDATA:VALUE:K5CONST')
offset = getRedisVal('RTDATA:VALUE:OFFSET')
den = abs(float(v1)-float(v2))
if(den < 0.05):
@@ -203,8 +212,9 @@ def calculateValue():
strValInRaw = (XVal/eFact) + (oldValRaw * (eFact-1) / eFact)
redSrv0.set('RTDATA:VALUE:SMRAW',round(strValInRaw,decimalsCount))
# applicazione correzioni (costanti k1*x^2, k2*x e offset)
newValue = (float(k1)*float(XVal)*float(XVal))+(float(k2)*float(XVal))+float(offset)
# applicazione correzioni (costanti k e offset)
#newValue = (float(k1)*float(XVal)*float(XVal))+(float(k2)*float(XVal))+float(offset)
newValue = (float(k5)*pow(float(XVal),5)) + (float(k4)*pow(float(XVal),4)) + (float(k3)*pow(float(XVal),3)) + (float(k2)*pow(float(XVal),2)) + (float(k1)*float(XVal)) + float(offset)
redSrv0.set('RTDATA:VALUE:REAL',round(newValue,decimalsCount))
#if(newValue > 0):
# redSrv0.set('RTDATA:VALUE:REAL',round(newValue,decimalsCount))