Commit c3169344 authored by Markus Mirz's avatar Markus Mirz

use dpsim code for simulink csv and .real and .imag

parent 240b3a2e
......@@ -56,20 +56,47 @@ def read_timeseries_PLECS(filename, timeseries_names=None):
def read_timeseries_simulink(filename, timeseries_names=None):
pd_df = pd.read_csv(filename)
timeseries_list = []
timeseries_list = {}
cmpl_result_columns = []
real_result_columns = []
if timeseries_names is None:
# No trajectory names specified, thus read in all
timeseries_names = list(pd_df.columns.values)
timeseries_names.remove('time')
for name in timeseries_names:
timeseries_list.append(TimeSeries(name, pd_df['time'].values, pd_df[name].values))
# No column names specified, thus read in all and strip off spaces
pd_df.rename(columns=lambda x: x.strip(), inplace=True)
column_names = list(pd_df.columns.values)
# Remove timestamps column name and store separately
column_names.remove('time')
timestamps = pd_df.iloc[:, 0]
# Find real and complex variable names
real_string = '.real'
imaginary_string = '.imag'
for column in column_names:
if real_string in column:
tmp = column.replace(real_string, '')
cmpl_result_columns.append(tmp)
#print("Found complex variable: " + tmp)
elif not imaginary_string in column:
real_result_columns.append(column)
#print("Found real variable: " + column)
for column in real_result_columns:
timeseries_list[column] = TimeSeries(column, timestamps, pd_df[column])
for column in cmpl_result_columns:
timeseries_list[column] = TimeSeries(column, timestamps,
np.vectorize(complex)(pd_df[column + real_string],
pd_df[column + imaginary_string]))
else:
# Read in specified time series
for name in timeseries_names:
timeseries_list.append(TimeSeries(name, pd_df['time'].values, pd_df[name].values))
print('cannot read specified columns yet')
print('Simulink results column names: ' + str(timeseries_names))
print('Simulink results number: ' + str(len(timeseries_list)))
print('Simulink results real column names: ' + str(real_result_columns))
print('Simulink results complex column names: ' + str(cmpl_result_columns))
print('Simulink results variable number: ' + str(len(timeseries_list)))
print('Simulink results length: ' + str(len(timestamps)))
return timeseries_list
......@@ -95,8 +122,8 @@ def read_timeseries_dpsim(filename, timeseries_names=None):
timestamps = pd_df.iloc[:, 0]
# Find real and complex variable names
real_string = '_re'
imaginary_string = '_im'
real_string = '.real'
imaginary_string = '.imag'
for column in column_names:
if real_string in column:
tmp = column.replace(real_string, '')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment