Saltar la navegación

Ejemplo 3

Ejemplo en Python

Descripción

Simulación de un tanque de sistema dinámico usando Python

Requisitos de Ejecución

Para la ejecución de este código es necesario instalar lo siguiente:

  • Python
  • Librerías

Instalando Python

Debes descargar el instalador de python desde su página oficial: https://www.python.org/downloads/

Da Click en el botón: Download Python

Python

Busca el archivo que se descargó y da doble click

Python carpeta

Saldrá la siguiente ventana Verifica que la casilla de add python to path esté seleccionada y da click en install now

instalando

Espera a que termine de instalar

Y listo ya está instalado Python.

Listo

Instalando Librerías

Las librerías necesarias para la ejecución de este código son las siguientes:

  • numpy
  • Spicy
  • mathplothlib
  • pyplob

Será necesario entrar en CMD, para ello presiona Ver la clave o licencia de tu Windows – sospedia para poder entrar y a continuación escribe cmd en la casilla de abrir como en la imagen de la derecha.

 

CMD

Se abrirá una pantalla color negro y deberás escribir el siguiente comando:

pip install numpy

numpy

 

A continuación:

pip install matplotlib

 matplotlib

pip install spicy

 

 

Codificación

 # -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt

def tank(h,t):
F0 = 1.1                      # m**3/min
A   = 1                    # m**2
alfa = 0.5

dhdt = F0/A - alfa/A*np.sqrt(h)                                     #metros/minutos
return dhdt

def tank_lin(h_lin,t):

Fss = 1 # m**3/min

F_lin = F - Fss

hss = 4

A = 1 # m**2

alfa = 0.5

k = 2*np.sqrt(hss)/alfa

tau = 2*A*np.sqrt(hss)/alfa

dhlindt = k/tau*F_lin - 1/tau*h_lin #m/min

return dhlindt

F = 1.1

#Sistema no lineal

                                                                                          #Vector de tiempo
t = np.linspace(0, 50)
                                                                                         #condiciones de entrada

h0 = 4
h= odeint(tank, h0, t)

#Sistema linealizado 

h0_lin = 0 

h_lin = odeint(tank_lin,h0_lin,t)  

h_lin = h_lin + 4

                                          #Generar figura
plt.plot(t,h,h_lin)
plt.xlabel('tiempo, [minutos]')
plt.ylabel('altura del tanque, [m')

plt.show()

 

 

                                                                                           

Ejecución

Este es el resultado de la ejecución

Ejecución