In [1]:
import numpy as np
import matplotlib.pyplot as plt
In [2]:
%matplotlib inline
Primero calculamos
$$e(t)=r(t)-y(t)$$Donde: $y(t)$ es la salida del proceso y $r(t)$ es la señal de referencia
Nuestro sistema suponemos que es de segundo orden
$$a\ddot{y}+b\dot{y}+cy=0$$Reducimos el orden de la siguiente manera: $$ \mathbf{f}(\mathbf{y})= \begin{bmatrix} \dot{y}\ \ddot{y}
\begin{bmatrix} \dot{y}\\ \frac{-b}{a}\dot{y}-\frac{c}{a}y \end{bmatrix} $$
In [5]:
from scipy import integrate
In [6]:
# Definimos a todos los sistemas de segundo orden
def f_vec(y, t, a, b, c):
return np.array([y[1], - (b / a) * y[1] - (c / a) * y[0]])
In [7]:
# Condicion inicial
y_0_vec = np.array([1., 0.])
In [9]:
# Vector de tiempos
t = np.linspace(0,7)
In [10]:
# Resolvemos el sistema de ecuaciones diferenciales lineales de primer orden
sols = integrate.odeint(f_vec, y_0_vec, t, args=(1.,0.,1.))
In [14]:
plt.plot(t, sols[:, 0], label='$y$')
plt.plot(t, sols[:, 1], '--k', label='$\dot{y}$')
plt.legend()
Out[14]:
In [ ]: