Skip to content
Snippets Groups Projects
Commit fb95623f authored by mads's avatar mads
Browse files

dlc + test

parent d039b7af
No related branches found
No related tags found
No related merge requests found
Showing
with 1197 additions and 1 deletion
'''
Created on 23/09/2014
@author: MMPE
'''
import numpy as np
import glob
import os
HOURS_PR_YEAR = 365.0 * 24.0
def Weibull(u, k, start, stop, step):
C = 2 * u / np.sqrt(np.pi)
cdf = lambda x :-np.exp(-(x / C) ** k)
wsprange = (np.arange(start, stop + step * 0.01, step)).tolist()
return {wsp:-cdf(wsp - step / 2) + cdf(wsp + step / 2) for wsp in wsprange}
def dlc_dict(Vin=4, Vr=12, Vout=26, Vref=50, Vstep=2, shape_k=2):
weibull = Weibull(Vref * 0.2, shape_k, Vin, Vout, Vstep)
return { #dlc : (hour_dist, yaw, wsp
'12': (.975, weibull, {0:.5, 10:.25, -10:.25}), #normal
'64': (.025, Weibull(Vref * 0.2, shape_k, Vin, Vref * 0.7, Vstep), {8:.5, -8:.5}), #idle
'24': (50.0 / HOURS_PR_YEAR, weibull, {-20:.5, 20:.5}), # Yaw error
'31': (1100 * 100 / 3600 / HOURS_PR_YEAR, {Vin:1000 / 1100, Vr:50 / 1100, Vout:50 / 1100}, {0:1}), #start ups
'41': (1100 * 100 / 3600 / HOURS_PR_YEAR, {Vin:1000 / 1100, Vr:50 / 1100, Vout:50 / 1100}, {0:1}) #shut down
}
def file_hour_lst(path, dlc_dict, dlc_folder="DLC%s_IEC61400-1ed3/",
dlc_name="dlc%s_wsp%02d_wdir%03d_s*.sel", years=20.0):
"""Create a list of (filename, hours_pr_year) that can be used as input for LifeTimeEqLoad
Parameters
----------
path : str
path to result folder, i.e. dlc12 result files are found in path + "DLC12_IEC61400-1ed3/*.sel"
dlc_dict : dict
Dictionary of {dlc_id: (dlc_prob, wsp_dict, wdir_dict, wsp),...} where\n
- dlc_id is the design load case id, e.g. '12'\n
- dlc_prob is the probability of the dlc_id, e.g. 0.95 for dlc12, i.e 95% normal operation\n
- wsp_dict is a dictionary of {wsp: wsp_prob,...} see dlc_fatigue.Weibull where\n
- wsp is a wind speed, e.g. 10 for 10m/s
- wsp_prob is the probability of the wind speed, e.g. .14 for 14%
- wdir_dict is a dictionary of {wdir: wdir_prob,...} where\n
- wdir is a wind direction(yaw error), e.g. 10 for 10 deg yaw error
- wdir_prob is the probability of the wind direction(yaw error), e.g. .25 for 25%
dlc_folder : str, default="DLC%s_IEC61400-1ed3/"
String with the DLC subfolder names. One string substitution is required
(%s), and should represent the DLC number (withouth comma or point)
dlc_name : str, default="dlc%s_wsp%02d_wdir%03d_s*.sel"
String with the DLC names. One string, and two integer substitutions
are required (%s, %02d, %03d), indicating the DLC number (e.g. '12'),
the windspeed (e.g. int(6)), and wind speed direction (e.g. int(10))
respectively. Notice that different seed numbers are covered with the
wildcard *.
years : float, default=20.0
Life time years.
Returns
-------
file_hour_lst : list
[(filename, hours),...] where\n
- filename is the name of the file, including path
- hours is the number of hours pr. 20 year (or whatever is defined in
the `years` variable) of this file
"""
fh_lst = []
for dlc_id in sorted(dlc_dict.keys()):
dlc_dist, wsp_dict, wdir_dict = dlc_dict[dlc_id]
for wsp in sorted(wsp_dict.keys()):
wsp_dist = wsp_dict[wsp]
for wdir in sorted(wdir_dict.keys()):
wdir_dist = wdir_dict[wdir]
folder = os.path.join(path, dlc_folder % dlc_id)
name = dlc_name % (dlc_id, wsp, wdir % 360)
files = glob.glob(os.path.join(folder, name))
for f in sorted(files):
f_prob = dlc_dist * wsp_dist * wdir_dist / len(files)
f_hours_lifetime = years * HOURS_PR_YEAR * f_prob
fh_lst.append((f, f_hours_lifetime))
return fh_lst
'''
Created on 01/10/2014
@author: MMPE
'''
import xlrd
import pandas as pd
import numpy as np
import glob
import os
import functools
from wetb.hawc2.sel_file import SelFile
from wetb.functions.caching import cache_function
HOURS_PR_20YEAR = 20 * 365 * 24
def Weibull(u, k, start, stop, step):
C = 2 * u / np.sqrt(np.pi)
cdf = lambda x :-np.exp(-(x / C) ** k)
return {wsp:-cdf(wsp - step / 2) + cdf(wsp + step / 2) for wsp in np.arange(start, stop + step, step)}
class DLCHighLevel(object):
def __init__(self, filename):
self.filename = filename
wb = xlrd.open_workbook(self.filename)
# Variables
sheet = wb.sheet_by_name("Variables")
for row_index in range(1, sheet.nrows):
name = str(sheet.cell(row_index, 0).value).lower()
value = sheet.cell(row_index, 1).value
setattr(self, name, value)
if not hasattr(self, "res_path"):
raise Warning("The 'Variables' sheet of '%s' must contain the variable 'res_path' specifying the path to the result folder" % self.filename)
self.res_path = os.path.join(os.path.dirname(self.filename), self.res_path)
#DLC sheet
sheet = wb.sheet_by_name("DLC")
self.dlc_df = pd.DataFrame({sheet.cell(0, col_index).value.lower(): [sheet.cell(row_index, col_index).value for row_index in range(2, sheet.nrows) if sheet.cell(row_index, 0).value != ""] for col_index in range(sheet.ncols)})
for k in ['name', 'load', 'wsp', 'wdir', 'dlc_dist', 'wsp_dist', 'wdir_dist']:
assert k.lower() in self.dlc_df.keys(), "DLC sheet must have a '%s' column" % k
self.dlc_df['name'] = [n.lower().replace("dlc", "") for n in self.dlc_df['name']]
if 'psf' not in self.dlc_df:
self.dlc_df['psf'] = 1
# Sensors sheet
sheet = wb.sheet_by_name("Sensors")
name_col_index = [sheet.cell(0, col_index).value.lower() for col_index in range(0, sheet.ncols)].index("name")
self.sensor_df = pd.DataFrame({sheet.cell(0, col_index).value.lower(): [sheet.cell(row_index, col_index).value for row_index in range(1, sheet.nrows) if sheet.cell(row_index, name_col_index).value != ""] for col_index in range(sheet.ncols)})
for k in ['Name', 'Nr']:
assert k.lower() in self.sensor_df.keys(), "Sensor sheet must have a '%s' column" % k
assert not any(self.sensor_df['name'].duplicated()), "Duplicate sensor names: %s" % ",".join(self.sensor_df['name'][self.sensor_df['name'].duplicated()].values)
for k in ['description', 'unit', 'statistic', 'ultimate', 'fatigue', 'm', 'neql', 'extremeload', 'bearingdamage', 'mindistance', 'maxdistance']:
if k not in self.sensor_df.keys():
self.sensor_df[k] = ""
for _, row in self.sensor_df[self.sensor_df['fatigue'] != ""].iterrows():
assert isinstance(row['m'], (int, float)), "Invalid m-value for %s (m='%s')" % (row['name'], row['m'])
assert isinstance(row['neql'], (int, float)), "Invalid NeqL-value for %s (NeqL='%s')" % (row['name'], row['neql'])
for name, nrs in zip(self.sensor_info("extremeload").name, self.sensor_info("extremeload").nr):
assert (np.atleast_1d((eval(str(nrs)))).shape[0] == 6), "'Nr' for Extremeload-sensor '%s' must contain 6 sensors (Fx,Fy,Fz,Mx,My,Mz)" % name
def __str__(self):
return self.filename
def sensor_info(self, sensors=[]):
if sensors != []:
return self.sensor_df[functools.reduce(np.logical_or, [((self.sensor_df.get(f, np.array([""] * len(self.sensor_df.name))).values != "") | (self.sensor_df.name == f)) for f in np.atleast_1d(sensors)])]
else:
return self.sensor_df
def dlc_variables(self, dlc):
dlc_row = self.dlc_df[self.dlc_df['name'] == dlc]
def get_lst(x):
if isinstance(x, pd.Series):
x = x.iloc[0]
if ":" in str(x):
start, step, stop = [float(eval(v, globals(), self.__dict__)) for v in x.lower().split(":")]
return list(np.arange(start, stop + step, step))
else:
return [float(eval(v, globals(), self.__dict__)) for v in str(x).lower().replace("/", ",").split(",")]
wsp = get_lst(dlc_row['wsp'])
wdir = get_lst(dlc_row['wdir'])
return wsp, wdir
def fatigue_distribution(self):
fatigue_dist = {}
data = self.dlc_df #[[sheet.cell(row_index, col_index).value for row_index in range(1, sheet.nrows)] for col_index in range(sheet.ncols)]
for i, load in enumerate(data['load']):
if "F" in str(load).upper():
dlc = data['name'][i].lower().replace("dlc", "")
def fmt(v):
if "#" in str(v):
return v
else:
if v == "":
return 0
else:
return float(v) / 100
dlc_dist = fmt(data['dlc_dist'][i])
wsp_dist = data['wsp_dist'][i]
wsp = data['wsp'][i]
if wsp_dist.lower() == "weibull" or wsp_dist.lower() == "rayleigh":
start, step, stop = [float(eval(v, globals(), self.__dict__)) for v in wsp.lower().split(":")]
wsp_dist = Weibull(self.vref * .2, 2, start, stop, step)
else:
wsp = [(eval(v, globals(), self.__dict__)) for v in str(wsp).lower().replace("/", ",").split(",")]
wsp_dist = [fmt(v) for v in str(wsp_dist).lower().replace("/", ",").split(",")]
assert len(wsp) == len(wsp_dist), "\nWsp: %s\nWsp_dist: %s" % (wsp , wsp_dist)
wsp_dist = {k:v for k, v in zip(wsp, wsp_dist)}
wdir_dist = [float(v) for v in str(data['wdir_dist'][i]).replace("/", ",").split(",")]
wdir = [float(v) for v in str(data['wdir'][i]).replace("/", ",").split(",")]
fatigue_dist[dlc] = (dlc_dist, wsp_dist, {k:v / 100 for k, v in zip(wdir, wdir_dist)})
return fatigue_dist
def file_hour_lst(self):
"""Create a list of (filename, hours_pr_year) that can be used as input for LifeTimeEqLoad
Returns
-------
file_hour_lst : list
[(filename, hours),...] where\n
- filename is the name of the file, including path
- hours is the number of hours pr. 20 year of this file
"""
fh_lst = []
dlc_dict = self.fatigue_distribution()
for dlc_id in sorted(dlc_dict.keys()):
dlc_dist, wsp_dict, wdir_dict = dlc_dict[dlc_id]
for wsp in sorted(wsp_dict.keys()):
wsp_dist = wsp_dict[wsp]
for wdir in sorted(wdir_dict.keys()):
wdir_dist = wdir_dict[wdir]
if not hasattr(self, "res_folder"):
folder = ""
elif "%" in self.res_folder:
folder = self.res_folder % dlc_id
else:
folder = self.res_folder
files = glob.glob(os.path.join(self.res_path , folder, "dlc%s_wsp%02d_wdir%03d*.sel" % (dlc_id, wsp, wdir % 360)))
for f in sorted(files):
if "#" in str(dlc_dist):
duration = SelFile(f).duration
dlc_dist = float(dlc_dist[1:]) * duration / (60 * 60 * 24 * 365)
if "#" in str(wsp_dist):
total = sum([float(v[1:]) for v in wsp_dict.values()])
wsp_dist = float(wsp_dist[1:]) / total
f_prob = dlc_dist * wsp_dist * wdir_dist / len(files)
f_hours_pr_20year = HOURS_PR_20YEAR * f_prob
fh_lst.append((f, f_hours_pr_20year))
return fh_lst
def dlc_lst(self, load='all'):
dlc_lst = np.array(self.dlc_df['name'])[np.array([load == 'all' or load.lower() in d.lower() for d in self.dlc_df['load']])]
return [v.lower().replace('dlc', '') for v in dlc_lst]
@cache_function
def psf(self):
return {dlc.lower().replace('dlc', ''): float((psf, 1)[psf == ""]) for dlc, psf in zip(self.dlc_df['name'], self.dlc_df['psf']) if dlc != ""}
if __name__ == "__main__":
dlc_hl = DLCHighLevel(r'X:\NREL5MW\dlc.xlsx')
#print (DLCHighLevelInputFile(r'C:\mmpe\Projects\DLC.xlsx').sensor_info(0, 0, 1)['Name'])
#print (dlc_dict()['64'])
#print (dlc_hl.fatigue_distribution()['64'])
print (dlc_hl.file_hour_lst(r"X:\NREL5MW/C0008/res/"))
File added
File added
________________________________________________________________________________________________________________________
Version ID : HAWC2MB 11.8
Time : 17:43:56
Date : 26:09.2014
________________________________________________________________________________________________________________________
Result file : ./res/dlc12_iec61400-1ed3/dlc12_wsp04_wdir350_s3001.dat
________________________________________________________________________________________________________________________
Scans Channels Time [sec] Format
30000 137 600.000 BINARY
Channel Variable Description
1 Time s Time
2 bea1 angle deg shaft_rot angle
3 bea1 angle_speed rpm shaft_rot angle speed
4 bea1 angle deg pitch1 angle
5 bea1 angle_speed deg/s pitch1 angle speed
6 bea1 angle deg pitch2 angle
7 bea1 angle_speed deg/s pitch2 angle speed
8 bea1 angle deg pitch3 angle
9 bea1 angle_speed deg/s pitch3 angle speed
10 Omega rad/s Rotor speed
11 Ae rot. torque kNm Aero rotor torque
12 Ae rot. power kW Aero rotor power
13 Ae rot. thrust kN Aero rotor thrust
14 WSP gl. coo.,Vx m/s Free wind speed Vx, gl. coo, of gl. pos 0.00, 0.00, -90.00
15 WSP gl. coo.,Vy m/s Free wind speed Vy, gl. coo, of gl. pos 0.00, 0.00, -90.00
16 WSP gl. coo.,Vz m/s Free wind speed Vz, gl. coo, of gl. pos 0.00, 0.00, -90.00
17 Mx coo: tower kNm MomentMx Mbdy:tower nodenr: 1 coo: tower tower base
18 My coo: tower kNm MomentMy Mbdy:tower nodenr: 1 coo: tower tower base
19 Mz coo: tower kNm MomentMz Mbdy:tower nodenr: 1 coo: tower tower base
20 Mx coo: tower kNm MomentMx Mbdy:tower nodenr: 8 coo: tower yaw bearing
21 My coo: tower kNm MomentMy Mbdy:tower nodenr: 8 coo: tower yaw bearing
22 Mz coo: tower kNm MomentMz Mbdy:tower nodenr: 8 coo: tower yaw bearing
23 Mx coo: shaft kNm MomentMx Mbdy:shaft nodenr: 4 coo: shaft main bearing
24 My coo: shaft kNm MomentMy Mbdy:shaft nodenr: 4 coo: shaft main bearing
25 Mz coo: shaft kNm MomentMz Mbdy:shaft nodenr: 4 coo: shaft main bearing
26 Mx coo: blade1 kNm MomentMx Mbdy:blade1 nodenr: 3 coo: blade1 blade 1 root
27 My coo: blade1 kNm MomentMy Mbdy:blade1 nodenr: 3 coo: blade1 blade 1 root
28 Mz coo: blade1 kNm MomentMz Mbdy:blade1 nodenr: 3 coo: blade1 blade 1 root
29 Mx coo: local kNm MomentMx Mbdy:blade1 nodenr: 10 coo: local blade 1 50% local e coo
30 My coo: local kNm MomentMy Mbdy:blade1 nodenr: 10 coo: local blade 1 50% local e coo
31 Mz coo: local kNm MomentMz Mbdy:blade1 nodenr: 10 coo: local blade 1 50% local e coo
32 Mx coo: blade2 kNm MomentMx Mbdy:blade2 nodenr: 3 coo: blade2 blade 2 root
33 My coo: blade2 kNm MomentMy Mbdy:blade2 nodenr: 3 coo: blade2 blade 2 root
34 Mz coo: blade2 kNm MomentMz Mbdy:blade2 nodenr: 3 coo: blade2 blade 2 root
35 Mx coo: local kNm MomentMx Mbdy:blade2 nodenr: 10 coo: local blade 2 50% local e coo
36 My coo: local kNm MomentMy Mbdy:blade2 nodenr: 10 coo: local blade 2 50% local e coo
37 Mz coo: local kNm MomentMz Mbdy:blade2 nodenr: 10 coo: local blade 2 50% local e coo
38 Mx coo: blade3 kNm MomentMx Mbdy:blade3 nodenr: 3 coo: blade3 blade 3 root
39 My coo: blade3 kNm MomentMy Mbdy:blade3 nodenr: 3 coo: blade3 blade 3 root
40 Mz coo: blade3 kNm MomentMz Mbdy:blade3 nodenr: 3 coo: blade3 blade 3 root
41 Mx coo: local kNm MomentMx Mbdy:blade3 nodenr: 10 coo: local blade 3 50% local e coo
42 My coo: local kNm MomentMy Mbdy:blade3 nodenr: 10 coo: local blade 3 50% local e coo
43 Mz coo: local kNm MomentMz Mbdy:blade3 nodenr: 10 coo: local blade 3 50% local e coo
44 State pos x coo: global m State pos x Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
45 State pos y coo: global m State pos y Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
46 State pos z coo: global m State pos z Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
47 State acc x coo: global m/s^2 State acc x Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
48 State acc y coo: global m/s^2 State acc y Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
49 State acc z coo: global m/s^2 State acc z Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
50 State pos x coo: global m State pos x Mbdy:tower E-nr: 3 Z-rel:1.00 coo: global tower approx tip height
51 State pos y coo: global m State pos y Mbdy:tower E-nr: 3 Z-rel:1.00 coo: global tower approx tip height
52 State pos z coo: global m State pos z Mbdy:tower E-nr: 3 Z-rel:1.00 coo: global tower approx tip height
53 State pos x coo: blade1 m State pos x Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: blade1 blade 1 tip pos
54 State pos y coo: blade1 m State pos y Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: blade1 blade 1 tip pos
55 State pos z coo: blade1 m State pos z Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: blade1 blade 1 tip pos
56 State pos x coo: blade2 m State pos x Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: blade2 blade 2 tip pos
57 State pos y coo: blade2 m State pos y Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: blade2 blade 2 tip pos
58 State pos z coo: blade2 m State pos z Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: blade2 blade 2 tip pos
59 State pos x coo: blade3 m State pos x Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: blade3 blade 3 tip pos
60 State pos y coo: blade3 m State pos y Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: blade3 blade 3 tip pos
61 State pos z coo: blade3 m State pos z Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: blade3 blade 3 tip pos
62 State pos x coo: global m State pos x Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: global blade 1 tip pos
63 State pos y coo: global m State pos y Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: global blade 1 tip pos
64 State pos z coo: global m State pos z Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: global blade 1 tip pos
65 State pos x coo: global m State pos x Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: global blade 2 tip pos
66 State pos y coo: global m State pos y Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: global blade 2 tip pos
67 State pos z coo: global m State pos z Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: global blade 2 tip pos
68 State pos x coo: global m State pos x Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: global blade 3 tip pos
69 State pos y coo: global m State pos y Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: global blade 3 tip pos
70 State pos z coo: global m State pos z Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: global blade 3 tip pos
71 WSP Vx, glco, R= 61.5 m/s Wind speed Vx of blade 1 at radius 61.52, global coo.
72 WSP Vy, glco, R= 61.5 m/s Wind speed Vy of blade 1 at radius 61.52, global coo.
73 WSP Vz, glco, R= 61.5 m/s Wind speed Vz of blade 1 at radius 61.52, global coo.
74 Alfa, R= 45.0 deg Angle of attack of blade 1 at radius 45.17
75 Alfa, R= 45.0 deg Angle of attack of blade 2 at radius 45.17
76 Alfa, R= 45.0 deg Angle of attack of blade 3 at radius 45.17
77 Cl, R= 45.0 deg Cl of blade 1 at radius 45.17
78 Cl, R= 45.0 deg Cl of blade 2 at radius 45.17
79 Cl, R= 45.0 deg Cl of blade 3 at radius 45.17
80 DLL out 1: 1 - DLL : 1 outvec : 1 time
81 DLL out 1: 2 - DLL : 1 outvec : 2 slow speed shaft rad/s
82 DLL out 1: 3 - DLL : 1 outvec : 3 pitch angle 1
83 DLL out 1: 4 - DLL : 1 outvec : 4 pitch angle 2
84 DLL out 1: 5 - DLL : 1 outvec : 5 pitch angle 3
85 DLL out 1: 6 - DLL : 1 outvec : 6 wsp_x_global
86 DLL out 1: 7 - DLL : 1 outvec : 7 wsp_y_global
87 DLL out 1: 8 - DLL : 1 outvec : 8 wsp_z_global
88 DLL out 1: 9 - DLL : 1 outvec : 9 elec. pwr
89 DLL out 1: 10 - DLL : 1 outvec : 10 grid flag
90 DLL inp 1: 1 - DLL : 1 inpvec : 1 generator torque reference [nm]
91 DLL inp 1: 2 - DLL : 1 inpvec : 2 pitch angle reference of blade 1 [rad]
92 DLL inp 1: 3 - DLL : 1 inpvec : 3 pitch angle reference of blade 2 [rad]
93 DLL inp 1: 4 - DLL : 1 inpvec : 4 pitch angle reference of blade 3 [rad]
94 DLL inp 1: 5 - DLL : 1 inpvec : 5 power reference [w]
95 DLL inp 1: 6 - DLL : 1 inpvec : 6 filtered wind speed [m/s]
96 DLL inp 1: 7 - DLL : 1 inpvec : 7 filtered rotor speed [rad/s]
97 DLL inp 1: 8 - DLL : 1 inpvec : 8 filtered rotor speed error for torque [rad/s]
98 DLL inp 1: 9 - DLL : 1 inpvec : 9 bandpass filtered rotor speed [rad/s]
99 DLL inp 1: 10 - DLL : 1 inpvec : 10 proportional term of torque contr. [nm]
100 DLL inp 1: 11 - DLL : 1 inpvec : 11 integral term of torque controller [nm]
101 DLL inp 1: 12 - DLL : 1 inpvec : 12 minimum limit of torque [nm]
102 DLL inp 1: 13 - DLL : 1 inpvec : 13 maximum limit of torque [nm]
103 DLL inp 1: 14 - DLL : 1 inpvec : 14 torque limit switch based on pitch [-]
104 DLL inp 1: 15 - DLL : 1 inpvec : 15 filtered rotor speed error for pitch [rad/s]
105 DLL inp 1: 16 - DLL : 1 inpvec : 16 power error for pitch [w]
106 DLL inp 1: 17 - DLL : 1 inpvec : 17 proportional term of pitch controller [rad]
107 DLL inp 1: 18 - DLL : 1 inpvec : 18 integral term of pitch controller [rad]
108 DLL inp 1: 19 - DLL : 1 inpvec : 19 minimum limit of pitch [rad]
109 DLL inp 1: 20 - DLL : 1 inpvec : 20 maximum limit of pitch [rad]
110 DLL inp 1: 21 - DLL : 1 inpvec : 21 torque reference from dt dammper [nm]
111 DLL inp 1: 22 - DLL : 1 inpvec : 22 status signal [-]
112 DLL inp 1: 23 - DLL : 1 inpvec : 23 total added pitch rate [rad/s]
113 DLL inp 1: 25 - DLL : 1 inpvec : 25 flag for mechnical brake [0=off/1=on]
114 DLL inp 1: 26 - DLL : 1 inpvec : 26 flag for emergency pitch stop [0=off/1=on]
115 DLL out 2: 1 - DLL : 2 outvec : 1 time
116 DLL out 2: 2 - DLL : 2 outvec : 2 electrical torque reference [nm]
117 DLL out 2: 3 - DLL : 2 outvec : 3 omega lss
118 DLL inp 2: 1 - DLL : 2 inpvec : 1 mgen lss [nm]
119 DLL inp 2: 2 - DLL : 2 inpvec : 2 pelec w
120 DLL inp 2: 3 - DLL : 2 inpvec : 3 mframe
121 DLL inp 2: 4 - DLL : 2 inpvec : 4 mgen hss
122 DLL inp 2: 5 - DLL : 2 inpvec : 5 generator pmech kw
123 DLL inp 2: 6 - DLL : 2 inpvec : 6 filtered gen speed
124 DLL inp 2: 7 - DLL : 2 inpvec : 7 elec. pwr
125 DLL inp 2: 8 - DLL : 2 inpvec : 8 grid flag
126 DLL inp 3: 1 - DLL : 3 inpvec : 1 brake torque [nm]
127 DLL out 3: 1 - DLL : 3 outvec : 1 time [s]
128 DLL out 3: 2 - DLL : 3 outvec : 2 generator lss speed [rad/s]
129 DLL out 3: 3 - DLL : 3 outvec : 3 deploy brake
130 DLL out 4: 1 - DLL : 4 outvec : 1 time
131 DLL out 4: 2 - DLL : 4 outvec : 2 pitchref 1
132 DLL out 4: 3 - DLL : 4 outvec : 3 pitchref 2
133 DLL out 4: 4 - DLL : 4 outvec : 4 pitchref 3
134 DLL out 4: 5 - DLL : 4 outvec : 5 emerg. stop
135 DLL inp 4: 1 - DLL : 4 inpvec : 1 pitch 1
136 DLL inp 4: 2 - DLL : 4 inpvec : 2 pitch 2
137 DLL inp 4: 3 - DLL : 4 inpvec : 3 pitch 3
________________________________________________________________________________________________________________________
Scale factors:
2.18750E-02
1.12498E-02
2.18636E-04
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
2.28532E-05
3.13599E-02
2.27484E-02
5.73713E-03
1.15515E-04
2.40756E-04
6.23275E-05
1.11306E+00
5.08507E-01
8.64416E-02
1.01068E-01
3.17092E-02
8.61685E-02
1.40286E-01
1.43956E-01
2.38998E-02
1.13235E-01
1.02102E-01
1.50253E-03
3.53141E-02
1.88099E-02
7.98218E-04
1.20270E-01
1.01277E-01
1.50009E-03
3.83268E-02
1.90180E-02
8.10642E-04
1.08378E-01
1.01415E-01
1.47277E-03
3.48370E-02
1.87840E-02
7.77792E-04
3.24309E-06
6.83608E-06
2.73736E-03
1.36118E-05
2.45856E-05
1.15138E-07
3.94253E-07
8.58154E-07
9.37454E-04
2.20391E-05
7.50926E-05
1.92189E-03
2.27469E-05
8.16279E-05
1.92185E-03
2.16108E-05
7.26739E-05
1.92190E-03
1.97076E-03
4.09314E-04
4.77864E-03
1.97100E-03
4.01846E-04
4.77841E-03
1.97071E-03
4.10716E-04
4.77889E-03
1.35009E-04
2.53494E-04
8.32807E-05
2.38630E-04
2.60029E-04
2.12999E-04
3.58159E-05
3.73508E-05
3.42983E-05
2.18750E-02
2.28955E-05
1.00000E+00
1.00000E+00
1.00000E+00
1.15515E-04
2.40756E-04
6.23275E-05
1.55135E+01
1.00000E+00
2.14205E+01
1.00000E+00
1.00000E+00
1.00000E+00
1.55185E+01
1.99803E-04
2.28158E-05
2.35485E-07
1.00000E+00
4.54852E+00
1.89358E+01
3.69236E+00
3.91993E+01
1.00000E+00
1.71933E-05
1.56251E+02
3.61163E-05
3.58929E-05
1.00000E+00
4.58149E-05
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
2.18750E-02
2.14205E+01
2.28955E-05
2.26911E+01
1.55135E+01
2.24572E+01
2.33929E-01
1.64338E-02
2.38998E+01
2.95000E-05
1.00000E+00
1.00000E+00
2.18750E-02
2.28955E-05
1.00000E+00
2.18750E-02
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
File added
________________________________________________________________________________________________________________________
Version ID : HAWC2MB 11.8
Time : 16:55:19
Date : 26:09.2014
________________________________________________________________________________________________________________________
Result file : ./res/dlc12_iec61400-1ed3/dlc12_wsp04_wdir350_s4001.dat
________________________________________________________________________________________________________________________
Scans Channels Time [sec] Format
30000 137 600.000 BINARY
Channel Variable Description
1 Time s Time
2 bea1 angle deg shaft_rot angle
3 bea1 angle_speed rpm shaft_rot angle speed
4 bea1 angle deg pitch1 angle
5 bea1 angle_speed deg/s pitch1 angle speed
6 bea1 angle deg pitch2 angle
7 bea1 angle_speed deg/s pitch2 angle speed
8 bea1 angle deg pitch3 angle
9 bea1 angle_speed deg/s pitch3 angle speed
10 Omega rad/s Rotor speed
11 Ae rot. torque kNm Aero rotor torque
12 Ae rot. power kW Aero rotor power
13 Ae rot. thrust kN Aero rotor thrust
14 WSP gl. coo.,Vx m/s Free wind speed Vx, gl. coo, of gl. pos 0.00, 0.00, -90.00
15 WSP gl. coo.,Vy m/s Free wind speed Vy, gl. coo, of gl. pos 0.00, 0.00, -90.00
16 WSP gl. coo.,Vz m/s Free wind speed Vz, gl. coo, of gl. pos 0.00, 0.00, -90.00
17 Mx coo: tower kNm MomentMx Mbdy:tower nodenr: 1 coo: tower tower base
18 My coo: tower kNm MomentMy Mbdy:tower nodenr: 1 coo: tower tower base
19 Mz coo: tower kNm MomentMz Mbdy:tower nodenr: 1 coo: tower tower base
20 Mx coo: tower kNm MomentMx Mbdy:tower nodenr: 8 coo: tower yaw bearing
21 My coo: tower kNm MomentMy Mbdy:tower nodenr: 8 coo: tower yaw bearing
22 Mz coo: tower kNm MomentMz Mbdy:tower nodenr: 8 coo: tower yaw bearing
23 Mx coo: shaft kNm MomentMx Mbdy:shaft nodenr: 4 coo: shaft main bearing
24 My coo: shaft kNm MomentMy Mbdy:shaft nodenr: 4 coo: shaft main bearing
25 Mz coo: shaft kNm MomentMz Mbdy:shaft nodenr: 4 coo: shaft main bearing
26 Mx coo: blade1 kNm MomentMx Mbdy:blade1 nodenr: 3 coo: blade1 blade 1 root
27 My coo: blade1 kNm MomentMy Mbdy:blade1 nodenr: 3 coo: blade1 blade 1 root
28 Mz coo: blade1 kNm MomentMz Mbdy:blade1 nodenr: 3 coo: blade1 blade 1 root
29 Mx coo: local kNm MomentMx Mbdy:blade1 nodenr: 10 coo: local blade 1 50% local e coo
30 My coo: local kNm MomentMy Mbdy:blade1 nodenr: 10 coo: local blade 1 50% local e coo
31 Mz coo: local kNm MomentMz Mbdy:blade1 nodenr: 10 coo: local blade 1 50% local e coo
32 Mx coo: blade2 kNm MomentMx Mbdy:blade2 nodenr: 3 coo: blade2 blade 2 root
33 My coo: blade2 kNm MomentMy Mbdy:blade2 nodenr: 3 coo: blade2 blade 2 root
34 Mz coo: blade2 kNm MomentMz Mbdy:blade2 nodenr: 3 coo: blade2 blade 2 root
35 Mx coo: local kNm MomentMx Mbdy:blade2 nodenr: 10 coo: local blade 2 50% local e coo
36 My coo: local kNm MomentMy Mbdy:blade2 nodenr: 10 coo: local blade 2 50% local e coo
37 Mz coo: local kNm MomentMz Mbdy:blade2 nodenr: 10 coo: local blade 2 50% local e coo
38 Mx coo: blade3 kNm MomentMx Mbdy:blade3 nodenr: 3 coo: blade3 blade 3 root
39 My coo: blade3 kNm MomentMy Mbdy:blade3 nodenr: 3 coo: blade3 blade 3 root
40 Mz coo: blade3 kNm MomentMz Mbdy:blade3 nodenr: 3 coo: blade3 blade 3 root
41 Mx coo: local kNm MomentMx Mbdy:blade3 nodenr: 10 coo: local blade 3 50% local e coo
42 My coo: local kNm MomentMy Mbdy:blade3 nodenr: 10 coo: local blade 3 50% local e coo
43 Mz coo: local kNm MomentMz Mbdy:blade3 nodenr: 10 coo: local blade 3 50% local e coo
44 State pos x coo: global m State pos x Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
45 State pos y coo: global m State pos y Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
46 State pos z coo: global m State pos z Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
47 State acc x coo: global m/s^2 State acc x Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
48 State acc y coo: global m/s^2 State acc y Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
49 State acc z coo: global m/s^2 State acc z Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
50 State pos x coo: global m State pos x Mbdy:tower E-nr: 3 Z-rel:1.00 coo: global tower approx tip height
51 State pos y coo: global m State pos y Mbdy:tower E-nr: 3 Z-rel:1.00 coo: global tower approx tip height
52 State pos z coo: global m State pos z Mbdy:tower E-nr: 3 Z-rel:1.00 coo: global tower approx tip height
53 State pos x coo: blade1 m State pos x Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: blade1 blade 1 tip pos
54 State pos y coo: blade1 m State pos y Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: blade1 blade 1 tip pos
55 State pos z coo: blade1 m State pos z Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: blade1 blade 1 tip pos
56 State pos x coo: blade2 m State pos x Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: blade2 blade 2 tip pos
57 State pos y coo: blade2 m State pos y Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: blade2 blade 2 tip pos
58 State pos z coo: blade2 m State pos z Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: blade2 blade 2 tip pos
59 State pos x coo: blade3 m State pos x Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: blade3 blade 3 tip pos
60 State pos y coo: blade3 m State pos y Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: blade3 blade 3 tip pos
61 State pos z coo: blade3 m State pos z Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: blade3 blade 3 tip pos
62 State pos x coo: global m State pos x Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: global blade 1 tip pos
63 State pos y coo: global m State pos y Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: global blade 1 tip pos
64 State pos z coo: global m State pos z Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: global blade 1 tip pos
65 State pos x coo: global m State pos x Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: global blade 2 tip pos
66 State pos y coo: global m State pos y Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: global blade 2 tip pos
67 State pos z coo: global m State pos z Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: global blade 2 tip pos
68 State pos x coo: global m State pos x Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: global blade 3 tip pos
69 State pos y coo: global m State pos y Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: global blade 3 tip pos
70 State pos z coo: global m State pos z Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: global blade 3 tip pos
71 WSP Vx, glco, R= 61.5 m/s Wind speed Vx of blade 1 at radius 61.52, global coo.
72 WSP Vy, glco, R= 61.5 m/s Wind speed Vy of blade 1 at radius 61.52, global coo.
73 WSP Vz, glco, R= 61.5 m/s Wind speed Vz of blade 1 at radius 61.52, global coo.
74 Alfa, R= 45.0 deg Angle of attack of blade 1 at radius 45.17
75 Alfa, R= 45.0 deg Angle of attack of blade 2 at radius 45.17
76 Alfa, R= 45.0 deg Angle of attack of blade 3 at radius 45.17
77 Cl, R= 45.0 deg Cl of blade 1 at radius 45.17
78 Cl, R= 45.0 deg Cl of blade 2 at radius 45.17
79 Cl, R= 45.0 deg Cl of blade 3 at radius 45.17
80 DLL out 1: 1 - DLL : 1 outvec : 1 time
81 DLL out 1: 2 - DLL : 1 outvec : 2 slow speed shaft rad/s
82 DLL out 1: 3 - DLL : 1 outvec : 3 pitch angle 1
83 DLL out 1: 4 - DLL : 1 outvec : 4 pitch angle 2
84 DLL out 1: 5 - DLL : 1 outvec : 5 pitch angle 3
85 DLL out 1: 6 - DLL : 1 outvec : 6 wsp_x_global
86 DLL out 1: 7 - DLL : 1 outvec : 7 wsp_y_global
87 DLL out 1: 8 - DLL : 1 outvec : 8 wsp_z_global
88 DLL out 1: 9 - DLL : 1 outvec : 9 elec. pwr
89 DLL out 1: 10 - DLL : 1 outvec : 10 grid flag
90 DLL inp 1: 1 - DLL : 1 inpvec : 1 generator torque reference [nm]
91 DLL inp 1: 2 - DLL : 1 inpvec : 2 pitch angle reference of blade 1 [rad]
92 DLL inp 1: 3 - DLL : 1 inpvec : 3 pitch angle reference of blade 2 [rad]
93 DLL inp 1: 4 - DLL : 1 inpvec : 4 pitch angle reference of blade 3 [rad]
94 DLL inp 1: 5 - DLL : 1 inpvec : 5 power reference [w]
95 DLL inp 1: 6 - DLL : 1 inpvec : 6 filtered wind speed [m/s]
96 DLL inp 1: 7 - DLL : 1 inpvec : 7 filtered rotor speed [rad/s]
97 DLL inp 1: 8 - DLL : 1 inpvec : 8 filtered rotor speed error for torque [rad/s]
98 DLL inp 1: 9 - DLL : 1 inpvec : 9 bandpass filtered rotor speed [rad/s]
99 DLL inp 1: 10 - DLL : 1 inpvec : 10 proportional term of torque contr. [nm]
100 DLL inp 1: 11 - DLL : 1 inpvec : 11 integral term of torque controller [nm]
101 DLL inp 1: 12 - DLL : 1 inpvec : 12 minimum limit of torque [nm]
102 DLL inp 1: 13 - DLL : 1 inpvec : 13 maximum limit of torque [nm]
103 DLL inp 1: 14 - DLL : 1 inpvec : 14 torque limit switch based on pitch [-]
104 DLL inp 1: 15 - DLL : 1 inpvec : 15 filtered rotor speed error for pitch [rad/s]
105 DLL inp 1: 16 - DLL : 1 inpvec : 16 power error for pitch [w]
106 DLL inp 1: 17 - DLL : 1 inpvec : 17 proportional term of pitch controller [rad]
107 DLL inp 1: 18 - DLL : 1 inpvec : 18 integral term of pitch controller [rad]
108 DLL inp 1: 19 - DLL : 1 inpvec : 19 minimum limit of pitch [rad]
109 DLL inp 1: 20 - DLL : 1 inpvec : 20 maximum limit of pitch [rad]
110 DLL inp 1: 21 - DLL : 1 inpvec : 21 torque reference from dt dammper [nm]
111 DLL inp 1: 22 - DLL : 1 inpvec : 22 status signal [-]
112 DLL inp 1: 23 - DLL : 1 inpvec : 23 total added pitch rate [rad/s]
113 DLL inp 1: 25 - DLL : 1 inpvec : 25 flag for mechnical brake [0=off/1=on]
114 DLL inp 1: 26 - DLL : 1 inpvec : 26 flag for emergency pitch stop [0=off/1=on]
115 DLL out 2: 1 - DLL : 2 outvec : 1 time
116 DLL out 2: 2 - DLL : 2 outvec : 2 electrical torque reference [nm]
117 DLL out 2: 3 - DLL : 2 outvec : 3 omega lss
118 DLL inp 2: 1 - DLL : 2 inpvec : 1 mgen lss [nm]
119 DLL inp 2: 2 - DLL : 2 inpvec : 2 pelec w
120 DLL inp 2: 3 - DLL : 2 inpvec : 3 mframe
121 DLL inp 2: 4 - DLL : 2 inpvec : 4 mgen hss
122 DLL inp 2: 5 - DLL : 2 inpvec : 5 generator pmech kw
123 DLL inp 2: 6 - DLL : 2 inpvec : 6 filtered gen speed
124 DLL inp 2: 7 - DLL : 2 inpvec : 7 elec. pwr
125 DLL inp 2: 8 - DLL : 2 inpvec : 8 grid flag
126 DLL inp 3: 1 - DLL : 3 inpvec : 1 brake torque [nm]
127 DLL out 3: 1 - DLL : 3 outvec : 1 time [s]
128 DLL out 3: 2 - DLL : 3 outvec : 2 generator lss speed [rad/s]
129 DLL out 3: 3 - DLL : 3 outvec : 3 deploy brake
130 DLL out 4: 1 - DLL : 4 outvec : 1 time
131 DLL out 4: 2 - DLL : 4 outvec : 2 pitchref 1
132 DLL out 4: 3 - DLL : 4 outvec : 3 pitchref 2
133 DLL out 4: 4 - DLL : 4 outvec : 4 pitchref 3
134 DLL out 4: 5 - DLL : 4 outvec : 5 emerg. stop
135 DLL inp 4: 1 - DLL : 4 inpvec : 1 pitch 1
136 DLL inp 4: 2 - DLL : 4 inpvec : 2 pitch 2
137 DLL inp 4: 3 - DLL : 4 inpvec : 3 pitch 3
________________________________________________________________________________________________________________________
Scale factors:
2.18750E-02
1.12498E-02
2.19138E-04
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
2.29111E-05
4.63331E-02
3.35193E-02
7.38630E-03
1.02420E-04
2.26197E-04
6.99822E-05
1.25546E+00
6.10768E-01
1.23671E-01
1.02073E-01
4.39042E-02
1.23414E-01
1.34985E-01
1.40241E-01
3.44742E-02
1.28033E-01
1.10615E-01
1.35665E-03
4.43491E-02
1.92483E-02
7.61245E-04
1.35394E-01
1.13591E-01
1.40935E-03
4.55200E-02
2.03161E-02
6.64117E-04
1.24917E-01
1.07065E-01
1.37461E-03
4.31240E-02
1.90637E-02
7.21858E-04
3.90320E-06
7.97756E-06
2.73736E-03
1.61200E-05
2.82396E-05
1.45970E-07
4.73941E-07
9.71200E-07
9.37454E-04
2.56777E-05
9.20533E-05
1.92185E-03
2.68336E-05
9.43824E-05
1.92184E-03
2.53346E-05
8.90607E-05
1.92188E-03
1.97127E-03
4.02692E-04
4.77849E-03
1.97134E-03
4.00361E-04
4.77801E-03
1.97109E-03
4.07428E-04
4.77854E-03
1.39631E-04
2.59576E-04
9.32767E-05
3.10257E-04
3.19075E-04
2.69427E-04
4.28413E-05
4.34555E-05
4.02817E-05
2.18750E-02
2.29481E-05
1.00000E+00
1.00000E+00
1.00000E+00
1.02420E-04
2.26197E-04
6.99822E-05
2.28560E+01
1.00000E+00
3.17334E+01
1.00000E+00
1.00000E+00
1.00000E+00
2.28661E+01
1.76720E-04
2.28417E-05
2.61397E-07
1.00000E+00
5.04901E+00
2.94025E+01
4.48361E+00
3.91993E+01
1.00000E+00
1.72579E-05
1.56251E+02
3.63568E-05
3.61336E-05
1.00000E+00
4.58149E-05
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
2.18750E-02
3.17334E+01
2.29481E-05
3.36158E+01
2.28560E+01
3.32692E+01
3.46554E-01
2.42118E-02
3.44742E+01
2.95000E-05
1.00000E+00
1.00000E+00
2.18750E-02
2.29481E-05
1.00000E+00
2.18750E-02
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
1.00000E+00
File added
________________________________________________________________________________________________________________________
Version ID : HAWC2MB 11.8
Time : 21:00:03
Date : 25:09.2014
________________________________________________________________________________________________________________________
Result file : ./res/dlc31_iec61400-1ed3/dlc31_wsp25_wdir000_s0000.dat
________________________________________________________________________________________________________________________
Scans Channels Time [sec] Format
12500 137 250.000 BINARY
Channel Variable Description
1 Time s Time
2 bea1 angle deg shaft_rot angle
3 bea1 angle_speed rpm shaft_rot angle speed
4 bea1 angle deg pitch1 angle
5 bea1 angle_speed deg/s pitch1 angle speed
6 bea1 angle deg pitch2 angle
7 bea1 angle_speed deg/s pitch2 angle speed
8 bea1 angle deg pitch3 angle
9 bea1 angle_speed deg/s pitch3 angle speed
10 Omega rad/s Rotor speed
11 Ae rot. torque kNm Aero rotor torque
12 Ae rot. power kW Aero rotor power
13 Ae rot. thrust kN Aero rotor thrust
14 WSP gl. coo.,Vx m/s Free wind speed Vx, gl. coo, of gl. pos 0.00, 0.00, -90.00
15 WSP gl. coo.,Vy m/s Free wind speed Vy, gl. coo, of gl. pos 0.00, 0.00, -90.00
16 WSP gl. coo.,Vz m/s Free wind speed Vz, gl. coo, of gl. pos 0.00, 0.00, -90.00
17 Mx coo: tower kNm MomentMx Mbdy:tower nodenr: 1 coo: tower tower base
18 My coo: tower kNm MomentMy Mbdy:tower nodenr: 1 coo: tower tower base
19 Mz coo: tower kNm MomentMz Mbdy:tower nodenr: 1 coo: tower tower base
20 Mx coo: tower kNm MomentMx Mbdy:tower nodenr: 8 coo: tower yaw bearing
21 My coo: tower kNm MomentMy Mbdy:tower nodenr: 8 coo: tower yaw bearing
22 Mz coo: tower kNm MomentMz Mbdy:tower nodenr: 8 coo: tower yaw bearing
23 Mx coo: shaft kNm MomentMx Mbdy:shaft nodenr: 4 coo: shaft main bearing
24 My coo: shaft kNm MomentMy Mbdy:shaft nodenr: 4 coo: shaft main bearing
25 Mz coo: shaft kNm MomentMz Mbdy:shaft nodenr: 4 coo: shaft main bearing
26 Mx coo: blade1 kNm MomentMx Mbdy:blade1 nodenr: 3 coo: blade1 blade 1 root
27 My coo: blade1 kNm MomentMy Mbdy:blade1 nodenr: 3 coo: blade1 blade 1 root
28 Mz coo: blade1 kNm MomentMz Mbdy:blade1 nodenr: 3 coo: blade1 blade 1 root
29 Mx coo: local kNm MomentMx Mbdy:blade1 nodenr: 10 coo: local blade 1 50% local e coo
30 My coo: local kNm MomentMy Mbdy:blade1 nodenr: 10 coo: local blade 1 50% local e coo
31 Mz coo: local kNm MomentMz Mbdy:blade1 nodenr: 10 coo: local blade 1 50% local e coo
32 Mx coo: blade2 kNm MomentMx Mbdy:blade2 nodenr: 3 coo: blade2 blade 2 root
33 My coo: blade2 kNm MomentMy Mbdy:blade2 nodenr: 3 coo: blade2 blade 2 root
34 Mz coo: blade2 kNm MomentMz Mbdy:blade2 nodenr: 3 coo: blade2 blade 2 root
35 Mx coo: local kNm MomentMx Mbdy:blade2 nodenr: 10 coo: local blade 2 50% local e coo
36 My coo: local kNm MomentMy Mbdy:blade2 nodenr: 10 coo: local blade 2 50% local e coo
37 Mz coo: local kNm MomentMz Mbdy:blade2 nodenr: 10 coo: local blade 2 50% local e coo
38 Mx coo: blade3 kNm MomentMx Mbdy:blade3 nodenr: 3 coo: blade3 blade 3 root
39 My coo: blade3 kNm MomentMy Mbdy:blade3 nodenr: 3 coo: blade3 blade 3 root
40 Mz coo: blade3 kNm MomentMz Mbdy:blade3 nodenr: 3 coo: blade3 blade 3 root
41 Mx coo: local kNm MomentMx Mbdy:blade3 nodenr: 10 coo: local blade 3 50% local e coo
42 My coo: local kNm MomentMy Mbdy:blade3 nodenr: 10 coo: local blade 3 50% local e coo
43 Mz coo: local kNm MomentMz Mbdy:blade3 nodenr: 10 coo: local blade 3 50% local e coo
44 State pos x coo: global m State pos x Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
45 State pos y coo: global m State pos y Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
46 State pos z coo: global m State pos z Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
47 State acc x coo: global m/s^2 State acc x Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
48 State acc y coo: global m/s^2 State acc y Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
49 State acc z coo: global m/s^2 State acc z Mbdy:tower E-nr: 7 Z-rel:1.00 coo: global tower top flange position
50 State pos x coo: global m State pos x Mbdy:tower E-nr: 3 Z-rel:1.00 coo: global tower approx tip height
51 State pos y coo: global m State pos y Mbdy:tower E-nr: 3 Z-rel:1.00 coo: global tower approx tip height
52 State pos z coo: global m State pos z Mbdy:tower E-nr: 3 Z-rel:1.00 coo: global tower approx tip height
53 State pos x coo: blade1 m State pos x Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: blade1 blade 1 tip pos
54 State pos y coo: blade1 m State pos y Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: blade1 blade 1 tip pos
55 State pos z coo: blade1 m State pos z Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: blade1 blade 1 tip pos
56 State pos x coo: blade2 m State pos x Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: blade2 blade 2 tip pos
57 State pos y coo: blade2 m State pos y Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: blade2 blade 2 tip pos
58 State pos z coo: blade2 m State pos z Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: blade2 blade 2 tip pos
59 State pos x coo: blade3 m State pos x Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: blade3 blade 3 tip pos
60 State pos y coo: blade3 m State pos y Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: blade3 blade 3 tip pos
61 State pos z coo: blade3 m State pos z Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: blade3 blade 3 tip pos
62 State pos x coo: global m State pos x Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: global blade 1 tip pos
63 State pos y coo: global m State pos y Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: global blade 1 tip pos
64 State pos z coo: global m State pos z Mbdy:blade1 E-nr: 18 Z-rel:1.00 coo: global blade 1 tip pos
65 State pos x coo: global m State pos x Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: global blade 2 tip pos
66 State pos y coo: global m State pos y Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: global blade 2 tip pos
67 State pos z coo: global m State pos z Mbdy:blade2 E-nr: 18 Z-rel:1.00 coo: global blade 2 tip pos
68 State pos x coo: global m State pos x Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: global blade 3 tip pos
69 State pos y coo: global m State pos y Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: global blade 3 tip pos
70 State pos z coo: global m State pos z Mbdy:blade3 E-nr: 18 Z-rel:1.00 coo: global blade 3 tip pos
71 WSP Vx, glco, R= 61.5 m/s Wind speed Vx of blade 1 at radius 61.52, global coo.
72 WSP Vy, glco, R= 61.5 m/s Wind speed Vy of blade 1 at radius 61.52, global coo.
73 WSP Vz, glco, R= 61.5 m/s Wind speed Vz of blade 1 at radius 61.52, global coo.
74 Alfa, R= 45.0 deg Angle of attack of blade 1 at radius 45.17
75 Alfa, R= 45.0 deg Angle of attack of blade 2 at radius 45.17
76 Alfa, R= 45.0 deg Angle of attack of blade 3 at radius 45.17
77 Cl, R= 45.0 deg Cl of blade 1 at radius 45.17
78 Cl, R= 45.0 deg Cl of blade 2 at radius 45.17
79 Cl, R= 45.0 deg Cl of blade 3 at radius 45.17
80 DLL out 1: 1 - DLL : 1 outvec : 1 time
81 DLL out 1: 2 - DLL : 1 outvec : 2 slow speed shaft rad/s
82 DLL out 1: 3 - DLL : 1 outvec : 3 pitch angle 1
83 DLL out 1: 4 - DLL : 1 outvec : 4 pitch angle 2
84 DLL out 1: 5 - DLL : 1 outvec : 5 pitch angle 3
85 DLL out 1: 6 - DLL : 1 outvec : 6 wsp_x_global
86 DLL out 1: 7 - DLL : 1 outvec : 7 wsp_y_global
87 DLL out 1: 8 - DLL : 1 outvec : 8 wsp_z_global
88 DLL out 1: 9 - DLL : 1 outvec : 9 elec. pwr
89 DLL out 1: 10 - DLL : 1 outvec : 10 grid flag
90 DLL inp 1: 1 - DLL : 1 inpvec : 1 generator torque reference [nm]
91 DLL inp 1: 2 - DLL : 1 inpvec : 2 pitch angle reference of blade 1 [rad]
92 DLL inp 1: 3 - DLL : 1 inpvec : 3 pitch angle reference of blade 2 [rad]
93 DLL inp 1: 4 - DLL : 1 inpvec : 4 pitch angle reference of blade 3 [rad]
94 DLL inp 1: 5 - DLL : 1 inpvec : 5 power reference [w]
95 DLL inp 1: 6 - DLL : 1 inpvec : 6 filtered wind speed [m/s]
96 DLL inp 1: 7 - DLL : 1 inpvec : 7 filtered rotor speed [rad/s]
97 DLL inp 1: 8 - DLL : 1 inpvec : 8 filtered rotor speed error for torque [rad/s]
98 DLL inp 1: 9 - DLL : 1 inpvec : 9 bandpass filtered rotor speed [rad/s]
99 DLL inp 1: 10 - DLL : 1 inpvec : 10 proportional term of torque contr. [nm]
100 DLL inp 1: 11 - DLL : 1 inpvec : 11 integral term of torque controller [nm]
101 DLL inp 1: 12 - DLL : 1 inpvec : 12 minimum limit of torque [nm]
102 DLL inp 1: 13 - DLL : 1 inpvec : 13 maximum limit of torque [nm]
103 DLL inp 1: 14 - DLL : 1 inpvec : 14 torque limit switch based on pitch [-]
104 DLL inp 1: 15 - DLL : 1 inpvec : 15 filtered rotor speed error for pitch [rad/s]
105 DLL inp 1: 16 - DLL : 1 inpvec : 16 power error for pitch [w]
106 DLL inp 1: 17 - DLL : 1 inpvec : 17 proportional term of pitch controller [rad]
107 DLL inp 1: 18 - DLL : 1 inpvec : 18 integral term of pitch controller [rad]
108 DLL inp 1: 19 - DLL : 1 inpvec : 19 minimum limit of pitch [rad]
109 DLL inp 1: 20 - DLL : 1 inpvec : 20 maximum limit of pitch [rad]
110 DLL inp 1: 21 - DLL : 1 inpvec : 21 torque reference from dt dammper [nm]
111 DLL inp 1: 22 - DLL : 1 inpvec : 22 status signal [-]
112 DLL inp 1: 23 - DLL : 1 inpvec : 23 total added pitch rate [rad/s]
113 DLL inp 1: 25 - DLL : 1 inpvec : 25 flag for mechnical brake [0=off/1=on]
114 DLL inp 1: 26 - DLL : 1 inpvec : 26 flag for emergency pitch stop [0=off/1=on]
115 DLL out 2: 1 - DLL : 2 outvec : 1 time
116 DLL out 2: 2 - DLL : 2 outvec : 2 electrical torque reference [nm]
117 DLL out 2: 3 - DLL : 2 outvec : 3 omega lss
118 DLL inp 2: 1 - DLL : 2 inpvec : 1 mgen lss [nm]
119 DLL inp 2: 2 - DLL : 2 inpvec : 2 pelec w
120 DLL inp 2: 3 - DLL : 2 inpvec : 3 mframe
121 DLL inp 2: 4 - DLL : 2 inpvec : 4 mgen hss
122 DLL inp 2: 5 - DLL : 2 inpvec : 5 generator pmech kw
123 DLL inp 2: 6 - DLL : 2 inpvec : 6 filtered gen speed
124 DLL inp 2: 7 - DLL : 2 inpvec : 7 elec. pwr
125 DLL inp 2: 8 - DLL : 2 inpvec : 8 grid flag
126 DLL inp 3: 1 - DLL : 3 inpvec : 1 brake torque [nm]
127 DLL out 3: 1 - DLL : 3 outvec : 1 time [s]
128 DLL out 3: 2 - DLL : 3 outvec : 2 generator lss speed [rad/s]
129 DLL out 3: 3 - DLL : 3 outvec : 3 deploy brake
130 DLL out 4: 1 - DLL : 4 outvec : 1 time
131 DLL out 4: 2 - DLL : 4 outvec : 2 pitchref 1
132 DLL out 4: 3 - DLL : 4 outvec : 3 pitchref 2
133 DLL out 4: 4 - DLL : 4 outvec : 4 pitchref 3
134 DLL out 4: 5 - DLL : 4 outvec : 5 emerg. stop
135 DLL inp 4: 1 - DLL : 4 inpvec : 1 pitch 1
136 DLL inp 4: 2 - DLL : 4 inpvec : 2 pitch 2
137 DLL inp 4: 3 - DLL : 4 inpvec : 3 pitch 3
________________________________________________________________________________________________________________________
Scale factors:
9.37500E-03
1.12500E-02
3.79499E-04
2.62500E-03
1.94383E-04
2.62500E-03
1.94133E-04
2.62500E-03
1.94195E-04
3.97137E-05
2.43523E-01
2.25946E-01
1.11034E-02
1.00000E+00
7.81250E-04
1.00000E+00
1.50777E+00
3.87895E-01
6.69263E-02
1.68820E-01
1.50613E-01
6.66108E-02
7.91940E-02
1.05178E-01
1.51754E-01
1.69986E-01
9.72859E-02
2.10824E-03
4.26188E-02
2.01016E-02
2.08250E-03
1.74911E-01
1.10583E-01
1.95993E-03
2.97018E-02
2.63782E-02
1.98623E-03
1.33747E-01
9.57100E-02
2.21517E-03
4.07498E-02
1.76145E-02
2.14648E-03
3.14767E-06
9.56132E-06
2.73736E-03
4.36974E-06
2.21718E-05
1.27816E-07
3.14383E-07
1.16663E-06
9.37454E-04
1.95030E-05
8.94505E-05
1.92205E-03
2.10613E-05
6.70507E-05
1.92208E-03
2.00411E-05
8.40965E-05
1.92204E-03
1.97103E-03
4.88821E-04
4.77895E-03
1.97094E-03
4.49147E-04
4.77893E-03
1.96982E-03
4.72025E-04
4.77966E-03
1.00000E+00
8.69380E-04
1.00000E+00
3.15021E-04
1.78840E-04
2.44440E-04
2.11049E-05
2.44307E-05
2.80758E-05
9.37500E-03
3.97410E-05
4.58149E-05
4.58149E-05
4.58149E-05
1.00000E+00
7.81250E-04
1.00000E+00
1.56315E+02
1.00000E+00
1.37096E+02
4.58149E-05
4.58149E-05
4.58149E-05
1.56250E+02
7.81240E-04
3.96872E-05
2.10705E-05
1.00000E+00
4.05545E+02
4.03725E+02
1.37096E+02
1.37096E+02
3.12500E-05
1.57962E-05
1.24438E+02
5.45248E-06
2.95833E-05
4.27495E-05
4.58149E-05
1.00000E+00
3.12500E-05
1.00000E+00
1.00000E+00
1.00000E+00
9.37500E-03
1.37096E+02
3.97410E-05
1.43754E+02
1.56315E+02
1.42272E+02
1.48200E+00
1.65588E-01
1.51754E+02
2.95000E-05
1.00000E+00
1.00000E+00
9.37500E-03
3.97410E-05
1.00000E+00
9.37500E-03
4.58149E-05
4.58149E-05
4.58149E-05
1.00000E+00
4.58149E-05
4.58149E-05
4.58149E-05
'''
Created on 09/10/2014
@author: MMPE
'''
import unittest
from wetb.dlc.high_level import DLCHighLevel
import os
class TestDLCHighLevel(unittest.TestCase):
def setUp(self):
unittest.TestCase.setUp(self)
self.dlc_hl = DLCHighLevel('test_files/DLC_test.xlsx')
def test_variables(self):
self.assertEqual(self.dlc_hl.vref, 50)
self.assertEqual(os.path.realpath(self.dlc_hl.res_path), os.path.realpath(os.path.join(os.getcwd(), "test_files/res")))
def test_sensor_info(self):
self.assertEqual(list(self.dlc_hl.sensor_info().name), ['MxTB', 'MyTB', 'MxBR', 'PyBT', 'Power', 'Pitch', 'PitchBearing', 'Tip1TowerDistance', 'TipTowerDistance'])
def test_sensor_info_filter(self):
self.assertEqual(list(self.dlc_hl.sensor_info(['fatigue']).m), [4, 4, 10])
def test_fatigue_distribution_pct(self):
dlc, wsp, wdir = self.dlc_hl.fatigue_distribution()['12']
self.assertEqual(dlc, 0.975)
self.assertEqual(min(wsp.keys()), 4)
self.assertEqual(max(wsp.keys()), 26)
self.assertEqual(wsp[4], 0.11002961306549919)
def test_fatigue_distribution_count(self):
dlc, wsp, wdir = self.dlc_hl.fatigue_distribution()['31']
#self.assertEqual(dlc, "#1000")
self.assertEqual(min(wsp.keys()), 4)
self.assertEqual(max(wsp.keys()), 25)
self.assertEqual(wsp[4], "#1000")
def test_file_hour_lst(self):
f, h = self.dlc_hl.file_hour_lst()[0]
self.assertEqual(f, 'test_files\\res\\DLC12_IEC61400-1ed3\\dlc12_wsp04_wdir350_s3001.sel')
self.assertEqual(h, .975 * .25 * 0.11002961306549919 / 2 * 20 * 365 * 24)
def test_file_hour_lst_count(self):
f, h = self.dlc_hl.file_hour_lst()[-1]
self.assertEqual(f, 'test_files\\res\\DLC31_IEC61400-1ed3\\dlc31_wsp25_wdir000_s0000.sel')
self.assertAlmostEqual(h, 0.0087201928 * 1 * (50 / 1100) * 20 * 365 * 24)
def test_dlc_lst(self):
self.assertEqual(self.dlc_hl.dlc_lst(), ['12', '13', '14', '31'])
def test_dlc_lst_filter(self):
self.assertEqual(self.dlc_hl.dlc_lst('F'), ['12', '31'])
self.assertEqual(self.dlc_hl.dlc_lst('U'), ['12', '13', '31'])
def test_psf(self):
self.assertEqual(self.dlc_hl.psf()['31'], 1.3)
def test_keys(self):
for k in ['name', 'nr', 'description', 'unit', 'statistic', 'ultimate', 'fatigue', 'm', 'neql', 'bearingdamage', 'mindistance', 'maxdistance', 'extremeload']:
self.assertTrue(k in self.dlc_hl.sensor_info().keys(), k)
def test_extremeload_sensors(self):
self.dlc_hl = DLCHighLevel('test_files/DLC_test2.xlsx')
if __name__ == "__main__":
#import sys;sys.argv = ['', 'Test.testName']
unittest.main()
......@@ -174,7 +174,7 @@ if __name__ == "__main__":
signal1 = np.array([-2.0, 0.0, 1.0, 0.0, -3.0, 0.0, 5.0, 0.0, -1.0, 0.0, 3.0, 0.0, -4.0, 0.0, 4.0, 0.0, -2.0])
signal2 = signal1 * 1.1
# equivalent load for default whler slopes
# equivalent load for default wohler slopes
print (eq_load(signal1, no_bins=50, neq=17, rainflow_func=rainflow_windap))
print (eq_load(signal1, no_bins=50, neq=17, rainflow_func=rainflow_astm))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment