Commit 4319ca53 authored by Jan Dinkelbach's avatar Jan Dinkelbach

Merge branch 'jzh-validation'

parents 935716c0 5ed303bb
......@@ -36,4 +36,8 @@ __pycache__
# ignore jupyter notebook files
.ipynb_checkpoints
.eggs
\ No newline at end of file
.eggs
#IDEs
.vscode
.json
\ No newline at end of file
from villas.dataprocessing.readtools import *
from villas.dataprocessing.timeseries import *
import villas.dataprocessing.validationtools as validationtools
# reference rtf data directory
file=r"..\..\..\reference-results\Neplan\ReferenceGrids\WSCC-09_RX.rlf"
# Read in NEPLAN data
print('************************ Test for read in all variable start ****************')
ts_NEPLAN = read_timeseries_NEPLAN_loadflow(file)
for i in range(len(ts_NEPLAN)):
print('%s is %s' % (ts_NEPLAN[i].name, ts_NEPLAN[i].values)) # result as list of TimeSeries
print('************************ Test for read in all variable end ****************')
print('\n')
# Read in CIM powerflow data
path = '..\\..\\..\\..\\dpsim_jzh_pfinteg\\dpsim\\build\\Dependencies\\fpotencia\\src\\test\\Logs\\'
logName = 'WSCC-09_Neplan';
dataType = '.csv';
logFilename = path + logName + dataType;
ts_dpsim = read_timeseries_csv(logFilename)
for ts,values in ts_dpsim.items():
ts_abs = values.abs(ts + '.Vpp')
ts_phase = values.phase(ts + '.Vangle')
print(ts_abs.name + ': ' + str(ts_abs.values) + '\n' +ts_phase.name+' :'+ str(ts_phase.values))
# compare CIM-pf data with NEPLAN
net_name='WSCC-9bus'
threshold=0.5
print('************************ convert neplan to modelica start ****************')
res_ref=validationtools.convert_neplan_to_modelica_timeseries(ts_NEPLAN)
for i in range(len(res_ref)):
print(res_ref[i].name)
print(res_ref[i].values)
print('************************ convert neplan to modelica end ****************')
print('************************ convert dpsim to modelica start ****************')
ts_dpsimList=validationtools.convert_dpsim_to_modelica_timeseries(ts_dpsim)
for i in range(len(ts_dpsimList)):
print(ts_dpsimList[i].name)
print(ts_dpsimList[i].values)
print('************************ convert dpsim to modelica end ****************')
res_err=validationtools.compare_timeseries(res_ref,ts_dpsimList)
validationtools.assert_modelia_results(net_name,res_err,threshold)
......@@ -3,7 +3,7 @@
import os
from readtools import *
from .readtools import *
"""
The validationtools are used to validate the simulate results from the model.
......@@ -83,6 +83,20 @@ def convert_simulink_to_modelica_timeseries(simseri):
res.append(simseri[check])
return res
def convert_dpsim_to_modelica_timeseries(dpsim_timeseries):
"""
Convert the steady-state results timeseries from dpsim to modelica timeseries
:param dpsim_timeseries: dict of dpsim timeseries, generated by the csv result file from dpsim
:return: a list of dpsim timeseries
"""
ts_dpsimList=[]
for ts,values in dpsim_timeseries.items():
ts_abs = values.abs(ts + '.Vpp')
ts_phase = values.phase(ts + '.Vangle')
ts_phase.values*=np.pi/180
ts_dpsimList.append(ts_abs)
ts_dpsimList.append(ts_phase)
return ts_dpsimList
def compare_timeseries(ts1, ts2):
"""
......
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