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 motor
esta 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 motor
aquí 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