예제 #1
0
 for test_case in range(2):
 
     
     # Set logging data
     
     veh_data = type_DataLog(['Veh_Vel','Pos_X','Pos_Y','Acc_Set','Brk_Set','t_brk'])
     motor_data = type_DataLog(['t_mot','t_mot_reg','t_mot_des','w_mot'])
     power_data = type_DataLog(['p_mot','p_loss','p_elec','soc','v_mot','i_mot'])
     shaft_data = type_DataLog(['w_shaft','w_wheel','w_veh','w_dot_mot','w_dot_veh','w_dot_shaft'])
     
     
     
     # Powertrain import and configuration
     kona_power = Mod_Power()
     # Bodymodel import and configuration
     kona_body = Mod_Body()  
     # Vehicle set
     kona_vehicle = Mod_Veh(kona_power, kona_body)
     drv_kyunghan = Mod_Driver()
     # Behavior model
     beh_speed = Mod_Behavior(drv_kyunghan)
     veh_vel = kona_vehicle.vel_veh
     
     kona_vehicle.swtRegCtl = test_case
     
             
     for sim_step in range(len(sim_time_range)):
         # Arrange vehicle input
         veh_vel_set = u_veh_vel_set[sim_step]
         u_acc_in, u_brk_in =  beh_speed.Lon_control(veh_vel_set, veh_vel)       
         # Vehicle model sim
예제 #2
0
from model_maneuver import Mod_Behavior, Mod_Driver
from model_environment import Mod_Env
from sub_type_def import type_DataLog, type_drvstate
from sub_utilities import Filt_LowPass
from data_roadxy import get_roadxy
from data_config import get_config
#%% 1. Set vehicle parameters
# Load data set
get_config.set_dir(data_dir)
kona_param = get_config.load_mat('CoeffSet_Kona.mat')
kona_param_est = get_config.load_mat('CoeffOpt_Kona.mat')['CoeffSet_Init']

# Powertrain import and configuration
kona_power = Mod_Power()
# Bodymodel import and configuration
kona_drivetrain = Mod_Body()
# Set parameters
kona_drivetrain.Drivetrain_config(
    conf_rd_wheel=kona_param['Conf_wheel_rad'][0, 0],
    conf_jw_mot=kona_param['Conf_iner_mot'][0, 0],
    conf_gear=kona_param['Conf_gear'][0, 0],
    conf_mass_veh=kona_param['Conf_mass_veh_empty'][0, 0],
    conf_mass_add=kona_param_est[0, 3],
    conf_jw_wheel=kona_param_est[0, 2],
    conf_jw_trns_out=kona_param_est[0, 0],
    conf_jw_diff_in=0,
    conf_jw_diff_out=0,
    conf_jw_trns_in=0)

kona_drivetrain.conf_eff_eq_pos = kona_param_est[0, 1]
kona_drivetrain.conf_eff_eq_neg = (2 - 1 / kona_drivetrain.conf_eff_eq_pos)
LS = []
for ItNum in range(ItNumMax):
    swt_valid = ItNum % 100
    egreedy_dis_fac = ItNum // 10
    #    if swt_valid == 0:
    #        agent_dqn.conf_egreedy = 0
    #        print('============================= validation =================================')
    #    else:
    #        agent_dqn.conf_egreedy = e_greedy_config - egreedy_dis_fac/50
    # 3. Import model - set the initial value
    # Powertrain import and configuration
    kona_power = Mod_PowerTrain()
    # ~~~~~
    # Bodymodel import and configuration
    kona_body = Mod_Body()
    kona_body.swtRegCtl = 2
    # ~~~~
    # Vehicle set
    kona_vehicle = Mod_Veh(kona_power, kona_body)
    # ~~~~
    # Driver model import
    drv_kyunghan = Mod_Driver()
    drv_kyunghan.I_gain_lon = 10
    drv_kyunghan.P_gain_lon = 5
    # ~~~~
    # Behavior set
    beh_driving = Mod_Behavior(drv_kyunghan)
    idm_brake = IDM_brake(mod_param)
    # Set the drv config
    #   cruise speed
예제 #4
0
 from model_powertrain import Mod_Power
 from model_maneuver import Mod_Behavior, Mod_Driver
 from model_environment import Mod_Env
 from sub_type_def import type_DataLog
 from math import pi
 os.chdir(data_dir)
 data_driver = io.loadmat('data_driver.mat')
 data_vehicle = io.loadmat('data_vehicle.mat')
 data_motor = io.loadmat('data_emachine.mat')
 os.chdir(test_dir)
 #%% 1. Import models
 # Powertrain import and configuration
 kona_power = Mod_Power()
 # ~~~~~
 # Bodymodel import and configuration
 kona_drivetrain = Mod_Body()
 # ~~~~
 # Vehicle set
 kona_vehicle = Mod_Veh(kona_power, kona_drivetrain)
 # ~~~~
 # Driver model
 drv_kyunghan = Mod_Driver()
 # ~~~~
 # Behavior model
 beh_cycle = Mod_Behavior(drv_kyunghan)
 # ~~~~
 #%% 2. Simulation config
 #  2. brake torque
 u_veh_vel_set = data_driver['var_Desired_Velocity_km_h_'] / 3.6
 Ts = 0.01
 sim_time_range = data_driver['var_Time_s_']
예제 #5
0
 sys.path.append(data_dir)
 sys.path.append(conf_dir)
 sys.path.append(test_dir)
 from model_vehicle import Mod_Veh, Mod_Body
 from model_powertrain import Mod_PowerTrain
 from model_maneuver import Mod_Behavior, Mod_Driver
 from model_environment import Mod_Env
 from sub_type_def import type_DataLog
 from sub_utilities import Get_SqrVal
 #%% 1. Import models
 # Powertrain import and configuration
 kona_power = Mod_PowerTrain()
 kona_power_reg = Mod_PowerTrain()
 # ~~~~~
 # Bodymodel import and configuration
 kona_body = Mod_Body()
 kona_body_reg = Mod_Body()
 kona_body_reg.swtRegCtl = 1
 # ~~~~
 # Vehicle set
 kona_vehicle = Mod_Veh(kona_power, kona_body)
 kona_vehicle_reg = Mod_Veh(kona_power_reg, kona_body_reg)
 #%% 2. Simulation config
 Ts = 0.01
 sim_time = 100
 sim_time_range = np.arange(0, sim_time, 0.01)
 # Initial state
 w_mot = kona_power.ModMotor.w_mot
 t_mot_load = kona_power.ModMotor.t_load
 # ----------------------------- select input set ---------------------------
 u_acc_val = Get_SqrVal([0.3, 0.1, 0], [0.1, 0.3, 0.5], sim_time / Ts)