From 3d57885423dbe8f0a2d846e314abc2c5ec0ac633 Mon Sep 17 00:00:00 2001 From: philip neighbour Date: Sun, 23 Feb 2020 11:15:58 -0700 Subject: [PATCH] added various root_locus plotting examples --- examples/root_locus.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 examples/root_locus.py diff --git a/examples/root_locus.py b/examples/root_locus.py new file mode 100755 index 000000000..07892c0d6 --- /dev/null +++ b/examples/root_locus.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python +import control as ct +# from control.rlocus import root_locus +import numpy as np +import matplotlib.pyplot as plt +import sys + +# create a transfer function +gs_tf=ct.tf([1,10,5],[1,0,0]) + +kvect=np.linspace(0,1.5,1000) + +rlist,klist=ct.root_locus(gs_tf,kvect=None,plot=True) +plt.title("None") +plt.show() + +# root locus plot +rlist,klist=ct.root_locus(gs_tf,kvect=kvect,plot=True) +plt.title("kvect") +plt.legend(loc='best') +plt.show() + +# calculate the root locus for matplotlib plot +rlist,klist=ct.root_locus(gs_tf,kvect=kvect,Plot=False) + +# matplotlib plot +plt.title("matplotlib") +for index in range(len(rlist[0])): + plt.plot(np.real(rlist[:,index]),np.imag(rlist[:,index])) +plt.show()