Étude en boucle fermée avec saturation

Cette fois même chose que pour la boucle fermée sauf que lorsqu’on calcul le \(u_c(t)=K_A(v_{cons}(t)-v(t))\), s'il est supérieur à 12 V on le remplace par 12 V et s'il est inférieur à -12 V on le remplace par -12 V.

Question

Écrire une fonction \(\tt ordre1\_BFsat(vc,umax,temps)\) correspondant à la résolution par la méthode d'Euler explicite du système en boucle fermée avec prise en compte de la saturation. La vitesse du chariot ainsi que la tension d'alimentation du chariot seront récupérées en sortie.

Tracer les réponses superposées avec et sans saturation, ainsi que la tension d'alimentation du chariot pour une vitesse de consigne constante.

Solution

1
def ordre1_BFsat(vc,umax,temps):
2
    ''' Renvoie une liste des ordonnées pour un premier ordre
3
    soumis à un échelon u de tension 
4
    pour une liste abscisse des temps fournie'''
5
    s=0
6
    sortie=[0]
7
    tension=[0]
8
    for i in range(1,len(temps)):
9
        u=K_a*(vc-s)
10
        if u>umax:
11
            u=umax
12
        elif u<-umax:
13
            u=-umax
14
        f=(K_c*u-s)/tau_c
15
        s=s+f*(temps[i]-temps[i-1])
16
        sortie=sortie + [s]
17
        tension = tension +[u]
18
    return sortie, tension