import numpy as np import matplotlib.pyplot as plt from matplotlib.ticker import MultipleLocator def get_eficiencia(potencia_suministrada,potencia_fuente,eficiencia_carga_20,eficiencia_carga_50,eficiencia_carga_100): return (1 - (-60 + np.sqrt(60 * 60 - 4 * 20 *(20 - (potencia_suministrada * 100) / potencia_fuente))) / (2 * 20))*(1 - (-60 + np.sqrt(60 * 60 - 4 * 20 *(20 - (potencia_suministrada * 100) / potencia_fuente))) / (2 * 20)) * eficiencia_carga_20 + 2 *(1 - (-60 + np.sqrt(60 * 60 - 4 * 20 *(20 - (potencia_suministrada * 100) / potencia_fuente))) / (2 * 20)) * (-60 + np.sqrt(60 * 60 - 4 * 20* (20 - (potencia_suministrada * 100) / potencia_fuente))) / (2 * 20)* (eficiencia_carga_50 + 3) + (-60 + np.sqrt(60 * 60 - 4 * 20 *(20 - (potencia_suministrada * 100) / potencia_fuente))) / (2 * 20) * (-60 + np.sqrt(60 * 60 - 4 * 20 *(20 - (potencia_suministrada * 100) / potencia_fuente))) / (2 * 20) * eficiencia_carga_100 def plot_psu(axes,potencia_fuente,eficiencia_carga_20,eficiencia_carga_50,eficiencia_carga_100,label,color=None): potencia_suministrada=np.linspace(potencia_fuente*0.2,potencia_fuente) eficiencia=get_eficiencia(potencia_suministrada,potencia_fuente,eficiencia_carga_20,eficiencia_carga_50,eficiencia_carga_100) axes.plot(potencia_suministrada,eficiencia,label=label,color=color) figure=plt.figure(figsize=(17,9)) axes = figure.add_subplot() axes.set_facecolor("#E5F2FF") axes.minorticks_on() axes.xaxis.set_major_locator(MultipleLocator(50)) axes.grid(visible=True, which='major', axis='both',color="#FFFFFF",linewidth=2) axes.grid(visible=True, which='minor', axis='both',color="#FFFFFF",linewidth=1) axes.tick_params(axis='x',which='major', labelsize=13, colors="#174F78") axes.tick_params(axis='y',which='major',labelsize=13, colors="#174F78") axes.tick_params(axis='x',which='minor', labelsize=13, colors="#174F78") axes.tick_params(axis='y',which='minor',labelsize=13, colors="#174F78") axes.set_xlabel('Potencia suministrada (W)', fontsize=15,color="#2F5598",labelpad=10) axes.set_ylabel('Eficiencia (%)', fontsize=15,color="#2F5598",labelpad=20) axes.set_title("Eficiencia vs Potencia suministrada", fontsize=20,color="#2F5598",pad=20) plot_psu(axes,450,90,92,89,"450W Gold","#e3b246") plot_psu(axes,750,90,92,89,"750W Gold","#e3b246") plot_psu(axes,450,87,90,87,"450W Silver","#a8aaac") plot_psu(axes,750,87,90,87,"750W Silver","#a8aaac") plot_psu(axes,450,85,88,85,"450W Bronze","#a3712b") plot_psu(axes,750,85,88,85,"750W Bronze","#a3712b") axes.legend(fontsize=14,labelcolor="#2F5598")