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
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
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_']
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)