Dans l'article précédent (https://qiita.com/sato235/items/5e006ebbf2949cf59463), il était recommandé de visualiser l'entrée pas à pas et la réponse pas à pas dans le circuit avec le contrôleur, j'ai donc créé cet article. A terme, j'aimerais l'utiliser pour concevoir le système de contrôle du robot.
[1] Hiroki Minami, Ohm, "Introduction à l'ingénierie de contrôle avec Python"
[a] Schéma de principe de contrôle: https://tajimarobotics.com/pid-block-diagram-transfer-function/ [b] [Control Engineering] Représentation graphique des fonctions de transfert par Python: https://qiita.com/sato235/items/5e006ebbf2949cf59463 [c] [Control Engineering] Calcul des fonctions de transfert et des modèles d'espace d'état par Python: https://qiita.com/sato235/items/f991411074c578d1640c
Source: [a]
Le "C" ci-dessus correspond au contrôleur. Le circuit de commande de rétroaction ci-dessus est utilisé comme fonction de transmission pour visualiser l'entrée / la réponse de l'étape.
valeur initiale
K=1
Kd=1
Wn=1
Ki=1
ita=1
Kp=1
Créer une fonction de transfert
C=matlab.tf([Kd, Kp, Ki],[1,0])
G=matlab.tf([K*Wn**2],[1,2*ita*Wn, Wn**2])
H=1
print("H")
print(H)
print("------------")
print("C")
print(C)
print("------------")
print("G")
print(G)
print("------------")
CG=matlab.series(C,G)
print("C*G")
print(CG)
print("------------")
CGH= matlab.feedback(CG,H,-1)
print("C*G/(1+C*G*H)")
print(CGH)
print("------------")
La sortie est la suivante.
H
1
------------
C
s^2 + s + 1
-----------
s
------------
G
1
-------------
s^2 + 2 s + 1
------------
C*G
s^2 + s + 1
---------------
s^3 + 2 s^2 + s
------------
C*G/(1+C*G*H)
s^2 + s + 1
---------------------
s^3 + 3 s^2 + 2 s + 1
------------
Visualisez l'entrée et la réponse de l'étape à l'aide de la fonction de transfert créée ci-dessus.
t = np.linspace(0, 3, 1000)
yout, T = matlab.step(P, t)
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(T,yout, label="step response")
ax.plot(T,[1]*1000, linestyle="--", label="step input")
ax.set_xlabel("time[s]")
plt.legend(bbox_to_anchor=(1, 0.25), loc='upper right', borderaxespad=0, fontsize=11)
La figure est la suivante.
・ J'ai pu visualiser la réponse échelonnée dans le circuit de rétroaction avec le contrôleur. ・ Ensuite, je voudrais considérer la stabilité et comparer le comportement lorsque les coefficients des fonctions C, G et H sont modifiés.
Recommended Posts