-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathrun_pybamm_pack.m
40 lines (34 loc) · 1.17 KB
/
run_pybamm_pack.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
clear all; close all;
%warning off;
clc; tic;
try
pe = pyenv(Version='C:\Users\Tom\Anaconda3\envs\simulink\python');
catch
disp('pyenv already loaded')
end
% Regenerate the casadi objects
py.pybamm_setup.main()
addpath('C:\casadi-windows-matlabR2016a-v3.5.5')
delete(gcp('nocreate'))
disp([datestr(now, 'HH:MM:SS'),' Model set up']);
% The simulink model name
mdl = 'pack_2s1p';
% Read in settings and calculate some derived parameters
param = table2struct(readtable('settings.csv'));
param.battery_volume = param.battery_height*pi*(param.battery_radius)^2;
param.battery_mass = param.battery_volume*param.rho;
param.cooled_surface_area = param.battery_height*2*pi*param.battery_radius;
param.t_init = param.reference_temperature;
param.I_app = param.I_mag * param.I_sign_init;
% set drive cycle
param.drive_cycle = 'sflip';
% initial guesses for ocv and r_int
param.ocv_init = 4.0;
param.r_int_init = 0.1;
% Run the simulation
N_sum = 1;
in(1:N_sum) = Simulink.SimulationInput(mdl);
disp([datestr(now, 'HH:MM:SS'),' Start simulink']);
parsimOut = sim(in, 'ShowProgress' ,true);
disp([datestr(now, 'HH:MM:SS'),' Finish simulink']);
toc;