Electrónica y Programación en Personal
«Si no se soluciona con un script en Python entonces no es viable»

por Yeison Cardona el 25 de agosto de 2012 a las 22:00 UTC
No me gusta Matlab (aparte de las razones éticas), me gusta un tanto Scilab, ninguno es un lenguaje de programación, así que su uso está limitado a la simulación, entornos de desarrollo y no de producción, no veo útil simular en una de estas herramientas si al final tendremos que portar el desarrollo a un lenguaje de programación «final», así que ¿por qué no usar un verdadero lenguaje de programación desde el inicio?, y por supuesto que será Python ;)

En ésta corta entrada presento una manera de obtener la respuesta transitoria de un sistema y su respuesta escalón, todo desde un simple script en Python.

Dependencias:
SciPy, Matplotlib
$ sudo apt-get install python-matplotlib
$ sudo apt-get install python-scipy
Función de transferencia:
la función de transferencia a analizar será:
Script: Tan sencillo como:
#!/usr/bin/env python
#-*- coding: utf-8 -*-

#Yeison Cardona 

from scipy import linspace
from scipy.signal import lti, step, impulse
from matplotlib import pyplot as plt

num = [1]  #numerador
den = [1, 6, 3]  #denominador

tf = lti(num, den)
respuesta_paso = step(tf)  #respuesta
respuesta_impulso= impulse(tf)  #respuesta al impulso

#graficamos
plt.plot(*respuesta_paso + respuesta_impulso)
plt.legend(('Unit-Step Response', 'Unit-Impulse Response'), loc=0)

#información y nombre de los ejes
plt.title(u'Análisis de respuesta transitoria')
plt.xlabel('Tiempo(seg)')
plt.ylabel('Amplitud')

#configuramos la visualización (no es necesario)
t = respuesta_paso[0]
plt.hlines(0, min(t), max(t))
plt.xlim(xmax=max(t))

#mostramos el resultado
plt.grid()
plt.show()

Resultado:




Otras funciones:









También podría interesarte:

Comentarios:
electro020 dijo:
26 de agosto de 2012 00:53
hola buen tutorial y mas por la parte de python pero se prodria hacer un
contro PID ?¿?¿?
Responder a electro020
Respuesta de Yeison Cardona:
26 de agosto de 2012 10:03
un saludo, supongo que si es posible, pero yo me encuentro viendo el curso correspondiente, una vez conozca los conceptos del control PID subiré un ejemplo, hasta pronto.
Responder a Yeison Cardona
Jesus Ortiz dijo:
26 de agosto de 2012 16:07
En mi experiencia Matlab es a la ingeniería lo que MS Office al trabajo de oficina, con la salvedad de que Matlab posee los famosos toolbox que sirven para trabajos tan variados como analisis de imagenes, diseño mecanico, redes neuronales y demas cosas de vanguardia. Pero la tremenda cuestión radica en por que deberían ser utilizada como herramienta educativa, si dificilmente se podria aprender a usar uno de esos paquetes en un curso, ademas de tener alternativas que cubren con creces los objetivos de enseñanza como Python, Scilab y Octave. Por lo qu he visto usan Matlab y dema herramientas privativas porqu eso es lo qu saben usar Los profesores o asi se lo exige la plantación oficial del curso.
Responder a Jesus Ortiz
Jesus Ortiz dijo:
26 de agosto de 2012 16:09
Disculpen las fallas ortograficas, lei y comente el post desde un telefono movil. :)
Responder a Jesus Ortiz
Jesus Ortiz dijo:
26 de agosto de 2012 16:10
En mi experiencia Matlab es a la ingeniería lo que MS Office al trabajo de oficina, con la salvedad de que Matlab posee los famosos toolbox que sirven para trabajos tan variados como analisis de imagenes, diseño mecanico, redes neuronales y demas cosas de vanguardia. Pero la tremenda cuestión radica en por que deberían ser utilizada como herramienta educativa, si dificilmente se podria aprender a usar uno de esos paquetes en un curso, ademas de tener alternativas que cubren con creces los objetivos de enseñanza como Python, Scilab y Octave. Por lo qu he visto usan Matlab y dema herramientas privativas porqu eso es lo qu saben usar Los profesores o asi se lo exige la plantación oficial del curso.
Responder a Jesus Ortiz
Añadir un nuevo comentario:
Si desean una respuesta para su comentario sólo deben agregarme en G+ y hacer una mención a Yeison Cardona, así les podré responder lo antes posible.