update calibration

This commit is contained in:
sinergia 2022-11-09 11:30:42 -05:00
parent ebf7d7fc99
commit 34e71ade15

View File

@ -378,11 +378,14 @@ class Maintenance(Workflow, ModelSQL, ModelView):
return uncertain_eff return uncertain_eff
def get_create_graph(matrix, patterns): def get_create_graph(matrix, patterns, resolution, equipment_risk):
image = BytesIO() image = BytesIO()
errors = [] errors = []
yerr = [] yerr = []
upresolution = resolution if resolution >=0 else (resolution*-1)
lowresolution = resolution if resolution < 0 else (resolution*-1)
count = 0 count = 0
for pattern in patterns: for pattern in patterns:
error = pattern - matrix[count][0] error = pattern - matrix[count][0]
@ -391,15 +394,18 @@ class Maintenance(Workflow, ModelSQL, ModelView):
count+=1 count+=1
labels = list(patterns) labels = list(patterns)
#raise UserError(str([labels,errors]))
x = labels x = labels
y = errors y = errors
if equipment_risk == 'dosB':
top = 6
bottom = -6
else:
top = 0.60 top = 0.60
bottom = -0.60 bottom = -0.60
ls = 'dotted'
ls = 'dotted'
fig, ax1 = plt.subplots(nrows=1, ncols=1) fig, ax1 = plt.subplots(nrows=1, ncols=1)
ax1.set_ylim(bottom, top) ax1.set_ylim(bottom, top)
@ -410,7 +416,7 @@ class Maintenance(Workflow, ModelSQL, ModelView):
ax1.set_xlabel('Patrones') ax1.set_xlabel('Patrones')
ax1.set_ylabel('Valores Observados') ax1.set_ylabel('Valores Observados')
ax1.set_yticks([-0.25,0.0,0.25]) ax1.set_yticks([lowresolution,0.0,upresolution])
#ax1.set_xticks([-10.0,-5.0,0.0,5.0,10.0]) #ax1.set_xticks([-10.0,-5.0,0.0,5.0,10.0])
ax1.errorbar(x, y, yerr=yerr, marker='D', markersize=10, linestyle=ls) ax1.errorbar(x, y, yerr=yerr, marker='D', markersize=10, linestyle=ls)
@ -489,6 +495,7 @@ class Maintenance(Workflow, ModelSQL, ModelView):
if maintenance.equipment.product.resolution_type == "analoga": if maintenance.equipment.product.resolution_type == "analoga":
a_resolution = maintenance.equipment.product.analog_resolution a_resolution = maintenance.equipment.product.analog_resolution
resolution = a_resolution
factor_a = maintenance.equipment.product.a_factor_resolution factor_a = maintenance.equipment.product.a_factor_resolution
uncertain_b2_analog = (a_resolution) / (factor_a*mt.sqrt(3)) uncertain_b2_analog = (a_resolution) / (factor_a*mt.sqrt(3))
sum_uncertain_c = (uncertain_type_A**2) + (uncertain_b1**2) + (uncertain_b2_analog**2) sum_uncertain_c = (uncertain_type_A**2) + (uncertain_b1**2) + (uncertain_b2_analog**2)
@ -496,6 +503,7 @@ class Maintenance(Workflow, ModelSQL, ModelView):
uncertain_eff = uncertain_c**4/((uncertain_type_A**4)/(len(samples)-1)+(uncertain_b1**4/U_subi)+(uncertain_b2_analog**4/U_subi)) uncertain_eff = uncertain_c**4/((uncertain_type_A**4)/(len(samples)-1)+(uncertain_b1**4/U_subi)+(uncertain_b2_analog**4/U_subi))
elif maintenance.equipment.product.resolution_type == "digital": elif maintenance.equipment.product.resolution_type == "digital":
d_resolution = maintenance.equipment.product.d_resolution d_resolution = maintenance.equipment.product.d_resolution
resolution = d_resolution
uncertain_b2_digital = (d_resolution) / (2*mt.sqrt(3)) uncertain_b2_digital = (d_resolution) / (2*mt.sqrt(3))
sum_uncertain_c = (uncertain_type_A**2) + (uncertain_b1**2) + (uncertain_b2_digital**2) sum_uncertain_c = (uncertain_type_A**2) + (uncertain_b1**2) + (uncertain_b2_digital**2)
uncertain_c = mt.sqrt(sum_uncertain_c) uncertain_c = mt.sqrt(sum_uncertain_c)
@ -547,7 +555,8 @@ class Maintenance(Workflow, ModelSQL, ModelView):
maintenance.save() maintenance.save()
image = cls.get_create_graph(dates_mistake_pattern, patterns) equipment_risk = maintenance.equipment.product.risk
image = cls.get_create_graph(dates_mistake_pattern, patterns, resolution, equipment_risk)
maintenance.graph_calibration = image maintenance.graph_calibration = image
maintenance.save() maintenance.save()