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')
Exemplo n.º 3
0
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):