Réponse à un échelon d'un système du second ordre pseudo périodique

On sait que pour un système du second ordre, si le facteur d'amortissement est inférieur à 1, la réponse à un échelon d'amplitude \(E_0\) sera :

\(s(t) = K.E_0 . \left [ 1- \dfrac{e^{-\omega_0.t}}{\sqrt{1-\xi^2}}.\sin \left (\omega_0.\sqrt{1-\xi^2}.t + \varphi \right )\right ].he(t)\)

Le code proposé ci-dessous permet de définir la fonction \(s.\)

1
import numpy as np # Importation de la bibliotheque numpy sous l'alias (surnom) np
2
3
def s(t,E0,K,m,w0):
4
    """
5
    Fonction qui retourne la valeur de la sortie à l'instant t pour un systeme du second ordre, de facteur d'amortissement inferieur a 1, soumis a un echelon d amplitude E0
6
    Arguments :
7
    t : le temps (flottant)
8
    E0 : l'amplitude del 'echelon (flottant)
9
    K : le gain statique (flottant)
10
    m : le facteur d'amortissement (flottant)
11
    w0 : la pulsation naturelle non amortie (flottant)
12
    Sortie :
13
    Un flottant
14
    """
15
    expo = np.exp(-m*w0*t)
16
    w = w0*np.sqrt(1-m**2)*t
17
    c = np.cos(w)
18
    s = np.sin(w)
19
    inter = 1 - expo*(c+(m/np.sqrt(1-m**2))*s)
20
    return K*E0*inter

Question

Tracer la réponse temporelle d'un système du second ordre pour \(t \in [0(s) ;4(s)]\)si :

  • \(K=2(rd.s^{-1}.V^{-1})\)

  • \(\xi = 0.2\)

  • \(\omega_0 = 10 (rd.s^{-1})\)

  • \(E_0=1(Volt)\)

Vous ferez varier le nombre de subdivision pour le temps pour réaliser 4 tracés :

  • premier tracé avec 200 valeurs pour le temps ;

  • second tracé avec 100 valeurs pour le temps ;

  • troisième tracé avec 50 valeurs pour le temps ;

  • quatrième tracé avec 10 valeurs pour le temps ;

Que constatez vous ?

Faut il porter une attention particulière au nombre de subdivision pour les valeurs en abscisse ?