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}

\end{bmatrix}

\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]:
<matplotlib.legend.Legend at 0x3549810>

In [ ]: