Пример #1
0
        u_brk_val = 0 * np.ones(len(sim_time_range))
    # Brake : Input_index = 2
    elif Input_index == 2:
        u_acc_val = np.concatenate(
            (0 * np.ones(int(len(sim_time_range) * 0.1)),
             0.3 * np.ones(int(len(sim_time_range) * 0.4)),
             0 * np.ones(int(len(sim_time_range) * 0.5))))
        u_brk_val = np.concatenate(
            (0 * np.ones(int(len(sim_time_range) * 0.55)),
             0.3 * np.ones(int(len(sim_time_range) * 0.45))))
    else:
        print('입력을 똑바로 하세요 ~_~')

    #%% 3. Run simulation
    # Set logging data
    sim1 = type_DataLog(
        ['Veh_Vel', 'Pos_X', 'Pos_Y', 'Acc_Set', 'Brk_Set', 'SOC'])
    w_veh_deb = []
    for sim_step in range(len(sim_time_range)):
        # Arrange vehicle input
        u_acc_in = u_acc_val[sim_step]
        u_brk_in = u_brk_val[sim_step]
        # Vehicle model sim
        [veh_vel, the_wheel] = kona_vehicle.Veh_driven(u_acc=u_acc_in,
                                                       u_brake=u_brk_in)
        [pos_x, pos_y, pos_s, pos_n,
         psi_veh] = kona_vehicle.Veh_position_update(veh_vel, the_wheel)
        SOC = kona_vehicle.ModPower.ModBattery.SOC
        # Store data
        sim1.StoreData([veh_vel, pos_x, pos_y, u_acc_in, u_brk_in, SOC])
        w_veh_deb.append(kona_vehicle.ModDrive.w_vehicle)
Пример #2
0
    if driver_case == 0:
        agent_reg.model.load_weights('driving_case_driver_0.h5')
        agent_reg.epsilon = 0.1
    elif driver_case == 1:
        agent_reg.model.load_weights('driving_case_driver_1.h5')
        agent_reg.epsilon = 0.1
    else:
        agent_reg.model.load_weights('driving_case_driver_2.h5')
        agent_reg.epsilon = 0.1

    #%% 2. Simulation setting
    swt_plot = 'on'
    #%% 2. Simulation
    sim_vehicle = type_DataLog([
        'time', 'veh_vel_measure', 'veh_vel_pre', 'veh_vel', 'veh_acc',
        'acc_measure', 'drv_aps_in', 'drv_bps_in', 'trq_mot', 'w_mot',
        'w_shaft', 'w_wheel', 'reldis_measure'
    ])

    sim_algorithm = type_DataLog(
        ['stDrvInt', 'stRegCtl', 'acc_set_lqr', 'acc_set_classic', 'x1', 'x2'])

    sim_idm = type_DataLog([
        'stBrkSection', 'acc_est', 'acc_ref', 'vel_est', 'vel_ref',
        'reldis_est', 'dis_eff', 'dis_adj', 'dis_adj_delta',
        'param_reldis_init', 'param_reldis_adj', 'flag_idm_run'
    ])

    sim_rl = type_DataLog([
        'state_array', 'action_index', 'rv_sum', 'rv_mod', 'rv_drv', 'rv_saf',
        'rv_eng'
Пример #3
0
Q = np.array(((0.1, 0), (0, 0.001)))
R = np.array((1))

K_lqr, X, eigVals = lqr(A, B, Q, R)

# Lower controller
acc_set_filt = MovAvgFilt(21)
reg_trq_ctl = type_pid_controller()
reg_trq_ctl.P_gain = 50
reg_trq_ctl.I_gain = 500
#%% 2. Simulation setting
swt_plot = 'off'
#%% 2. Simulation
sim_vehicle = type_DataLog([
    'time', 'veh_vel_measure', 'veh_vel_pre', 'veh_vel', 'veh_acc',
    'acc_measure', 'drv_aps_in', 'drv_bps_in', 'trq_mot', 'w_mot', 'w_shaft',
    'w_wheel', 'reldis_measure'
])

sim_algorithm = type_DataLog(
    ['stDrvInt', 'stRegCtl', 'acc_set_lqr', 'acc_set_classic', 'x1', 'x2'])

sim_idm = type_DataLog([
    'stBrkSection', 'acc_est', 'acc_ref', 'vel_est', 'vel_ref', 'reldis_est',
    'dis_eff', 'dis_adj', 'dis_adj_delta', 'param_reldis_init',
    'param_reldis_adj', 'flag_idm_run'
])

# Set initial flag and state
flagRegCtlInit = 0
kona_vehicle.swtRegCtl = 2