20-07-2020, 02:14 PM
[b]AYUDA!![/b]
LO QUE YO NECESITO ES, QUE APAREZCA LA CURVA Y QUE APAREZCAN LOS RESULTADOS.
ES DECIR, COMBINAR LOS 2 CODIGOS
mi principal problema es que no logro que en mi gráfico varíen sus datos en base a los botones interactivos.
en la primera clase motor los "self.areapiston" y "self.carrera" son el tema principal.
- si utilizo el np.arange se grafica mi función.
- si dejo "self.areapiston = areapiston" y "self.carrera = carrera", entonces no aparece la curva en la gráfica, pero si varia el valor resultante.
[b]AYUDA!!!![/b]
Código:
class motor():
#atributos
def __init__(self, areapiston, carrera):
self.areapiston= np.arange(0,100,1) # area del piston
self.carrera = np.arange(0,100,1) #carrera del psiton
self.ns= 50 # valor, np.arange(0,100,1) por segundo.
self.z= 6 #valor, numero de cilindros.
self.stroke = 4 #numero de tiempos del motoresta es la segunda opción que intento
Código:
class motor():
#atributos
def __init__(self, areapiston, carrera):
self.areapiston= areapiston # area del piston
self.carrera = carrera #carrera del piston
self.ns= 50 # valor, np.arange(0,100,1) por segundo.
self.z= 6 #valor, numero de cilindros.
self.stroke = 4 #numero de tiempos del motoraquí esta lo principal, Aunque si lo copian en sus compiladores les faltaran datos ya que omití parte de mi código para no saturar esto.
Código:
def velMedPiston(self):
u = 2*self.ns*self.carrera #velocidad media del piston
return u
def suptotpistones(self):
st=self.areapiston * self.z #superficie total de los pistones
return st
def volumentotal(self):
vol= self.areapiston* self.carrera
return vol
def potencia(self):
u = self.velMedPiston()
st = self.suptotpistones()
wu=(nu*nvt*po*st*(hi/at)*(u/self.stroke))/1000 #potencia del motor.
return wu
def graficopotencia(self):
fig, ax = plt.subplots()
x = self.suptotpistones()
y = self.potencia()
ax.plot(x, y)
ax.set_xlabel('superficie total de los pistones en mm2')
ax.set_ylabel('Potencia del motor en HP')
ax.set_title('Grafico de Potencia')
ax.grid(True)
ax.tick_params(labelcolor='b', labelsize='medium', width=3)
plt.show()
@widgets.interact(areapiston=(0,100,1), carrera=(0,100,1))
def principal(areapiston,carrera):
principal = motor(areapiston, carrera)
print ('Cilindrada {} ccc'.format(principal.volumentotal()))
print ('potencia {} HP'.format(principal.potencia()))
return principal.graficopotencia()LO QUE YO NECESITO ES, QUE APAREZCA LA CURVA Y QUE APAREZCAN LOS RESULTADOS.
ES DECIR, COMBINAR LOS 2 CODIGOS
