wEig, null = control.eig_of_series(wAs) indices = np.int32(np.round(speeds * 10)) aEig, null = control.eig_of_series(aAs[indices]) rlcfig = cbi.plot_rlocus(speeds, iEig, wEig, aEig) rlcfig.set_size_inches(4., 4.) rlcfig.savefig('../../figures/systemidentification/A-A-rlocus.png') rlcfig.savefig('../../figures/systemidentification/A-A-rlocus.pdf') # bode plots speeds = np.array([2.0, 4.0, 6.0, 9.0]) null, iAs, iBs = bicycle.benchmark_state_space_vs_speed( iM, iC1, iK0, iK2, speeds) null, wAs, wBs = bicycle.benchmark_state_space_vs_speed( wM, wC1, wK0, wK2, speeds) figs = cbi.plot_bode(speeds, iAs, iBs, wAs, wBs, aAs, aBs) for fig in figs: fig.set_size_inches(5., 5.) leg = fig.phaseAx.legend(loc=4) plt.setp(leg.get_texts(), fontsize='5.0') #'xx-small') figs[0].savefig('../../figures/systemidentification/A-A-Tphi-Phi.png') figs[0].savefig('../../figures/systemidentification/A-A-Tphi-Phi.pdf') figs[1].savefig('../../figures/systemidentification/A-A-Tphi-Del.png') figs[1].savefig('../../figures/systemidentification/A-A-Tphi-Del.pdf') figs[2].savefig('../../figures/systemidentification/A-A-Tdel-Phi.png') figs[2].savefig('../../figures/systemidentification/A-A-Tdel-Phi.pdf') figs[3].savefig('../../figures/systemidentification/A-A-Tdel-Del.png')
def plot(canon, H, riders, environments, idMats): filename = '' for rider in riders: filename += '-' + rider for env in environments: filename += '-' + env.replace(' ', '') filename = '../plots/' + filename[1:] print filename v0 = 0. vf = 10. num = 100 # identified iM, iC1, iK0, iK2, iH = idMats speeds, iAs, iBs = bicycle.benchmark_state_space_vs_speed(iM, iC1, iK0, iK2, v0=v0, vf=vf, num=num) w, v = control.eigen_vs_parameter(iAs) iEigenvalues, iEigenvectors = control.sort_modes(w, v) # whipple model (mean) wM, wC1, wK0, wK2, wH = cbi.mean_canon(riders, canon, H) speeds, wAs, wBs = bicycle.benchmark_state_space_vs_speed(wM, wC1, wK0, wK2, v0=v0, vf=vf, num=num) w, v = control.eigen_vs_parameter(wAs) wEigenvalues, wEigenvectors = control.sort_modes(w, v) # arm model (mean) aAs, aBs, aSpeed = cbi.mean_arm(riders) indices = np.int32(np.round(speeds * 10)) w, v = control.eigen_vs_parameter(aAs[indices]) aEigenvalues, aEigenvectors = control.sort_modes(w, v) # eigenvalue plot rlfig = cbi.plot_rlocus_parts(speeds, iEigenvalues, wEigenvalues, aEigenvalues) rlfig.savefig(filename + '-eig.png') # root locus v0 = 0. vf = 10. num = 20 speeds, iAs, iBs = bicycle.benchmark_state_space_vs_speed(iM, iC1, iK0, iK2, v0=v0, vf=vf, num=num) iEig, null = control.eigen_vs_parameter(iAs) speeds, wAs, wBs = bicycle.benchmark_state_space_vs_speed(wM, wC1, wK0, wK2, v0=v0, vf=vf, num=num) wEig, null = control.eigen_vs_parameter(wAs) indices = np.int32(np.round(speeds * 10)) aEig, null = control.eigen_vs_parameter(aAs[indices]) rlcfig = cbi.plot_rlocus(speeds, iEig, wEig, aEig) rlcfig.savefig(filename + '-rlocus.png') # bode plots speeds = np.array([2.0, 4.0, 6.0, 9.0]) null, iAs, iBs = bicycle.benchmark_state_space_vs_speed(iM, iC1, iK0, iK2, speeds) null, wAs, wBs = bicycle.benchmark_state_space_vs_speed(wM, wC1, wK0, wK2, speeds) figs = cbi.plot_bode(speeds, iAs, iBs, wAs, wBs, aAs, aBs) figs[0].savefig(filename + '-Tphi.png') figs[1].savefig(filename + '-Tdel.png')
wEig, null = control.eig_of_series(wAs) indices = np.int32(np.round(speeds * 10)) aEig, null = control.eig_of_series(aAs[indices]) rlcfig = cbi.plot_rlocus(speeds, iEig, wEig, aEig) rlcfig.set_size_inches(3.0, 3.0) plt.tight_layout() rlcfig.savefig('../figures/L-P-rlocus.pdf') # Plot Bode plots of the four basic transfer functions for a few speeds. speeds = np.array([2.0, 4.0, 6.0, 9.0]) null, iAs, iBs = bicycle.benchmark_state_space_vs_speed(iM, iC1, iK0, iK2, speeds) null, wAs, wBs = bicycle.benchmark_state_space_vs_speed(wM, wC1, wK0, wK2, speeds) figs = cbi.plot_bode(speeds, iAs, iBs, wAs, wBs, aAs, aBs) for fig in figs: fig.set_size_inches(4.5, 3.5) leg = fig.phaseAx.legend(loc=4) plt.setp(leg.get_texts(), fontsize='5.0') figs[0].savefig('../figures/L-P-Tphi-Phi.pdf') figs[1].savefig('../figures/L-P-Tphi-Del.pdf') figs[2].savefig('../figures/L-P-Tdel-Phi.pdf') figs[3].savefig('../figures/L-P-Tdel-Del.pdf') # Generate a comparison table in LaTeX def to_latex_bmatrix(arr):