Ejemplo n.º 1
0
t_elapse = 0.1  # Simulation time elapsed between each iteration
t_pause = 0.01  # Pause between each iteration

user_input = Sliders()  # Instantiate Sliders class
simAnimation = Animation()  # Instantiate Animate class
dynam = Dynamics()  # Instantiate Dynamics class

t = t_start  # Declare time variable to keep track of simulation time elapsed

while t < t_end:

    plt.ion()  # Make plots interactive
    plt.figure(
        user_input.fig.number)  # Switch current figure to user_input figure
    plt.pause(0.001)  # Pause the simulation to detect user input

    # The dynamics of the model will be propagated in time by t_elapse
    # at intervals of t_Ts.
    t_temp = t + t_elapse
    while t < t_temp:
        dynam.propagateDynamics(  # Propagate the dynamics of the model in time
            user_input.getInputValues())
        t += t_Ts  # Update time elapsed

    plt.figure(
        simAnimation.fig.number)  # Switch current figure to animation figure
    simAnimation.drawSystem(  # Update animation with current user input
        dynam.Outputs())

    # time.sleep(t_pause)
Ejemplo n.º 2
0
# simAnimation = Animation()  # Instantiate Animate class
dynam = Dynamics()  # Instantiate Dynamics class

t = t_start  # Declare time variable to keep track of simulation time elapsed

while t < t_end:

    # Get referenced inputs from signal generators
    ref_input = sig_gen.getRefInputs(t)

    # The dynamics of the model will be propagated in time by t_elapse
    # at intervals of t_Ts.
    t_temp = t + t_elapse
    while t < t_temp:

        states = dynam.Outputs()  # Get current states
        u = ctrl.getForces(ref_input, states)  # Calculate the forces
        dynam.propagateDynamics(
            u)  # Propagate the dynamics of the model in time
        t = round(t + t_Ts, 2)  # Update time elapsed

    # plt.figure(simAnimation.fig.number) # Switch current figure to animation figure
    # simAnimation.drawSystem(          # Update animation with current user input
    # 	dynam.Outputs())
    # plt.pause(0.0001)

    # Organizes the new data to be passed to plotGen
    new_data = [[ref_input[0], states[0]], [u[1], states[1]], [u[0]]]
    plotGen.updateDataHistory(t, new_data)

    plt.figure(plotGen.fig.number)  # Switch current figure to plotGen figure