Ik twijfel over een methode om de positie van de polen weer te geven. Methode 1 heeft als voordeel dat de polen voor eender welke K (niet enkel deze gebruikt in root_locus()) berekend kunnen worden. Methode 2 vergt minder rekenwerk.
methode 1:
if K == 0:
controled_sys = sys
else:
C = control.tf(K,1)
controled_sys = control.feedback(C*sys,1)
poles_k = control.root_locus(sys, np.linspace(0,10,100),Plot=True)
poles = control.pole(controled_sys)
plt.plot(np.real(poles),np.imag(poles),'or')
methode 2:
poles_k = control.root_locus(sys, np.linspace(0,10,100),Plot=True)
Dit returned 2 arrays 1 met de waarden van K waarvoorberekend en 1 met de
Ik twijfel over een methode om de positie van de polen weer te geven. Methode 1 heeft als voordeel dat de polen voor eender welke K (niet enkel deze gebruikt in root_locus()) berekend kunnen worden. Methode 2 vergt minder rekenwerk.
methode 1: if K == 0: controled_sys = sys else: C = control.tf(K,1) controled_sys = control.feedback(C*sys,1) poles_k = control.root_locus(sys, np.linspace(0,10,100),Plot=True) poles = control.pole(controled_sys) plt.plot(np.real(poles),np.imag(poles),'or') methode 2: poles_k = control.root_locus(sys, np.linspace(0,10,100),Plot=True)
Dit returned 2 arrays 1 met de waarden van K waarvoorberekend en 1 met de
positie van de ppo op dat moment
itemindex = np.where(poles_k[1]==K) plt.plot(np.real(poles_k[0][itemindex]),np.imag(poles_k[0][itemindex]),'or')