Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • toolbox/WindEnergyToolbox
  • tlbl/WindEnergyToolbox
  • cpav/WindEnergyToolbox
  • frza/WindEnergyToolbox
  • borg/WindEnergyToolbox
  • mmpe/WindEnergyToolbox
  • ozgo/WindEnergyToolbox
  • dave/WindEnergyToolbox
  • mmir/WindEnergyToolbox
  • wluo/WindEnergyToolbox
  • welad/WindEnergyToolbox
  • chpav/WindEnergyToolbox
  • rink/WindEnergyToolbox
  • shfe/WindEnergyToolbox
  • shfe1/WindEnergyToolbox
  • acdi/WindEnergyToolbox
  • angl/WindEnergyToolbox
  • wliang/WindEnergyToolbox
  • mimc/WindEnergyToolbox
  • wtlib/WindEnergyToolbox
  • cmos/WindEnergyToolbox
  • fabpi/WindEnergyToolbox
22 results
Show changes
Commits on Source (16)
Showing
with 3656 additions and 119 deletions
......@@ -7,5 +7,6 @@ pytest
xlrd
h5py
pandas
tables
future
......@@ -70,7 +70,6 @@ def eq_load(signals, no_bins=46, m=[3, 4, 6, 8, 10, 12], neq=1, rainflow_func=ra
return [[np.nan] * len(np.atleast_1d(m))] * len(np.atleast_1d(neq))
def eq_load_and_cycles(signals, no_bins=46, m=[3, 4, 6, 8, 10, 12], neq=[10 ** 6, 10 ** 7, 10 ** 8], rainflow_func=rainflow_windap):
"""Calculate combined fatigue equivalent load
......@@ -109,7 +108,6 @@ def eq_load_and_cycles(signals, no_bins=46, m=[3, 4, 6, 8, 10, 12], neq=[10 ** 6
return eq_loads, cycles, ampl_bin_mean, ampl_bin_edges
def cycle_matrix(signals, ampl_bins=10, mean_bins=10, rainflow_func=rainflow_windap):
"""Markow load cycle matrix
......@@ -132,7 +130,8 @@ def cycle_matrix(signals, ampl_bins=10, mean_bins=10, rainflow_func=rainflow_win
Returns
-------
cycles : ndarray, shape(ampl_bins, mean_bins)
A bi-dimensional histogram of load cycles(full cycles). Amplitudes are histogrammed along the first dimension and mean values are histogrammed along the second dimension.
A bi-dimensional histogram of load cycles(full cycles). Amplitudes are\
histogrammed along the first dimension and mean values are histogrammed along the second dimension.
ampl_bin_mean : ndarray, shape(ampl_bins,)
The average cycle amplitude of the bins
ampl_edges : ndarray, shape(ampl_bins+1,)
......
from __future__ import division
from __future__ import unicode_literals
from __future__ import print_function
from __future__ import absolute_import
from future import standard_library
standard_library.install_aliases()
import numpy as np
def rfc_hist(sig_rf, nrbins=46):
"""Histogram of rainflow counted cycles
hist, bin_edges, bin_avg = rfc_hist(sig, nrbins=46)
Divide the rainflow counted cycles of a signal into equally spaced bins.
Created on Wed Feb 16 16:53:18 2011
@author: David Verelst
Modified 10.10.2011 by Mads M Pedersen to elimintate __copy__ and __eq__
Parameters
----------
sig_rf : array-like
As output by rfc_astm or rainflow
nrbins : int, optional
Divide the rainflow counted amplitudes in a number of equally spaced
bins.
Returns
-------
hist : array-like
Counted rainflow cycles per bin, has nrbins elements
bin_edges : array-like
Edges of the bins, has nrbins+1 elements.
bin_avg : array-like
Average rainflow cycle amplitude per bin, has nrbins elements.
"""
rf_half = sig_rf
# the Matlab approach is to divide into 46 bins
bin_edges = np.linspace(0, 1, num=nrbins + 1) * rf_half.max()
hist = np.histogram(rf_half, bins=bin_edges)[0]
# calculate the average per bin
hist_sum = np.histogram(rf_half, weights=rf_half, bins=bin_edges)[0]
# replace zeros with one, to avoid 0/0
hist_ = hist.copy()
hist_[(hist == 0).nonzero()] = 1.0
# since the sum is also 0, the avg remains zero for those whos hist is zero
bin_avg = hist_sum / hist_
return hist, bin_edges, bin_avg
......@@ -90,8 +90,8 @@ class ReadHawc2(object):
Name = []; Unit = []; Description = [];
for i in range(0, self.NrCh):
temp = str(Lines[i + 12][12:43]); Name.append(temp.strip())
temp = str(Lines[i + 12][43:48]); Unit.append(temp.strip())
temp = str(Lines[i + 12][49:]); Description.append(temp.strip())
temp = str(Lines[i + 12][43:54]); Unit.append(temp.strip())
temp = str(Lines[i + 12][54:-1]); Description.append(temp.strip())
self.ChInfo = [Name, Unit, Description]
# if binary file format, scaling factors are read
if Format.lower() == 'binary':
......
......@@ -795,7 +795,7 @@ def prepare_launch(iter_dict, opt_tags, master, variable_tag_func,
launch(cases, runmethod=runmethod, verbose=verbose, check_log=check_log,
copyback_turb=copyback_turb, qsub=qsub, wine_appendix=wine_appendix,
windows_nr_cpus=windows_nr_cpus, short_job_names=short_job_names,
pbs_fname_appendix=pbs_fname_appendix)
pbs_fname_appendix=pbs_fname_appendix, silent=silent)
return cases
......@@ -1030,10 +1030,10 @@ def launch(cases, runmethod='local', verbose=False, copyback_turb=True,
elif runmethod in ['jess','gorm']:
# create the pbs object
pbs = PBS(cases, server=runmethod, short_job_names=short_job_names,
pbs_fname_appendix=pbs_fname_appendix, qsub=qsub)
pbs_fname_appendix=pbs_fname_appendix, qsub=qsub,
verbose=verbose, silent=silent)
pbs.wine_appendix = wine_appendix
pbs.copyback_turb = copyback_turb
pbs.verbose = verbose
pbs.pbs_out_dir = pbs_out_dir
pbs.create()
elif runmethod == 'local':
......@@ -1851,8 +1851,8 @@ class PBS(object):
such as the turbulence file and folder, htc folder and others
"""
def __init__(self, cases, server='gorm', qsub='time',
pbs_fname_appendix=True, short_job_names=True):
def __init__(self, cases, server='gorm', qsub='time', silent=False,
pbs_fname_appendix=True, short_job_names=True, verbose=False):
"""
Define the settings here. This should be done outside, but how?
In a text file, paramters list or first create the object and than set
......@@ -1882,7 +1882,8 @@ class PBS(object):
"""
self.server = server
self.verbose = True
self.verbose = verbose
self.silent = silent
# if server == 'thyra':
# self.maxcpu = 4
......@@ -2182,7 +2183,8 @@ class PBS(object):
ended = True
# print progress:
replace = ((i/self.maxcpu), (i_tot/self.maxcpu), self.walltime)
print('pbs script %3i/%i walltime=%s' % replace)
if not self.silent:
print('pbs script %3i/%i walltime=%s' % replace)
count2 += 1
i += 1
......@@ -2196,7 +2198,8 @@ class PBS(object):
self.ending(pbs_path)
# progress printing
replace = ( (i/self.maxcpu), (i_tot/self.maxcpu), self.walltime )
print('pbs script %3i/%i walltime=%s, partially loaded' % replace)
if not self.silent:
print('pbs script %3i/%i walltime=%s, partially loaded' % replace)
# print 'pbs progress, script '+format(i/self.maxcpu,'2.0f')\
# + '/' + format(i_tot/self.maxcpu, '2.0f') \
# + ' partially loaded...'
......@@ -2451,7 +2454,8 @@ class PBS(object):
cases_fail = {}
print('checking if all log and result files are present...', end='')
if not self.silent:
print('checking if all log and result files are present...', end='')
# check for each case if we have results and a log file
for cname, case in cases.items():
......@@ -2473,7 +2477,8 @@ class PBS(object):
if size_sel < 5 or size_dat < 5:
cases_fail[cname] = copy.copy(cases[cname])
print('done!')
if not self.silent:
print('done!')
# length will be zero if there are no failures
return cases_fail
......@@ -3828,7 +3833,7 @@ class Cases(object):
save=True, m=[3, 4, 6, 8, 10, 12], neq=None, no_bins=46,
ch_fatigue={}, update=False, add_sensor=None,
chs_resultant=[], i0=0, i1=-1, saveinterval=1000,
csv=True, suffix=None, fatigue_cycles=False, A=None,
csv=True, suffix=None, A=None,
ch_wind=None, save_new_sigs=False, xlsx=False):
"""
Calculate statistics and save them in a pandas dataframe. Save also
......@@ -3851,10 +3856,6 @@ class Cases(object):
needs to be calculated. When set to None, ch_fatigue = ch_sel,
and hence all channels will have a fatigue analysis.
fatigue_cycles : Boolean, default=False
If True, the cycle matrix, or sum( n_i*S_i^m ), is calculated. If
set to False, the 1Hz equivalent load is calculated.
chs_resultant
add_sensor
......@@ -4168,12 +4169,13 @@ class Cases(object):
signal = self.sig[:,chi]
if neq is None:
neq = float(case['[duration]'])
if not fatigue_cycles:
eq = self.res.calc_fatigue(signal, no_bins=no_bins,
neq=neq, m=m)
else:
eq = self.res.cycle_matrix(signal, no_bins=no_bins, m=m)
eq = self.res.calc_fatigue(signal, no_bins=no_bins,
neq=neq, m=m)
# save in the fatigue results
fatigue[ch_id] = {}
fatigue[ch_id]['neq'] = neq
# when calc_fatigue succeeds, we should have as many items
# as in m
if len(eq) == len(m):
......@@ -4188,6 +4190,7 @@ class Cases(object):
for m_ in m:
tag = 'm=%2.01f' % m_
tags_fatigue.append(tag)
tags_fatigue.append('neq')
# -----------------------------------------------------------------
# define the pandas data frame dict on first run
......@@ -4408,10 +4411,10 @@ class Cases(object):
raise(e)
return df_dict2
def fatigue_lifetime(self, dfs, neq, res_dir='res/', fh_lst=None, years=20.,
def fatigue_lifetime(self, dfs, neq_life, res_dir='res/', fh_lst=None,
dlc_folder="dlc%s_iec61400-1ed3/", extra_cols=[],
save=False, update=False, csv=False, new_sim_id=False,
xlsx=False):
xlsx=False, years=20.0):
"""
Cacluate the fatigue over a selection of cases and indicate how many
hours each case contributes to its life time.
......@@ -4427,7 +4430,7 @@ class Cases(object):
should only hold the results of one standard organized DLC (one
turbine, one inflow case).
neq : float
neq_life : float
Reference number of cycles. Usually, neq is either set to 10e6,
10e7 or 10e8.
......@@ -4543,12 +4546,17 @@ class Cases(object):
# values of the identifier columns for each case. We do this
# in case the original dfs holds multiple DLC cases.
dict_Leq[col].append(sel_sort[col].unique()[0])
# R_eq is usually expressed as the 1Hz equivalent load
neq_1hz = sel_sort['neq'].values
for m in ms:
# sel_sort[m] holds the cycle_matrices for each of the DLC
# sel_sort[m] holds the equivalent loads for each of the DLC
# cases: such all the different wind speeds for dlc1.2
R_eq = (sel_sort[m].values*np.array(hours)).sum()
R_eq_mod = np.power(sel_sort[m].values, m) * neq_1hz
tmp = (R_eq_mod*np.array(hours)).sum()
# the effective Leq for each of the material constants
dict_Leq[m].append(math.pow(R_eq/neq, 1.0/float(m[2:])))
dict_Leq[m].append(math.pow(tmp/neq_life, 1.0/float(m[2:])))
# the following is twice as slow:
# [i*j for (i,j) in zip(sel_sort[m].values.tolist(),hours)]
......
......@@ -46,7 +46,7 @@ def configure_dirs(verbose=False):
raise ValueError('Could not find master file in htc/_master')
MASTERFILE = master
P_MASTERFILE = os.path.join(P_SOURCE, 'htc%s_master%s' % (os.sep, os.sep))
POST_DIR = os.path.join(p_run_root, PROJECT, 'python-prepost-data%s' % os.sep)
POST_DIR = os.path.join(p_run_root, PROJECT, 'prepost-data%s' % os.sep)
if verbose:
print('='*79)
......@@ -240,7 +240,7 @@ def tags_defaults(master):
def excel_stabcon(proot, fext='xlsx', pignore=None, sheet=0,
pinclude=None):
pinclude=None, silent=False):
"""
Read all MS Excel files that hold load case definitions according to
the team STABCON definitions. Save each case in a list according to the
......@@ -272,16 +272,20 @@ def excel_stabcon(proot, fext='xlsx', pignore=None, sheet=0,
first sheet (index=0) is taken.
"""
print('looking for DLC spreadsheet definitions at:')
print(proot)
if not silent:
print('looking for DLC spreadsheet definitions at:')
print(proot)
df_list = misc.read_excel_files(proot, fext=fext, pignore=pignore,
sheet=sheet, pinclude=pinclude)
sheet=sheet, pinclude=pinclude,
silent=silent)
print('found %i Excel file(s), ' % len(df_list), end='')
if not silent:
print('found %i Excel file(s), ' % len(df_list), end='')
k = 0
for df in df_list:
k += len(df)
print('in which a total of %s cases are defined.' % k)
if not silent:
print('in which a total of %s cases are defined.' % k)
opt_tags = []
......
......@@ -164,7 +164,7 @@ def variable_tag_func(master, case_id_short=False):
### PRE- POST
# =============================================================================
def launch_dlcs_excel(sim_id):
def launch_dlcs_excel(sim_id, silent=False):
"""
Launch load cases defined in Excel files
"""
......@@ -175,9 +175,10 @@ def launch_dlcs_excel(sim_id):
# see if a htc/DLCs dir exists
dlcs_dir = os.path.join(P_SOURCE, 'htc', 'DLCs')
if os.path.exists(dlcs_dir):
opt_tags = dlcdefs.excel_stabcon(dlcs_dir)
opt_tags = dlcdefs.excel_stabcon(dlcs_dir, silent=silent)
else:
opt_tags = dlcdefs.excel_stabcon(os.path.join(P_SOURCE, 'htc'))
opt_tags = dlcdefs.excel_stabcon(os.path.join(P_SOURCE, 'htc'),
silent=silent)
if len(opt_tags) < 1:
raise ValueError('There are is not a single case defined. Make sure '
......@@ -200,7 +201,8 @@ def launch_dlcs_excel(sim_id):
# runmethod = 'local-script'
# runmethod = 'windows-script'
# runmethod = 'jess'
master = master_tags(sim_id, runmethod=runmethod)
master = master_tags(sim_id, runmethod=runmethod, silent=silent,
verbose=False)
master.tags['[sim_id]'] = sim_id
master.output_dirs.append('[Case folder]')
master.output_dirs.append('[Case id.]')
......@@ -219,7 +221,8 @@ def launch_dlcs_excel(sim_id):
write_htc=True, runmethod=runmethod, verbose=False,
copyback_turb=True, msg='', update_cases=False,
ignore_non_unique=False, run_only_new=False,
pbs_fname_appendix=False, short_job_names=False)
pbs_fname_appendix=False, short_job_names=False,
silent=silent)
def launch_param(sim_id):
......@@ -264,10 +267,10 @@ def launch_param(sim_id):
def post_launch(sim_id, statistics=True, rem_failed=True, check_logs=True,
force_dir=False, update=False, saveinterval=2000, csv=False,
fatigue_cycles=False, m=[1, 3, 4, 5, 6, 8, 10, 12, 14],
neq=1e6, no_bins=46, years=20.0, fatigue=True, nn_twb=1,
nn_twt=20, nn_blr=4, A=None, save_new_sigs=False,
envelopeturbine=False, envelopeblade=False, save_iter=False):
m=[1, 3, 4, 5, 6, 8, 10, 12, 14], neq=1e6, no_bins=46,
years=20.0, fatigue=True, nn_twb=1, nn_twt=20, nn_blr=4, A=None,
save_new_sigs=False, envelopeturbine=False, envelopeblade=False,
save_iter=False, AEP=False):
# =========================================================================
# check logfiles, results files, pbs output files
......@@ -339,12 +342,12 @@ def post_launch(sim_id, statistics=True, rem_failed=True, check_logs=True,
df_stats = cc.statistics(calc_mech_power=True, i0=i0, i1=i1,
tags=tags, add_sensor=add, ch_fatigue=None,
update=update, saveinterval=saveinterval,
suffix=suffix, fatigue_cycles=fatigue_cycles,
suffix=suffix, save_new_sigs=save_new_sigs,
csv=csv, m=m, neq=neq, no_bins=no_bins,
chs_resultant=chs_resultant, A=A,
save_new_sigs=save_new_sigs)
chs_resultant=chs_resultant, A=A)
# annual energy production
df_AEP = cc.AEP(df_stats, csv=csv, update=update, save=True)
if AEP:
df_AEP = cc.AEP(df_stats, csv=csv, update=update, save=True)
if envelopeblade:
ch_list = []
......@@ -395,6 +398,9 @@ if __name__ == '__main__':
dest='stats', help='calculate statistics')
parser.add_argument('--fatigue', action='store_true', default=False,
dest='fatigue', help='calculate Leq for a full DLC')
parser.add_argument('--AEP', action='store_true', default=False,
dest='AEP', help='calculate AEP, requires '
'htc/DLCs/dlc_config.xlsx')
parser.add_argument('--csv', action='store_true', default=False,
dest='csv', help='Save data also as csv file')
parser.add_argument('--years', type=float, default=20.0, action='store',
......@@ -429,24 +435,26 @@ if __name__ == '__main__':
# --plots, --report, --...
# -------------------------------------------------------------------------
# # manually configure all the dirs
# p_root_remote = '/mnt/hawc2sim'
# p_root_local = '/home/dave/DTU/Projects/AVATAR/'
# # manually configure paths, HAWC2 model root path is then constructed as
# # p_root_remote/PROJECT/sim_id, and p_root_local/PROJECT/sim_id
# # adopt accordingly when you have configured your directories differently
# p_root_remote = '/mnt/hawc2sim/'
# p_root_local = '/mnt/hawc2sim/'
# # project name, sim_id, master file name
# PROJECT = 'DTU10MW'
# sim_id = 'C0014'
# MASTERFILE = 'dtu10mw_master_C0014.htc'
# PROJECT = 'demo'
# sim_id = 'A0001'
# MASTERFILE = 'dtu10mw_avatar_master_A0001.htc'
# # MODEL SOURCES, exchanche file sources
# P_RUN = os.path.join(p_root_remote, PROJECT, sim_id+'/')
# P_SOURCE = os.path.join(p_root_local, PROJECT)
# P_SOURCE = os.path.join(p_root_local, PROJECT, sim_id)
# # location of the master file
# P_MASTERFILE = os.path.join(p_root_local, PROJECT, 'htc', '_master/')
# P_MASTERFILE = os.path.join(p_root_local, PROJECT, sim_id, 'htc', '_master/')
# # location of the pre and post processing data
# POST_DIR = os.path.join(p_root_remote, PROJECT, 'python-prepost-data/')
# POST_DIR = os.path.join(p_root_remote, PROJECT, sim_id, 'prepost-data/')
# force_dir = P_RUN
# launch_dlcs_excel(sim_id)
# post_launch(sim_id, check_logs=True, update=False, force_dir=force_dir,
# saveinterval=2000, csv=False)
# saveinterval=2000, csv=True, fatigue_cycles=True, fatigue=False)
# -------------------------------------------------------------------------
# create HTC files and PBS launch scripts (*.p)
......@@ -458,7 +466,7 @@ if __name__ == '__main__':
post_launch(sim_id, check_logs=opt.check_logs, update=False,
force_dir=P_RUN, saveinterval=2000, csv=opt.csv,
statistics=opt.stats, years=opt.years, neq=opt.neq,
fatigue=opt.fatigue, fatigue_cycles=True, A=opt.rotarea,
fatigue=opt.fatigue, A=opt.rotarea, AEP=opt.AEP,
no_bins=opt.no_bins, nn_blr=opt.nn_blr, nn_twt=opt.nn_twt,
save_new_sigs=opt.save_new_sigs, save_iter=False,
envelopeturbine=opt.envelopeturbine,
......
......@@ -678,7 +678,7 @@ def to_lower_case(proot):
os.rename(root, new)
def read_excel_files(proot, fext='xlsx', pignore=None, sheet=0,
pinclude=None):
pinclude=None, silent=False):
"""
Read recursively all MS Excel files with extension "fext". Only the
default name for the first sheet (Sheet1) of the Excel file is considered.
......@@ -726,14 +726,17 @@ def read_excel_files(proot, fext='xlsx', pignore=None, sheet=0,
# if it does contain pignore, ingore the dlc
if pignore is not None and f_target.find(pignore) > -1:
continue
print(f_target, end='')
if not silent:
print(f_target, end='')
try:
xl = pd.ExcelFile(f_target)
df = xl.parse(sheet)
df_list[f_target.replace('.'+fext, '')] = df
print(': sucesfully included %i case(s)' % len(df))
if not silent:
print(': sucesfully included %i case(s)' % len(df))
except:
print(' XXXXX ERROR COULD NOT READ')
if not silent:
print(' XXXXX ERROR COULD NOT READ')
return df_list
......
just one demo line
just one demo line
File added
File added
;this version was at some point based on: Avatar_10MW_RWT version 1, 06-08-14, Anyd
begin simulation;
time_stop [time stop];
solvertype 1 ; (newmark)
on_no_convergence continue ;
; convergence_limits 1E3 1.0 1E-7 ;
logfile ./logfiles/[Case folder]/[Case id.].log ;
begin newmark;
deltat 0.02;
end newmark;
end simulation;
;
;----------------------------------------------------------------------------------------------------------------------------------------------------------------
begin new_htc_structure;
;--------------------------------------------------------------------------------------------------
[staircase] beam_output_file_name ./res_eigen/[Case folder]/[Case id.]/[Case id.]_beam.dat;
[staircase] body_output_file_name ./res_eigen/[Case folder]/[Case id.]/[Case id.]_body.dat;
[staircase] struct_inertia_output_file_name ./res_eigen/[Case folder]/[Case id.]/[Case id.]_struct.dat;
[staircase] body_eigenanalysis_file_name ./res_eigen/[Case folder]/[Case id.]/[Case id.]_body_eigen.dat;
[staircase] structure_eigenanalysis_file_name ./res_eigen/[Case folder]/[Case id.]/[Case id.]_strc_eigen.dat;
;---------------------------------------------------------------------------------------------------
begin main_body; tower 123.6m
name tower ;
type timoschenko ;
nbodies 3 ;
node_distribution c2_def ;
damping_posdef 0 0 0 4.7E-03 4.7E-03 4.3E-04 ; tuned by Anyd 12/8/14
begin timoschenko_input;
filename ./data/AVATAR_10MW_RWT_tower_st.dat;
set 1 1 ;
end timoschenko_input;
begin c2_def; Definition of centerline (main_body coordinates)
nsec 20;
sec 1 0 0 0.000 0 ; x,y,z,twist
sec 2 0 0 -12.293 0 ;
sec 3 0 0 -12.294 0 ;
sec 4 0 0 -24.585 0 ;
sec 5 0 0 -24.586 0 ;
sec 6 0 0 -36.878 0 ;
sec 7 0 0 -36.879 0 ;
sec 8 0 0 -49.171 0 ;
sec 9 0 0 -49.172 0 ;
sec 10 0 0 -61.463 0 ;
sec 11 0 0 -61.464 0 ;
sec 12 0 0 -73.756 0 ;
sec 13 0 0 -73.757 0 ;
sec 14 0 0 -86.049 0 ;
sec 15 0 0 -86.050 0 ;
sec 16 0 0 -98.341 0 ;
sec 17 0 0 -98.342 0 ;
sec 18 0 0 -110.634 0 ;
sec 19 0 0 -110.635 0 ;
sec 20 0 0 -123.600 0 ;
end c2_def ;
end main_body;
;
begin main_body;
name towertop ;
type timoschenko ;
nbodies 1 ;
node_distribution c2_def ;
damping_posdef 7.50E-03 7.40E-03 7.00E-03 7.00E-03 7.00E-03 7.00E-03 ; "changed by Anyd
concentrated_mass 2.0 0.0 2.6870E+00 3.0061E-01 4.4604E+05 4.1060E+06 4.1060E+05 4.1060E+06 ; Nacel
begin timoschenko_input;
filename ./data/DTU_10MW_RWT_Towertop_st.dat ;
set 1 2 ;
end timoschenko_input;
begin c2_def; Definition of centerline (main_body coordinates)
nsec 2;
sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist
sec 2 0.0 0.0 -2.75 0.0 ;
end c2_def ;
end main_body;
;
begin main_body;
name shaft ;
type timoschenko ;
nbodies 1 ;
node_distribution c2_def ;
; damping_posdef 8.00E-3 8.00E-03 8.00E-02 4.65E-04 4.65E-04 2.38E-02 ; "tuned by Anyd 22/2/13
damping_posdef 0.0 0.0 3.983E-03 4.65E-04 4.65E-04 3.983E-03 ; "tuned by Anyd 23/5/13 to 31.45 l
concentrated_mass 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.751E+06 ; generator equivalent slow shaft "re_tu
concentrated_mass 5.0 0.0 0.0 0.0 1.0552E+05 0.0 0.0 3.257E+05 ; hub mass and inertia; "re_tuned
begin timoschenko_input;
filename ./data/DTU_10MW_RWT_Shaft_st.dat ;
set 1 1 ;
end timoschenko_input;
begin c2_def; Definition of centerline (main_body coordinates)
nsec 5;
sec 1 0.0 0.0 0.0 0.0 ; Tower top x,y,z,twist
sec 2 0.0 0.0 1.5 0.0 ;
sec 3 0.0 0.0 3.0 0.0 ;
sec 4 0.0 0.0 4.4 0.0 ; Main bearing
sec 5 0.0 0.0 7.1 0.0 ; Rotor centre
end c2_def ;
end main_body;
;
begin main_body;
name shaft_nonrotate ;
type timoschenko ;
nbodies 1 ;
node_distribution c2_def ;
damping_posdef 0.00E+00 0.00E+00 0.00E+00 1.0E-01 1.0E-01 1.0E-01 ;
begin timoschenko_input;
filename ./data/DTU_10MW_RWT_Shaft_st.dat ;
set 1 3; dummy light and stiff structure
end timoschenko_input;
begin c2_def;
nsec 2;
sec 1 0.0 0.0 0.0 0.0 ;
sec 2 0.0 0.0 0.1 0.0 ;
end c2_def;
end main_body;
;
begin main_body;
name hub1 ;
type timoschenko ;
nbodies 1 ;
node_distribution c2_def ;
damping_posdef 2.00E-05 2.00E-05 2.00E-04 3.00E-06 3.00E-06 2.00E-05;
begin timoschenko_input;
filename ./data/DTU_10MW_RWT_Hub_st.dat ;
set 1 2 ;
end timoschenko_input;
begin c2_def; Definition of centerline (main_body coordinates)
nsec 2;
sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist
sec 2 0.0 0.0 2.8 0.0 ;
end c2_def ;
end main_body;
;
begin main_body;
name hub2 ;
copy_main_body hub1;
end main_body;
;
begin main_body;
name hub3 ;
copy_main_body hub1 ;
end main_body;
;
begin main_body;
name blade1 ;
type timoschenko ;
nbodies 10 ;
node_distribution c2_def;
; damping_posdef 0.0 0.0 0.0 2.5e-3 8.9e-4 3.2e-4 ; "Tuned by Anyd"
; damping_posdef 0.0 0.0 0.0 1.5e-3 2.45e-3 3.2e-4 ; " 3% damping tuned by Anyd 20/02/12 unable to
; damping_posdef 0.0 0.0 0.0 2.1e-3 1.9e-3 1.3e-4 ; " 3% damping tuned by Anyd 15/08/14 rev2
damping_posdef 0.0 0.0 0.0 1.68e-3 2.25e-3 1.0e-4 ; " 3% damping tuned by Anyd 16/12/14
begin timoschenko_input ;
filename ./data/AVATAR_10MW_RWT_Blade_st.dat ;
set 1 9 ;
end timoschenko_input;
begin c2_def;
nsec 27 ;
sec 1 -0.001 -0.001 0.000 -17.280 ;
sec 2 -0.005 -0.001 2.220 -17.280 ;
sec 3 -0.006 -0.000 4.440 -17.280 ;
sec 4 -0.086 0.022 6.660 -17.280 ;
sec 5 -0.231 0.069 11.039 -17.273 ;
sec 6 -0.447 0.121 15.418 -16.441 ;
sec 7 -0.690 0.161 19.797 -14.613 ;
sec 8 -0.812 0.162 24.176 -12.578 ;
sec 9 -0.891 0.158 28.555 -10.588 ;
sec 10 -0.865 0.124 32.934 -9.070 ;
sec 11 -0.833 0.112 37.313 -8.224 ;
sec 12 -0.797 0.102 41.692 -7.688 ;
sec 13 -0.760 0.093 46.071 -7.205 ;
sec 14 -0.721 0.083 50.450 -6.749 ;
sec 15 -0.683 0.075 54.829 -6.288 ;
sec 16 -0.644 0.066 59.208 -5.838 ;
sec 17 -0.606 0.058 63.587 -5.401 ;
sec 18 -0.567 0.050 67.966 -4.982 ;
sec 19 -0.529 0.044 72.345 -4.640 ;
sec 20 -0.492 0.037 76.724 -4.380 ;
sec 21 -0.456 0.032 81.103 -4.144 ;
sec 22 -0.422 0.026 85.482 -3.914 ;
sec 23 -0.392 0.021 89.861 -3.685 ;
sec 24 -0.346 0.014 94.240 -3.460 ;
sec 25 -0.307 0.010 96.190 -3.350 ;
sec 26 -0.249 0.005 98.130 -3.250 ;
sec 27 -0.089 0.006 100.080 -3.140 ;
end c2_def ;
end main_body;
;
begin main_body;
name blade2 ;
copy_main_body blade1;
end main_body;
;
begin main_body;
name blade3 ;
copy_main_body blade1 ;
end main_body;
;-------------------------------------------------------------------------------------------------------------------------------
;
begin orientation;
begin base;
body tower;
inipos 0.0 0.0 0.0 ; initial position of node 1
body_eulerang 0.0 0.0 0.0;
end base;
;
begin relative;
body1 tower last;
body2 towertop 1;
body2_eulerang 0.0 0.0 0.0;
end relative;
;
begin relative;
body1 towertop last;
body2 shaft 1;
body2_eulerang 90.0 0.0 0.0;
body2_eulerang 5.0 0.0 0.0; 5 deg tilt angle
body2_eulerang 0.0 0.0 [Rotor azimuth];
[Free shaft rot] mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 [init_wr] ; mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 [init_wr];
end relative;
;
begin relative; dummy non rotating hub coordinates
body1 towertop last;
body2 shaft_nonrotate 1;
body2_eulerang 90.0 0.0 0.0;
body2_eulerang 5.0 0.0 0.0; same 5 deg tilt angle as real shaft
end relative;
;
begin relative;
body1 shaft last;
body2 hub1 1;
body2_eulerang -90.0 0.0 0.0;
body2_eulerang 0.0 180.0 0.0;
body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle
end relative;
;
begin relative;
body1 shaft last;
body2 hub2 1;
body2_eulerang -90.0 0.0 0.0;
body2_eulerang 0.0 60.0 0.0;
body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle
end relative;
;
begin relative;
body1 shaft last;
body2 hub3 1;
body2_eulerang -90.0 0.0 0.0;
body2_eulerang 0.0 -60.0 0.0;
body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle
end relative;
;
begin relative;
body1 hub1 last;
body2 blade1 1;
body2_eulerang 0.0 0.0 0;
end relative;
;
begin relative;
body1 hub2 last;
body2 blade2 1;
body2_eulerang 0.0 0.0 0.0;
end relative;
;
begin relative;
body1 hub3 last;
body2 blade3 1;
body2_eulerang 0.0 0.0 0.0;
end relative;
;
end orientation;
;-------------------------------------------------------------------------------------------------------------------------------
begin constraint;
;
begin fix0; fixed to ground in translation and rotation of node 1
body tower;
end fix0;
;
begin fix1;
body1 tower last ;
body2 towertop 1;
end fix1;
;
[Free shaft rot] begin bearing1; free bearing
[Free shaft rot] name shaft_rot;
[Free shaft rot] body1 towertop last;
[Free shaft rot] body2 shaft 1;
[Free shaft rot] bearing_vector 2 0.0 0.0 -1.0; x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present
[Free shaft rot] end bearing1;
;
[Rotor locked] begin bearing3; free bearing
[Rotor locked] name shaft_rot;
[Rotor locked] body1 towertop last;
[Rotor locked] body2 shaft 1;
[Rotor locked] bearing_vector 2 0.0 0.0 -1.0; x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present
[Rotor locked] omegas 0.0 ;
[Rotor locked] end bearing3;
;
begin fix1;
body1 tower last ;
body2 shaft_nonrotate 1;
end fix1;
;
begin fix1;
body1 shaft last ;
body2 hub1 1;
end fix1;
;
begin fix1;
body1 shaft last ;
body2 hub2 1;
end fix1;
;
begin fix1;
body1 shaft last ;
body2 hub3 1;
end fix1;
;
begin bearing2;
name pitch1;
body1 hub1 last;
body2 blade1 1;
bearing_vector 2 0.0 0.0 -1.0;
end bearing2;
;
begin bearing2;
name pitch2;
body1 hub2 last;
body2 blade2 1;
bearing_vector 2 0.0 0.0 -1.0;
end bearing2;
;
begin bearing2;
name pitch3;
body1 hub3 last;
body2 blade3 1;
bearing_vector 2 0.0 0.0 -1.0;
end bearing2;
end constraint;
;
end new_htc_structure;
;----------------------------------------------------------------------------------------------------------------------------------------------------------------
begin wind ;
density 1.225 ;
wsp [Windspeed] ;
tint [TI] ;
horizontal_input 1 ;
windfield_rotations [wdir] 8.0 0.0 ; yaw, tilt (positive=upflow=wind coming from below), rotation
center_pos0 0.0 0.0 -127 ; hub heigth
shear_format 3 [shear_exp] ;
turb_format [tu_model] ; 0=none, 1=mann,2=flex
tower_shadow_method 3 ; 0=none, 1=potential flow, 2=jet
scale_time_start [t0] ;
wind_ramp_factor 0.0 [t0] [wsp factor] 1.0 ;
[gust] iec_gust [gust_type] [G_A] [G_phi0] [G_t0] [G_T] ;
;
[staircase] wind_ramp_abs 400.0 401.0 0.0 1.0 ; wsp. after the step: 5.0
[staircase] wind_ramp_abs 501.0 502.0 0.0 1.0 ; wsp. after the step: 6.0
[staircase] wind_ramp_abs 602.0 603.0 0.0 1.0 ; wsp. after the step: 7.0
[staircase] wind_ramp_abs 703.0 704.0 0.0 1.0 ; wsp. after the step: 8.0
[staircase] wind_ramp_abs 804.0 805.0 0.0 1.0 ; wsp. after the step: 9.0
[staircase] wind_ramp_abs 905.0 906.0 0.0 1.0 ; wsp. after the step: 10.0
[staircase] wind_ramp_abs 1006.0 1007.0 0.0 1.0 ; wsp. after the step: 11.0
[staircase] wind_ramp_abs 1107.0 1108.0 0.0 1.0 ; wsp. after the step: 12.0
[staircase] wind_ramp_abs 1208.0 1209.0 0.0 1.0 ; wsp. after the step: 13.0
[staircase] wind_ramp_abs 1309.0 1310.0 0.0 1.0 ; wsp. after the step: 14.0
[staircase] wind_ramp_abs 1410.0 1411.0 0.0 1.0 ; wsp. after the step: 15.0
[staircase] wind_ramp_abs 1511.0 1512.0 0.0 1.0 ; wsp. after the step: 16.0
[staircase] wind_ramp_abs 1612.0 1613.0 0.0 1.0 ; wsp. after the step: 17.0
[staircase] wind_ramp_abs 1713.0 1714.0 0.0 1.0 ; wsp. after the step: 18.0
[staircase] wind_ramp_abs 1814.0 1815.0 0.0 1.0 ; wsp. after the step: 19.0
[staircase] wind_ramp_abs 1915.0 1916.0 0.0 1.0 ; wsp. after the step: 20.0
[staircase] wind_ramp_abs 2016.0 2017.0 0.0 1.0 ; wsp. after the step: 21.0
[staircase] wind_ramp_abs 2117.0 2118.0 0.0 1.0 ; wsp. after the step: 22.0
[staircase] wind_ramp_abs 2218.0 2219.0 0.0 1.0 ; wsp. after the step: 23.0
[staircase] wind_ramp_abs 2319.0 2320.0 0.0 1.0 ; wsp. after the step: 24.0
[staircase] wind_ramp_abs 2420.0 2421.0 0.0 1.0 ; wsp. after the step: 25.0
;
[windramp] wind_ramp_abs 400.0 2200.0 0.0 21.0 ; wsp. after the step: 25.0
[windramp] wind_ramp_abs 2400.0 4200.0 0.0 -21.0 ; wsp. after the step: 25.0
;
begin mann ;
create_turb_parameters 29.4 1.0 3.9 [tu_seed] 1.0 ; L, alfaeps, gamma, seed, highfrq compensation
filename_u ./[turb_dir][Turb base name]u.bin ;
filename_v ./[turb_dir][Turb base name]v.bin ;
filename_w ./[turb_dir][Turb base name]w.bin ;
box_dim_u 8192 [turb_dx] ;
box_dim_v 32 7.5;
box_dim_w 32 7.5;
std_scaling 1.0 0.7 0.5 ;
end mann ;
;
begin tower_shadow_potential_2;
tower_mbdy_link tower;
nsec 2;
radius 0.0 4.15 ;
radius 123.6 2.75 ; (radius)
end tower_shadow_potential_2;
end wind;
;
begin aerodrag ;
begin aerodrag_element ;
mbdy_name tower;
aerodrag_sections uniform 10 ;
nsec 2 ;
sec 0.0 0.6 8.3 ; tower bottom
sec 123.6 0.6 5.5 ; tower top (diameter)
end aerodrag_element;
;
begin aerodrag_element ; Nacelle drag side
mbdy_name shaft;
aerodrag_sections uniform 2 ;
nsec 2 ;
sec 0.0 0.8 10.0 ;
sec 7.01 0.8 10.0 ;
end aerodrag_element;
end aerodrag;
;
begin aero ;
nblades 3;
hub_vec shaft -3 ; rotor rotation vector (normally shaft composant directed from pressure to sustion side)
link 1 mbdy_c2_def blade1;
link 2 mbdy_c2_def blade2;
link 3 mbdy_c2_def blade3;
ae_filename ./data/AVATAR_10MW_RWT_ae.dat ;
pc_filename ./data/AVATAR_10MW_RWT_pc_hama_v1.dat ;
induction_method [Induction] ; 0=none, 1=normal
aerocalc_method 1 ; 0=ingen aerodynamic, 1=med aerodynamic
aero_distribution ae_file 1 ;
ae_sets 1 1 1;
tiploss_method 1 ; 0=none, 1=prandtl
dynstall_method [Dyn stall] ; 0=none, 1=stig øye method,2=mhh method
;
; ; --- Flaps --- ;
; begin dynstall_ateflap ;
; Ais 0.165 0.335 0.0 ;
; Bis 0.0455 0.30 0.30 ;
; flap 59.5925 85.5023 ./data/Flap_dturwt1_Thk24.ds ; Flap Sec: 1
; end dynstall_ateflap;
end aero ;
;-------------------------------------------------------------------------------------------------
begin dll;
;
begin type2_dll;
name risoe_controller ;
filename ./control/risoe_controller.dll ;
dll_subroutine_init init_regulation ;
dll_subroutine_update update_regulation ;
arraysizes_init 52 1 ;
arraysizes_update 12 100 ;
begin init ;
; Overall parameters
constant 1 10000.0 ; Rated power [kW]
constant 2 0.628 ; Minimum rotor speed [rad/s]
constant 3 1.005 ; Rated rotor speed [rad/s]
constant 4 15.6E+06 ; Maximum allowable generator torque [Nm]
constant 5 100.0 ; Minimum pitch angle, theta_min [deg],
; if |theta_min|>90, then a table of <wsp,theta_min> is read ;
; from a file named 'wpdata.n', where n=int(theta_min)
constant 6 90.0 ; Maximum pitch angle [deg]
constant 7 10.0 ; Maximum pitch velocity operation [deg/s]
constant 8 0.4 ; Frequency of generator speed filter [Hz]
constant 9 0.7 ; Damping ratio of speed filter [-]
constant 10 1.64 ; Frequency of free-free DT torsion mode [Hz], if zero no notch filter used
; Partial load control parameters
constant 11 0.9648030e+07 ; Optimal Cp tracking K factor [Nm/(rad/s)^2], ;
; Qg=K*Omega^2, K=eta*0.5*rho*A*Cp_opt*R^3/lambda_opt^3
constant 12 1.047610E+08 ; Proportional gain of torque controller [Nm/(rad/s)]
constant 13 0.153367E+08 ; Integral gain of torque controller [Nm/rad]
constant 14 0.0 ; Differential gain of torque controller [Nm/(rad/s^2)]
; Full load control parameters
constant 15 1 ; Generator control switch [1=constant power, 2=constant torque]
constant 16 0.762489 ; Proportional gain of pitch controller [rad/(rad/s)]
constant 17 0.224086 ; Integral gain of pitch controller [rad/rad]
constant 18 0.0 ; Differential gain of pitch controller [rad/(rad/s^2)]
constant 19 0.4e-9 ; Proportional power error gain [rad/W]
constant 20 0.4e-9 ; Integral power error gain [rad/(Ws)]
constant 21 10.6824 ; Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg]
constant 22 601.25499 ; Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] &
; (if zero, KK1 = pitch angle at double gain)
constant 23 1.3 ; Relative speed for double nonlinear gain [-]
; Cut-in simulation parameters
constant 24 [Cut-in time] ; Cut-in time [s]
constant 25 1.0 ; Time delay for soft start of torque [1/1P]
; Cut-out simulation parameters
constant 26 [Cut-out time] ; Cut-out time [s]
constant 27 5.0 ; Time constant for linear torque cut-out [s]
constant 28 [Stop type] ; Stop type [1=normal, 2=emergency]
constant 29 1.0 ; Time delay for pitch stop after shut-down signal [s]
constant 30 [Pitvel 1] ; Maximum pitch velocity during initial period of stop [deg/s]
constant 31 3.0 ; Time period of initial pitch stop phase [s] (maintains pitch speed specified in constant 30)
constant 32 [Pitvel 2] ; Maximum pitch velocity during final phase of stop [deg/s]
; Expert parameters (keep default values unless otherwise given)
constant 33 2.0 ; Lower angle above lowest minimum pitch angle for switch [deg]
constant 34 2.0 ; Upper angle above lowest minimum pitch angle for switch [deg], if equal then hard switch
constant 35 95.0 ; Ratio between filtered speed and reference speed for fully open torque limits [%]
constant 36 2.0 ; Time constant of 1st order filter on wind speed used for minimum pitch [1/1P]
constant 37 1.0 ; Time constant of 1st order filter on pitch angle used for gain scheduling [1/1P]
; Drivetrain damper
constant 38 0.0 ; Proportional gain of active DT damper [Nm/(rad/s)], requires frequency in input 10
; Over speed
constant 39 25.0 ; Overspeed percentage before initiating turbine controller alarm (shut-down) [%]
; Additional non-linear pitch control term (not used when all zero)
constant 40 0.0 ; Err0 [rad/s]
constant 41 0.0 ; ErrDot0 [rad/s^2]
constant 42 0.0 ; PitNonLin1 [rad/s]
; Storm control command
constant 43 28.0 ; Wind speed 'Vstorm' above which derating of rotor speed is used [m/s]
constant 44 28.0 ; Cut-out wind speed (only used for derating of rotor speed in storm) [m/s]
; Safety system parameters
constant 45 25.0 ; Overspeed percentage before initiating safety system alarm (shut-down) [%]
constant 46 1.5 ; Max low-pass filtered tower top acceleration level [m/s^2] - max in DLC 1.3=1.1 m/s^2
; Turbine parameter
constant 47 205.8 ; Nominal rotor diameter [m]
; Parameters for rotor inertia reduction in variable speed region
constant 48 0.0 ; Proportional gain on rotor acceleration in variable speed region [Nm/(rad/s^2)] (not used when zero)
; Parameters for alternative partial load controller with PI regulated TSR tracking
constant 49 0.0 ; Optimal tip speed ratio [-] (only used when K=constant 11 = 0 otherwise Qg=K*Omega^2 is used)
; Parameters for adding aerodynamic drivetrain damping on gain scheduling
constant 50 0.0 ; Proportional gain of aerodynamic DT damping [Nm/(rad/s)]
constant 51 0.0 ; Coefficient of linear term in aerodynamic DT damping scheduling, KK1 [deg]
constant 52 0.0 ; Coefficient of quadratic term in aerodynamic DT damping scheduling, KK2 [deg^2]
end init ;
;
begin output ;
general time ; [s]
constraint bearing1 shaft_rot 1 only 2 ; Drivetrain speed [rad/s]
constraint bearing2 pitch1 1 only 1; [rad]
constraint bearing2 pitch2 1 only 1; [rad]
constraint bearing2 pitch3 1 only 1; [rad]
wind free_wind 1 0.0 0.0 -127 ; Global coordinates at hub height
dll inpvec 2 2 ; Elec. power from generator servo .dll
dll inpvec 2 8 ; Grid state flag from generator servo .dll
mbdy state acc tower 10 1.0 global only 1 ; Tower top x-acceleration [m/s^2]
mbdy state acc tower 10 1.0 global only 2 ; Tower top y-acceleration [m/s^2]
end output;
end type2_dll;
;
begin type2_dll;
name generator_servo ;
filename ./control/generator_servo.dll ;
dll_subroutine_init init_generator_servo ;
dll_subroutine_update update_generator_servo ;
arraysizes_init 7 1 ;
arraysizes_update 4 8 ;
begin init ;
constant 1 20.0 ; Frequency of 2nd order servo model of generator-converter system [Hz]
constant 2 0.9 ; Damping ratio 2nd order servo model of generator-converter system [-]
constant 3 15.6E+06 ; Maximum allowable LSS torque (pull-out torque) [Nm]
constant 4 0.94 ; Generator efficiency [-]
constant 5 1.0 ; Gearratio [-]
constant 6 0.0 ; Time for half value in softstart of torque [s]
constant 7 [Grid loss time] ; Time for grid loss [s]
end init ;
;
begin output;
general time ; Time [s]
dll inpvec 1 1 ; Electrical torque reference [Nm]
constraint bearing1 shaft_rot 1 only 2; Generator LSS speed [rad/s]
mbdy momentvec shaft 1 1 shaft only 3 ; Shaft moment [kNm] (Qshaft)
end output;
;
begin actions;
mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm]
end actions;
end type2_dll;
;
begin type2_dll;
name mech_brake ;
filename ./control/mech_brake.dll ;
dll_subroutine_init init_mech_brake ;
dll_subroutine_update update_mech_brake ;
arraysizes_init 7 1 ;
arraysizes_update 4 6 ;
begin init ;
constant 1 5225.35 ; Fully deployed maximum brake torque [Nm] (0.6*max torque)
constant 2 100.0 ; Parameter alpha used in Q = tanh(omega*alpha), typically 1e2/Omega_nom
constant 3 0.5 ; Delay time for before brake starts to deploy [s]
constant 4 0.74 ; Time for brake to become fully deployed [s]
end init ;
;
begin output;
general time ; Time [s]
constraint bearing1 shaft_rot 1 only 2 ; Generator LSS speed [rad/s]
dll inpvec 1 25 ; Command to deploy mechanical disc brake [0,1]
end output;
;
begin actions;
mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm]
end actions;
end type2_dll;
;
begin type2_dll;
name servo_with_limits ;
filename ./control/servo_with_limits.dll ;
dll_subroutine_init init_servo_with_limits ;
dll_subroutine_update update_servo_with_limits ;
arraysizes_init 10 1 ;
arraysizes_update 5 9 ;
begin init ;
constant 1 3 ; Number of blades [-]
constant 2 1.0 ; Frequency of 2nd order servo model of pitch system [Hz]
constant 3 0.7 ; Damping ratio 2nd order servo model of pitch system [-]
constant 4 10.0 ; Max. pitch speed [deg/s]
constant 5 15.0 ; Max. pitch acceleration [deg/s^2]
constant 6 -5.0 ; Min. pitch angle [deg]
constant 7 90.0 ; Max. pitch angle [deg]
constant 8 [Time pitch runaway] ; Time for pitch runaway [s]
constant 9 [Time stuck DLC22b] ; Time for stuck blade 1 [s]
constant 10 [Pitch 1 DLC22b] ; Angle of stuck blade 1 [deg]
end init ;
begin output;
general time ; Time [s]
dll inpvec 1 2 ; Pitch1 demand angle [rad]
dll inpvec 1 3 ; Pitch2 demand angle [rad]
dll inpvec 1 4 ; Pitch3 demand angle [rad]
dll inpvec 1 26 ; Flag for emergency pitch stop [0=off/1=on]
end output;
;
begin actions;
constraint bearing2 angle pitch1 ; Angle pitch1 bearing [rad]
constraint bearing2 angle pitch2 ; Angle pitch2 bearing [rad]
constraint bearing2 angle pitch3 ; Angle pitch3 bearing [rad]
end actions;
end type2_dll;
;
; --- DLL for tower-blade tip distance -- ;
begin type2_dll;
name disttowtip ;
filename ./control/towclearsens.dll ;
dll_subroutine_init initialize ;
dll_subroutine_update update ;
arraysizes_init 1 1 ;
arraysizes_update 12 4 ;
begin init ;
constant 1 3.87 ; Tower radius close to downward blade tip [m]
end init ;
begin output;
mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m
mbdy state pos blade1 26 1.0 global ; [4,5,6]
mbdy state pos blade2 26 1.0 global ; [7,8,9]
mbdy state pos blade3 26 1.0 global ; [10,11,12]
end output;
end type2_dll;
end dll;
;
;----------------------------------------------------------------------------------------------------------------------------------------------------------------
;
begin output;
filename ./res/[Case folder]/[Case id.] ;
time [t0] [time stop] ;
data_format [out_format];
buffer 1 ;
;
general time;
constraint bearing1 shaft_rot 2; angle and angle velocity
constraint bearing2 pitch1 5; angle and angle velocity
constraint bearing2 pitch2 5; angle and angle velocity
constraint bearing2 pitch3 5; angle and angle velocity
aero omega ;
aero torque;
aero power;
aero thrust;
wind free_wind 1 0.0 0.0 -127; local wind at fixed position: coo (1=global,2=non-rotation rotor coo.), pos x, pos y, pos z
; non rotating coordinates shaft tip: equivalent to stationary hub in BLADED
mbdy momentvec shaft 3 2 shaft_nonrotate # non rotating shaft tip ;
mbdy forcevec shaft 3 2 shaft_nonrotate # non rotating shaft tip ;
; Moments:
mbdy momentvec tower 1 1 tower # tower base ;
mbdy momentvec tower 19 2 tower # tower yaw bearing ;
mbdy momentvec shaft 4 1 shaft # main bearing ;
mbdy momentvec blade1 3 2 blade1 # blade 1 root ;
mbdy momentvec blade2 3 2 blade2 # blade 2 root ;
mbdy momentvec blade3 3 2 blade3 # blade 3 root ;
; blade 2,3 root section loads
mbdy momentvec blade2 3 2 local # blade 2 section root;
mbdy momentvec blade3 3 2 local # blade 3 section root;
; blade 1 sectional loads in local coordinates
mbdy momentvec blade1 2 2 local # blade 1 section;
mbdy momentvec blade1 3 2 local # blade 1 section root;
mbdy momentvec blade1 4 2 local # blade 1 section;
mbdy momentvec blade1 5 2 local # blade 1 section;
mbdy momentvec blade1 6 2 local # blade 1 section;
mbdy momentvec blade1 7 2 local # blade 1 section;
mbdy momentvec blade1 8 2 local # blade 1 section;
mbdy momentvec blade1 9 2 local # blade 1 section;
mbdy momentvec blade1 10 2 local # blade 1 section;
mbdy momentvec blade1 11 2 local # blade 1 section;
mbdy momentvec blade1 12 2 local # blade 1 section;
mbdy momentvec blade1 13 2 local # blade 1 section;
mbdy momentvec blade1 14 2 local # blade 1 section;
mbdy momentvec blade1 15 2 local # blade 1 section;
mbdy momentvec blade1 16 2 local # blade 1 section;
mbdy momentvec blade1 17 2 local # blade 1 section;
mbdy momentvec blade1 18 2 local # blade 1 section;
mbdy momentvec blade1 19 2 local # blade 1 section;
mbdy momentvec blade1 20 2 local # blade 1 section;
mbdy momentvec blade1 21 2 local # blade 1 section;
mbdy momentvec blade1 22 2 local # blade 1 section;
mbdy momentvec blade1 23 2 local # blade 1 section;
mbdy momentvec blade1 24 2 local # blade 1 section;
mbdy momentvec blade1 25 2 local # blade 1 section;
mbdy momentvec blade1 26 2 local # blade 1 section;
; blade root out and in of plane forces
mbdy momentvec blade1 3 2 hub1 # blade 1 root ;
mbdy momentvec blade2 3 2 hub2 # blade 2 root ;
mbdy momentvec blade3 3 2 hub3 # blade 3 root ;
; mbdy momentvec blade1 14 1 local # blade 1 50% local e coo ;
; mbdy momentvec blade2 14 1 local # blade 2 50% local e coo ;
; mbdy momentvec blade3 14 1 local # blade 3 50% local e coo ;
; Displacements and accellerations
mbdy state pos tower 19 1.0 global only 1 # Tower top FA displ;
mbdy state pos tower 19 1.0 global only 2 # Tower top SS displ;
mbdy state acc tower 19 1.0 global only 1 # Tower top FA acc;
mbdy state acc tower 19 1.0 global only 2 # Tower top SS acc;
;
mbdy state pos blade1 26 1.0 global # gl blade 1 tip pos ;
mbdy state pos blade2 26 1.0 global # gl blade 2 tip pos ;
mbdy state pos blade3 26 1.0 global # gl blade 3 tip pos ;
mbdy state pos blade1 26 1.0 blade1 # blade 1 tip pos ;
mbdy state pos blade2 26 1.0 blade2 # blade 2 tip pos ;
mbdy state pos blade3 26 1.0 blade3 # blade 3 tip pos ;
;
mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m
;
; elastic twist (torsional deformation) along the blade
aero tors_ang 1 45.56;
aero tors_ang 1 59.19;
aero tors_ang 1 70.87;
aero tors_ang 1 80.61;
aero tors_ang 1 84.50;
aero tors_ang 1 88.40;
aero tors_ang 1 92.29;
aero tors_ang 1 96.19;
aero tors_ang 1 98.13;
aero tors_ang 1 100.08; tip
;
; - Monitor Aerodynamics - ;
aero windspeed 3 1 1 72.5;
aero alfa 1 72.5;
aero alfa 2 72.5;
aero alfa 3 72.5;
aero cl 1 72.5;
aero cl 2 72.5;
aero cl 3 72.5;
aero cd 1 72.5;
aero cd 2 72.5;
aero cd 3 72.5;
; - Main Controller -
; Output to controller
; dll outvec 1 1 # time;
; dll outvec 1 2 # slow speed shaft rad/s;
; dll outvec 1 3 # pitch angle 1;
; dll outvec 1 4 # pitch angle 2;
; dll outvec 1 5 # pitch angle 3;
; dll outvec 1 6 # WSP_x_global;
; dll outvec 1 7 # WSP_y_global;
; dll outvec 1 8 # WSP_z_global;
; dll outvec 1 9 # Elec. pwr ;
; dll outvec 1 10 # Grid flag ;
; Input from controller
dll inpvec 1 1 # Generator torque reference [Nm] ;
dll inpvec 1 2 # Pitch angle reference of blade 1 [rad] ;
dll inpvec 1 3 # Pitch angle reference of blade 2 [rad] ;
dll inpvec 1 4 # Pitch angle reference of blade 3 [rad] ;
; dll inpvec 1 5 # Power reference [W] ;
; dll inpvec 1 6 # Filtered wind speed [m/s] ;
; dll inpvec 1 7 # Filtered rotor speed [rad/s];
; dll inpvec 1 8 # Filtered rotor speed error for torque [rad/s];
; dll inpvec 1 9 # Bandpass filtered rotor speed [rad/s];
; dll inpvec 1 10 # Proportional term of torque contr. [Nm] ;
; dll inpvec 1 11 # Integral term of torque controller [Nm] ;
; dll inpvec 1 12 # Minimum limit of torque [Nm] ;
; dll inpvec 1 13 # Maximum limit of torque [Nm] ;
dll inpvec 1 14 # Torque limit switch based on pitch [-] ;
; dll inpvec 1 15 # Filtered rotor speed error for pitch [rad/s];
; dll inpvec 1 16 # Power error for pitch [W] ;
; dll inpvec 1 17 # Proportional term of pitch controller [rad] ;
; dll inpvec 1 18 # Integral term of pitch controller [rad] ;
; dll inpvec 1 19 # Minimum limit of pitch [rad] ;
; dll inpvec 1 20 # Maximum limit of pitch [rad] ;
dll inpvec 1 21 # Torque reference from DT dammper [Nm] ;
dll inpvec 1 22 # Status signal [-] ;
; dll inpvec 1 23 # Total added pitch rate [rad/s] ;
dll inpvec 1 24 # Filtered Mean pitch for gain sch [rad] ;
dll inpvec 1 25 # Flag for mechnical brake [0=off/1=on] ;
dll inpvec 1 26 # Flag for emergency pitch stop [0=off/1=on] ;
dll inpvec 1 27 # LP filtered acceleration level [m/s^2] ;
; ; Output to generator model
; dll outvec 2 1 # time ;
; dll outvec 2 2 # Electrical torque reference [Nm] ;
; dll outvec 2 3 # omega LSS ;
; Input from generator model
dll inpvec 2 1 # Mgen LSS [Nm];
dll inpvec 2 2 # Pelec W ;
dll inpvec 2 3 # Mframe ;
dll inpvec 2 4 # Mgen HSS ;
dll inpvec 2 5 # Generator Pmech kW ;
dll inpvec 2 6 # Filtered Gen speed ;
dll inpvec 2 7 # Resulting Eff ;
dll inpvec 2 8 # Grid flag ;
; Output to mechanical brake
dll inpvec 3 1 # Brake torque [Nm] ;
; ; Input from mechanical brake
; dll outvec 3 1 # Time [s] ;
; dll outvec 3 2 # Generator LSS speed [rad/s] ;
; dll outvec 3 3 # Deploy brake ;
; ; Output to pitch servo
; dll outvec 4 1 # time;
; dll outvec 4 2 # pitchref 1;
; dll outvec 4 3 # pitchref 2;
; dll outvec 4 4 # pitchref 3;
; dll outvec 4 5 # Emerg. stop;
; Input from pitch servo
dll inpvec 4 1 # pitch 1;
dll inpvec 4 2 # pitch 2;
dll inpvec 4 3 # pitch 3;
; Check tower clearence
dll inpvec 5 1 # Bltip tow min d [m];
; general constant 1.0 ; constant 1.0 - to mesure activity of flap in terms of displacement
; - Check on flap control:
; ; - From flap controller: -
; dll type2_dll cyclic_flap_controller inpvec 1 # Ref flap signal bl 1 [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 2 # Ref flap signal bl 2 [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 3 # Ref flap signal bl 3 [deg] ;
; ; - Mbc values
; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ;
; ; - Check Gains - ;
; dll type2_dll cyclic_flap_controller inpvec 10 # lead angle [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 11 # scaling on rat pow [-] ;
; dll type2_dll cyclic_flap_controller inpvec 12 # actual kp [deg/kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 13 # actual ki [deg/kNms] ;
; dll type2_dll cyclic_flap_controller inpvec 14 # actual kd [deg s/kNm] ;
; ; - Actual deflections -
; [dis_setbeta] aero beta 1 1 ;
; [dis_setbeta] aero beta 2 1 ;
; [dis_setbeta] aero beta 3 1 ;
; ; - Mbc values
; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ;
end output;
;
exit;
;this version was at some point based on: Avatar_10MW_RWT version 1, 06-08-14, Anyd
begin simulation;
time_stop 40;
solvertype 1 ; (newmark)
on_no_convergence continue ;
; convergence_limits 1E3 1.0 1E-7 ;
logfile ./logfiles/dlc01_demos/dlc01_steady_wsp10_noturb.log ;
begin newmark;
deltat 0.02;
end newmark;
end simulation;
;
;----------------------------------------------------------------------------------------------------------------------------------------------------------------
begin new_htc_structure;
;--------------------------------------------------------------------------------------------------
; beam_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp10_noturb/dlc01_steady_wsp10_noturb_beam.dat;
; body_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp10_noturb/dlc01_steady_wsp10_noturb_body.dat;
; struct_inertia_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp10_noturb/dlc01_steady_wsp10_noturb_struct.dat;
; body_eigenanalysis_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp10_noturb/dlc01_steady_wsp10_noturb_body_eigen.dat;
; structure_eigenanalysis_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp10_noturb/dlc01_steady_wsp10_noturb_strc_eigen.dat;
;---------------------------------------------------------------------------------------------------
begin main_body; tower 123.6m
name tower ;
type timoschenko ;
nbodies 3 ;
node_distribution c2_def ;
damping_posdef 0 0 0 4.7E-03 4.7E-03 4.3E-04 ; tuned by Anyd 12/8/14
begin timoschenko_input;
filename ./data/AVATAR_10MW_RWT_tower_st.dat;
set 1 1 ;
end timoschenko_input;
begin c2_def; Definition of centerline (main_body coordinates)
nsec 20;
sec 1 0 0 0.000 0 ; x,y,z,twist
sec 2 0 0 -12.293 0 ;
sec 3 0 0 -12.294 0 ;
sec 4 0 0 -24.585 0 ;
sec 5 0 0 -24.586 0 ;
sec 6 0 0 -36.878 0 ;
sec 7 0 0 -36.879 0 ;
sec 8 0 0 -49.171 0 ;
sec 9 0 0 -49.172 0 ;
sec 10 0 0 -61.463 0 ;
sec 11 0 0 -61.464 0 ;
sec 12 0 0 -73.756 0 ;
sec 13 0 0 -73.757 0 ;
sec 14 0 0 -86.049 0 ;
sec 15 0 0 -86.050 0 ;
sec 16 0 0 -98.341 0 ;
sec 17 0 0 -98.342 0 ;
sec 18 0 0 -110.634 0 ;
sec 19 0 0 -110.635 0 ;
sec 20 0 0 -123.600 0 ;
end c2_def ;
end main_body;
;
begin main_body;
name towertop ;
type timoschenko ;
nbodies 1 ;
node_distribution c2_def ;
damping_posdef 7.50E-03 7.40E-03 7.00E-03 7.00E-03 7.00E-03 7.00E-03 ; "changed by Anyd
concentrated_mass 2.0 0.0 2.6870E+00 3.0061E-01 4.4604E+05 4.1060E+06 4.1060E+05 4.1060E+06 ; Nacel
begin timoschenko_input;
filename ./data/DTU_10MW_RWT_Towertop_st.dat ;
set 1 2 ;
end timoschenko_input;
begin c2_def; Definition of centerline (main_body coordinates)
nsec 2;
sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist
sec 2 0.0 0.0 -2.75 0.0 ;
end c2_def ;
end main_body;
;
begin main_body;
name shaft ;
type timoschenko ;
nbodies 1 ;
node_distribution c2_def ;
; damping_posdef 8.00E-3 8.00E-03 8.00E-02 4.65E-04 4.65E-04 2.38E-02 ; "tuned by Anyd 22/2/13
damping_posdef 0.0 0.0 3.983E-03 4.65E-04 4.65E-04 3.983E-03 ; "tuned by Anyd 23/5/13 to 31.45 l
concentrated_mass 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.751E+06 ; generator equivalent slow shaft "re_tu
concentrated_mass 5.0 0.0 0.0 0.0 1.0552E+05 0.0 0.0 3.257E+05 ; hub mass and inertia; "re_tuned
begin timoschenko_input;
filename ./data/DTU_10MW_RWT_Shaft_st.dat ;
set 1 1 ;
end timoschenko_input;
begin c2_def; Definition of centerline (main_body coordinates)
nsec 5;
sec 1 0.0 0.0 0.0 0.0 ; Tower top x,y,z,twist
sec 2 0.0 0.0 1.5 0.0 ;
sec 3 0.0 0.0 3.0 0.0 ;
sec 4 0.0 0.0 4.4 0.0 ; Main bearing
sec 5 0.0 0.0 7.1 0.0 ; Rotor centre
end c2_def ;
end main_body;
;
begin main_body;
name shaft_nonrotate ;
type timoschenko ;
nbodies 1 ;
node_distribution c2_def ;
damping_posdef 0.00E+00 0.00E+00 0.00E+00 1.0E-01 1.0E-01 1.0E-01 ;
begin timoschenko_input;
filename ./data/DTU_10MW_RWT_Shaft_st.dat ;
set 1 3; dummy light and stiff structure
end timoschenko_input;
begin c2_def;
nsec 2;
sec 1 0.0 0.0 0.0 0.0 ;
sec 2 0.0 0.0 0.1 0.0 ;
end c2_def;
end main_body;
;
begin main_body;
name hub1 ;
type timoschenko ;
nbodies 1 ;
node_distribution c2_def ;
damping_posdef 2.00E-05 2.00E-05 2.00E-04 3.00E-06 3.00E-06 2.00E-05;
begin timoschenko_input;
filename ./data/DTU_10MW_RWT_Hub_st.dat ;
set 1 2 ;
end timoschenko_input;
begin c2_def; Definition of centerline (main_body coordinates)
nsec 2;
sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist
sec 2 0.0 0.0 2.8 0.0 ;
end c2_def ;
end main_body;
;
begin main_body;
name hub2 ;
copy_main_body hub1;
end main_body;
;
begin main_body;
name hub3 ;
copy_main_body hub1 ;
end main_body;
;
begin main_body;
name blade1 ;
type timoschenko ;
nbodies 10 ;
node_distribution c2_def;
; damping_posdef 0.0 0.0 0.0 2.5e-3 8.9e-4 3.2e-4 ; "Tuned by Anyd"
; damping_posdef 0.0 0.0 0.0 1.5e-3 2.45e-3 3.2e-4 ; " 3% damping tuned by Anyd 20/02/12 unable to
; damping_posdef 0.0 0.0 0.0 2.1e-3 1.9e-3 1.3e-4 ; " 3% damping tuned by Anyd 15/08/14 rev2
damping_posdef 0.0 0.0 0.0 1.68e-3 2.25e-3 1.0e-4 ; " 3% damping tuned by Anyd 16/12/14
begin timoschenko_input ;
filename ./data/AVATAR_10MW_RWT_Blade_st.dat ;
set 1 9 ;
end timoschenko_input;
begin c2_def;
nsec 27 ;
sec 1 -0.001 -0.001 0.000 -17.280 ;
sec 2 -0.005 -0.001 2.220 -17.280 ;
sec 3 -0.006 -0.000 4.440 -17.280 ;
sec 4 -0.086 0.022 6.660 -17.280 ;
sec 5 -0.231 0.069 11.039 -17.273 ;
sec 6 -0.447 0.121 15.418 -16.441 ;
sec 7 -0.690 0.161 19.797 -14.613 ;
sec 8 -0.812 0.162 24.176 -12.578 ;
sec 9 -0.891 0.158 28.555 -10.588 ;
sec 10 -0.865 0.124 32.934 -9.070 ;
sec 11 -0.833 0.112 37.313 -8.224 ;
sec 12 -0.797 0.102 41.692 -7.688 ;
sec 13 -0.760 0.093 46.071 -7.205 ;
sec 14 -0.721 0.083 50.450 -6.749 ;
sec 15 -0.683 0.075 54.829 -6.288 ;
sec 16 -0.644 0.066 59.208 -5.838 ;
sec 17 -0.606 0.058 63.587 -5.401 ;
sec 18 -0.567 0.050 67.966 -4.982 ;
sec 19 -0.529 0.044 72.345 -4.640 ;
sec 20 -0.492 0.037 76.724 -4.380 ;
sec 21 -0.456 0.032 81.103 -4.144 ;
sec 22 -0.422 0.026 85.482 -3.914 ;
sec 23 -0.392 0.021 89.861 -3.685 ;
sec 24 -0.346 0.014 94.240 -3.460 ;
sec 25 -0.307 0.010 96.190 -3.350 ;
sec 26 -0.249 0.005 98.130 -3.250 ;
sec 27 -0.089 0.006 100.080 -3.140 ;
end c2_def ;
end main_body;
;
begin main_body;
name blade2 ;
copy_main_body blade1;
end main_body;
;
begin main_body;
name blade3 ;
copy_main_body blade1 ;
end main_body;
;-------------------------------------------------------------------------------------------------------------------------------
;
begin orientation;
begin base;
body tower;
inipos 0.0 0.0 0.0 ; initial position of node 1
body_eulerang 0.0 0.0 0.0;
end base;
;
begin relative;
body1 tower last;
body2 towertop 1;
body2_eulerang 0.0 0.0 0.0;
end relative;
;
begin relative;
body1 towertop last;
body2 shaft 1;
body2_eulerang 90.0 0.0 0.0;
body2_eulerang 5.0 0.0 0.0; 5 deg tilt angle
body2_eulerang 0.0 0.0 0;
mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.5 ; mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.5;
end relative;
;
begin relative; dummy non rotating hub coordinates
body1 towertop last;
body2 shaft_nonrotate 1;
body2_eulerang 90.0 0.0 0.0;
body2_eulerang 5.0 0.0 0.0; same 5 deg tilt angle as real shaft
end relative;
;
begin relative;
body1 shaft last;
body2 hub1 1;
body2_eulerang -90.0 0.0 0.0;
body2_eulerang 0.0 180.0 0.0;
body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle
end relative;
;
begin relative;
body1 shaft last;
body2 hub2 1;
body2_eulerang -90.0 0.0 0.0;
body2_eulerang 0.0 60.0 0.0;
body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle
end relative;
;
begin relative;
body1 shaft last;
body2 hub3 1;
body2_eulerang -90.0 0.0 0.0;
body2_eulerang 0.0 -60.0 0.0;
body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle
end relative;
;
begin relative;
body1 hub1 last;
body2 blade1 1;
body2_eulerang 0.0 0.0 0;
end relative;
;
begin relative;
body1 hub2 last;
body2 blade2 1;
body2_eulerang 0.0 0.0 0.0;
end relative;
;
begin relative;
body1 hub3 last;
body2 blade3 1;
body2_eulerang 0.0 0.0 0.0;
end relative;
;
end orientation;
;-------------------------------------------------------------------------------------------------------------------------------
begin constraint;
;
begin fix0; fixed to ground in translation and rotation of node 1
body tower;
end fix0;
;
begin fix1;
body1 tower last ;
body2 towertop 1;
end fix1;
;
begin bearing1; free bearing
name shaft_rot;
body1 towertop last;
body2 shaft 1;
bearing_vector 2 0.0 0.0 -1.0; x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present
end bearing1;
;
; begin bearing3; free bearing
; name shaft_rot;
; body1 towertop last;
; body2 shaft 1;
; bearing_vector 2 0.0 0.0 -1.0; x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present
; omegas 0.0 ;
; end bearing3;
;
begin fix1;
body1 tower last ;
body2 shaft_nonrotate 1;
end fix1;
;
begin fix1;
body1 shaft last ;
body2 hub1 1;
end fix1;
;
begin fix1;
body1 shaft last ;
body2 hub2 1;
end fix1;
;
begin fix1;
body1 shaft last ;
body2 hub3 1;
end fix1;
;
begin bearing2;
name pitch1;
body1 hub1 last;
body2 blade1 1;
bearing_vector 2 0.0 0.0 -1.0;
end bearing2;
;
begin bearing2;
name pitch2;
body1 hub2 last;
body2 blade2 1;
bearing_vector 2 0.0 0.0 -1.0;
end bearing2;
;
begin bearing2;
name pitch3;
body1 hub3 last;
body2 blade3 1;
bearing_vector 2 0.0 0.0 -1.0;
end bearing2;
end constraint;
;
end new_htc_structure;
;----------------------------------------------------------------------------------------------------------------------------------------------------------------
begin wind ;
density 1.225 ;
wsp 10 ;
tint 0.2096 ;
horizontal_input 1 ;
windfield_rotations 0 8.0 0.0 ; yaw, tilt (positive=upflow=wind coming from below), rotation
center_pos0 0.0 0.0 -127 ; hub heigth
shear_format 3 0 ;
turb_format 0 ; 0=none, 1=mann,2=flex
tower_shadow_method 3 ; 0=none, 1=potential flow, 2=jet
scale_time_start 20 ;
wind_ramp_factor 0.0 20 0.8 1.0 ;
; iec_gust ;
;
; wind_ramp_abs 400.0 401.0 0.0 1.0 ; wsp. after the step: 5.0
; wind_ramp_abs 501.0 502.0 0.0 1.0 ; wsp. after the step: 6.0
; wind_ramp_abs 602.0 603.0 0.0 1.0 ; wsp. after the step: 7.0
; wind_ramp_abs 703.0 704.0 0.0 1.0 ; wsp. after the step: 8.0
; wind_ramp_abs 804.0 805.0 0.0 1.0 ; wsp. after the step: 9.0
; wind_ramp_abs 905.0 906.0 0.0 1.0 ; wsp. after the step: 10.0
; wind_ramp_abs 1006.0 1007.0 0.0 1.0 ; wsp. after the step: 11.0
; wind_ramp_abs 1107.0 1108.0 0.0 1.0 ; wsp. after the step: 12.0
; wind_ramp_abs 1208.0 1209.0 0.0 1.0 ; wsp. after the step: 13.0
; wind_ramp_abs 1309.0 1310.0 0.0 1.0 ; wsp. after the step: 14.0
; wind_ramp_abs 1410.0 1411.0 0.0 1.0 ; wsp. after the step: 15.0
; wind_ramp_abs 1511.0 1512.0 0.0 1.0 ; wsp. after the step: 16.0
; wind_ramp_abs 1612.0 1613.0 0.0 1.0 ; wsp. after the step: 17.0
; wind_ramp_abs 1713.0 1714.0 0.0 1.0 ; wsp. after the step: 18.0
; wind_ramp_abs 1814.0 1815.0 0.0 1.0 ; wsp. after the step: 19.0
; wind_ramp_abs 1915.0 1916.0 0.0 1.0 ; wsp. after the step: 20.0
; wind_ramp_abs 2016.0 2017.0 0.0 1.0 ; wsp. after the step: 21.0
; wind_ramp_abs 2117.0 2118.0 0.0 1.0 ; wsp. after the step: 22.0
; wind_ramp_abs 2218.0 2219.0 0.0 1.0 ; wsp. after the step: 23.0
; wind_ramp_abs 2319.0 2320.0 0.0 1.0 ; wsp. after the step: 24.0
; wind_ramp_abs 2420.0 2421.0 0.0 1.0 ; wsp. after the step: 25.0
;
; wind_ramp_abs 400.0 2200.0 0.0 21.0 ; wsp. after the step: 25.0
; wind_ramp_abs 2400.0 4200.0 0.0 -21.0 ; wsp. after the step: 25.0
;
begin mann ;
create_turb_parameters 29.4 1.0 3.9 0 1.0 ; L, alfaeps, gamma, seed, highfrq compensation
filename_u ./turb/noneu.bin ;
filename_v ./turb/nonev.bin ;
filename_w ./turb/nonew.bin ;
box_dim_u 8192 0.048828125 ;
box_dim_v 32 7.5;
box_dim_w 32 7.5;
std_scaling 1.0 0.7 0.5 ;
end mann ;
;
begin tower_shadow_potential_2;
tower_mbdy_link tower;
nsec 2;
radius 0.0 4.15 ;
radius 123.6 2.75 ; (radius)
end tower_shadow_potential_2;
end wind;
;
begin aerodrag ;
begin aerodrag_element ;
mbdy_name tower;
aerodrag_sections uniform 10 ;
nsec 2 ;
sec 0.0 0.6 8.3 ; tower bottom
sec 123.6 0.6 5.5 ; tower top (diameter)
end aerodrag_element;
;
begin aerodrag_element ; Nacelle drag side
mbdy_name shaft;
aerodrag_sections uniform 2 ;
nsec 2 ;
sec 0.0 0.8 10.0 ;
sec 7.01 0.8 10.0 ;
end aerodrag_element;
end aerodrag;
;
begin aero ;
nblades 3;
hub_vec shaft -3 ; rotor rotation vector (normally shaft composant directed from pressure to sustion side)
link 1 mbdy_c2_def blade1;
link 2 mbdy_c2_def blade2;
link 3 mbdy_c2_def blade3;
ae_filename ./data/AVATAR_10MW_RWT_ae.dat ;
pc_filename ./data/AVATAR_10MW_RWT_pc_hama_v1.dat ;
induction_method 1 ; 0=none, 1=normal
aerocalc_method 1 ; 0=ingen aerodynamic, 1=med aerodynamic
aero_distribution ae_file 1 ;
ae_sets 1 1 1;
tiploss_method 1 ; 0=none, 1=prandtl
dynstall_method 2 ; 0=none, 1=stig øye method,2=mhh method
;
; ; --- Flaps --- ;
; begin dynstall_ateflap ;
; Ais 0.165 0.335 0.0 ;
; Bis 0.0455 0.30 0.30 ;
; flap 59.5925 85.5023 ./data/Flap_dturwt1_Thk24.ds ; Flap Sec: 1
; end dynstall_ateflap;
end aero ;
;-------------------------------------------------------------------------------------------------
begin dll;
;
begin type2_dll;
name risoe_controller ;
filename ./control/risoe_controller.dll ;
dll_subroutine_init init_regulation ;
dll_subroutine_update update_regulation ;
arraysizes_init 52 1 ;
arraysizes_update 12 100 ;
begin init ;
; Overall parameters
constant 1 10000.0 ; Rated power [kW]
constant 2 0.628 ; Minimum rotor speed [rad/s]
constant 3 1.005 ; Rated rotor speed [rad/s]
constant 4 15.6E+06 ; Maximum allowable generator torque [Nm]
constant 5 100.0 ; Minimum pitch angle, theta_min [deg],
; if |theta_min|>90, then a table of <wsp,theta_min> is read ;
; from a file named 'wpdata.n', where n=int(theta_min)
constant 6 90.0 ; Maximum pitch angle [deg]
constant 7 10.0 ; Maximum pitch velocity operation [deg/s]
constant 8 0.4 ; Frequency of generator speed filter [Hz]
constant 9 0.7 ; Damping ratio of speed filter [-]
constant 10 1.64 ; Frequency of free-free DT torsion mode [Hz], if zero no notch filter used
; Partial load control parameters
constant 11 0.9648030e+07 ; Optimal Cp tracking K factor [Nm/(rad/s)^2], ;
; Qg=K*Omega^2, K=eta*0.5*rho*A*Cp_opt*R^3/lambda_opt^3
constant 12 1.047610E+08 ; Proportional gain of torque controller [Nm/(rad/s)]
constant 13 0.153367E+08 ; Integral gain of torque controller [Nm/rad]
constant 14 0.0 ; Differential gain of torque controller [Nm/(rad/s^2)]
; Full load control parameters
constant 15 1 ; Generator control switch [1=constant power, 2=constant torque]
constant 16 0.762489 ; Proportional gain of pitch controller [rad/(rad/s)]
constant 17 0.224086 ; Integral gain of pitch controller [rad/rad]
constant 18 0.0 ; Differential gain of pitch controller [rad/(rad/s^2)]
constant 19 0.4e-9 ; Proportional power error gain [rad/W]
constant 20 0.4e-9 ; Integral power error gain [rad/(Ws)]
constant 21 10.6824 ; Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg]
constant 22 601.25499 ; Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] &
; (if zero, KK1 = pitch angle at double gain)
constant 23 1.3 ; Relative speed for double nonlinear gain [-]
; Cut-in simulation parameters
constant 24 -1 ; Cut-in time [s]
constant 25 1.0 ; Time delay for soft start of torque [1/1P]
; Cut-out simulation parameters
constant 26 -1 ; Cut-out time [s]
constant 27 5.0 ; Time constant for linear torque cut-out [s]
constant 28 1 ; Stop type [1=normal, 2=emergency]
constant 29 1.0 ; Time delay for pitch stop after shut-down signal [s]
constant 30 3 ; Maximum pitch velocity during initial period of stop [deg/s]
constant 31 3.0 ; Time period of initial pitch stop phase [s] (maintains pitch speed specified in constant 30)
constant 32 4 ; Maximum pitch velocity during final phase of stop [deg/s]
; Expert parameters (keep default values unless otherwise given)
constant 33 2.0 ; Lower angle above lowest minimum pitch angle for switch [deg]
constant 34 2.0 ; Upper angle above lowest minimum pitch angle for switch [deg], if equal then hard switch
constant 35 95.0 ; Ratio between filtered speed and reference speed for fully open torque limits [%]
constant 36 2.0 ; Time constant of 1st order filter on wind speed used for minimum pitch [1/1P]
constant 37 1.0 ; Time constant of 1st order filter on pitch angle used for gain scheduling [1/1P]
; Drivetrain damper
constant 38 0.0 ; Proportional gain of active DT damper [Nm/(rad/s)], requires frequency in input 10
; Over speed
constant 39 25.0 ; Overspeed percentage before initiating turbine controller alarm (shut-down) [%]
; Additional non-linear pitch control term (not used when all zero)
constant 40 0.0 ; Err0 [rad/s]
constant 41 0.0 ; ErrDot0 [rad/s^2]
constant 42 0.0 ; PitNonLin1 [rad/s]
; Storm control command
constant 43 28.0 ; Wind speed 'Vstorm' above which derating of rotor speed is used [m/s]
constant 44 28.0 ; Cut-out wind speed (only used for derating of rotor speed in storm) [m/s]
; Safety system parameters
constant 45 25.0 ; Overspeed percentage before initiating safety system alarm (shut-down) [%]
constant 46 1.5 ; Max low-pass filtered tower top acceleration level [m/s^2] - max in DLC 1.3=1.1 m/s^2
; Turbine parameter
constant 47 205.8 ; Nominal rotor diameter [m]
; Parameters for rotor inertia reduction in variable speed region
constant 48 0.0 ; Proportional gain on rotor acceleration in variable speed region [Nm/(rad/s^2)] (not used when zero)
; Parameters for alternative partial load controller with PI regulated TSR tracking
constant 49 0.0 ; Optimal tip speed ratio [-] (only used when K=constant 11 = 0 otherwise Qg=K*Omega^2 is used)
; Parameters for adding aerodynamic drivetrain damping on gain scheduling
constant 50 0.0 ; Proportional gain of aerodynamic DT damping [Nm/(rad/s)]
constant 51 0.0 ; Coefficient of linear term in aerodynamic DT damping scheduling, KK1 [deg]
constant 52 0.0 ; Coefficient of quadratic term in aerodynamic DT damping scheduling, KK2 [deg^2]
end init ;
;
begin output ;
general time ; [s]
constraint bearing1 shaft_rot 1 only 2 ; Drivetrain speed [rad/s]
constraint bearing2 pitch1 1 only 1; [rad]
constraint bearing2 pitch2 1 only 1; [rad]
constraint bearing2 pitch3 1 only 1; [rad]
wind free_wind 1 0.0 0.0 -127 ; Global coordinates at hub height
dll inpvec 2 2 ; Elec. power from generator servo .dll
dll inpvec 2 8 ; Grid state flag from generator servo .dll
mbdy state acc tower 10 1.0 global only 1 ; Tower top x-acceleration [m/s^2]
mbdy state acc tower 10 1.0 global only 2 ; Tower top y-acceleration [m/s^2]
end output;
end type2_dll;
;
begin type2_dll;
name generator_servo ;
filename ./control/generator_servo.dll ;
dll_subroutine_init init_generator_servo ;
dll_subroutine_update update_generator_servo ;
arraysizes_init 7 1 ;
arraysizes_update 4 8 ;
begin init ;
constant 1 20.0 ; Frequency of 2nd order servo model of generator-converter system [Hz]
constant 2 0.9 ; Damping ratio 2nd order servo model of generator-converter system [-]
constant 3 15.6E+06 ; Maximum allowable LSS torque (pull-out torque) [Nm]
constant 4 0.94 ; Generator efficiency [-]
constant 5 1.0 ; Gearratio [-]
constant 6 0.0 ; Time for half value in softstart of torque [s]
constant 7 5000 ; Time for grid loss [s]
end init ;
;
begin output;
general time ; Time [s]
dll inpvec 1 1 ; Electrical torque reference [Nm]
constraint bearing1 shaft_rot 1 only 2; Generator LSS speed [rad/s]
mbdy momentvec shaft 1 1 shaft only 3 ; Shaft moment [kNm] (Qshaft)
end output;
;
begin actions;
mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm]
end actions;
end type2_dll;
;
begin type2_dll;
name mech_brake ;
filename ./control/mech_brake.dll ;
dll_subroutine_init init_mech_brake ;
dll_subroutine_update update_mech_brake ;
arraysizes_init 7 1 ;
arraysizes_update 4 6 ;
begin init ;
constant 1 5225.35 ; Fully deployed maximum brake torque [Nm] (0.6*max torque)
constant 2 100.0 ; Parameter alpha used in Q = tanh(omega*alpha), typically 1e2/Omega_nom
constant 3 0.5 ; Delay time for before brake starts to deploy [s]
constant 4 0.74 ; Time for brake to become fully deployed [s]
end init ;
;
begin output;
general time ; Time [s]
constraint bearing1 shaft_rot 1 only 2 ; Generator LSS speed [rad/s]
dll inpvec 1 25 ; Command to deploy mechanical disc brake [0,1]
end output;
;
begin actions;
mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm]
end actions;
end type2_dll;
;
begin type2_dll;
name servo_with_limits ;
filename ./control/servo_with_limits.dll ;
dll_subroutine_init init_servo_with_limits ;
dll_subroutine_update update_servo_with_limits ;
arraysizes_init 10 1 ;
arraysizes_update 5 9 ;
begin init ;
constant 1 3 ; Number of blades [-]
constant 2 1.0 ; Frequency of 2nd order servo model of pitch system [Hz]
constant 3 0.7 ; Damping ratio 2nd order servo model of pitch system [-]
constant 4 10.0 ; Max. pitch speed [deg/s]
constant 5 15.0 ; Max. pitch acceleration [deg/s^2]
constant 6 -5.0 ; Min. pitch angle [deg]
constant 7 90.0 ; Max. pitch angle [deg]
constant 8 5000 ; Time for pitch runaway [s]
constant 9 -1 ; Time for stuck blade 1 [s]
constant 10 0 ; Angle of stuck blade 1 [deg]
end init ;
begin output;
general time ; Time [s]
dll inpvec 1 2 ; Pitch1 demand angle [rad]
dll inpvec 1 3 ; Pitch2 demand angle [rad]
dll inpvec 1 4 ; Pitch3 demand angle [rad]
dll inpvec 1 26 ; Flag for emergency pitch stop [0=off/1=on]
end output;
;
begin actions;
constraint bearing2 angle pitch1 ; Angle pitch1 bearing [rad]
constraint bearing2 angle pitch2 ; Angle pitch2 bearing [rad]
constraint bearing2 angle pitch3 ; Angle pitch3 bearing [rad]
end actions;
end type2_dll;
;
; --- DLL for tower-blade tip distance -- ;
begin type2_dll;
name disttowtip ;
filename ./control/towclearsens.dll ;
dll_subroutine_init initialize ;
dll_subroutine_update update ;
arraysizes_init 1 1 ;
arraysizes_update 12 4 ;
begin init ;
constant 1 3.87 ; Tower radius close to downward blade tip [m]
end init ;
begin output;
mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m
mbdy state pos blade1 26 1.0 global ; [4,5,6]
mbdy state pos blade2 26 1.0 global ; [7,8,9]
mbdy state pos blade3 26 1.0 global ; [10,11,12]
end output;
end type2_dll;
end dll;
;
;----------------------------------------------------------------------------------------------------------------------------------------------------------------
;
begin output;
filename ./res/dlc01_demos/dlc01_steady_wsp10_noturb ;
time 20 40 ;
data_format hawc_binary;
buffer 1 ;
;
general time;
constraint bearing1 shaft_rot 2; angle and angle velocity
constraint bearing2 pitch1 5; angle and angle velocity
constraint bearing2 pitch2 5; angle and angle velocity
constraint bearing2 pitch3 5; angle and angle velocity
aero omega ;
aero torque;
aero power;
aero thrust;
wind free_wind 1 0.0 0.0 -127; local wind at fixed position: coo (1=global,2=non-rotation rotor coo.), pos x, pos y, pos z
; non rotating coordinates shaft tip: equivalent to stationary hub in BLADED
mbdy momentvec shaft 3 2 shaft_nonrotate # non rotating shaft tip ;
mbdy forcevec shaft 3 2 shaft_nonrotate # non rotating shaft tip ;
; Moments:
mbdy momentvec tower 1 1 tower # tower base ;
mbdy momentvec tower 19 2 tower # tower yaw bearing ;
mbdy momentvec shaft 4 1 shaft # main bearing ;
mbdy momentvec blade1 3 2 blade1 # blade 1 root ;
mbdy momentvec blade2 3 2 blade2 # blade 2 root ;
mbdy momentvec blade3 3 2 blade3 # blade 3 root ;
; blade 2,3 root section loads
mbdy momentvec blade2 3 2 local # blade 2 section root;
mbdy momentvec blade3 3 2 local # blade 3 section root;
; blade 1 sectional loads in local coordinates
mbdy momentvec blade1 2 2 local # blade 1 section;
mbdy momentvec blade1 3 2 local # blade 1 section root;
mbdy momentvec blade1 4 2 local # blade 1 section;
mbdy momentvec blade1 5 2 local # blade 1 section;
mbdy momentvec blade1 6 2 local # blade 1 section;
mbdy momentvec blade1 7 2 local # blade 1 section;
mbdy momentvec blade1 8 2 local # blade 1 section;
mbdy momentvec blade1 9 2 local # blade 1 section;
mbdy momentvec blade1 10 2 local # blade 1 section;
mbdy momentvec blade1 11 2 local # blade 1 section;
mbdy momentvec blade1 12 2 local # blade 1 section;
mbdy momentvec blade1 13 2 local # blade 1 section;
mbdy momentvec blade1 14 2 local # blade 1 section;
mbdy momentvec blade1 15 2 local # blade 1 section;
mbdy momentvec blade1 16 2 local # blade 1 section;
mbdy momentvec blade1 17 2 local # blade 1 section;
mbdy momentvec blade1 18 2 local # blade 1 section;
mbdy momentvec blade1 19 2 local # blade 1 section;
mbdy momentvec blade1 20 2 local # blade 1 section;
mbdy momentvec blade1 21 2 local # blade 1 section;
mbdy momentvec blade1 22 2 local # blade 1 section;
mbdy momentvec blade1 23 2 local # blade 1 section;
mbdy momentvec blade1 24 2 local # blade 1 section;
mbdy momentvec blade1 25 2 local # blade 1 section;
mbdy momentvec blade1 26 2 local # blade 1 section;
; blade root out and in of plane forces
mbdy momentvec blade1 3 2 hub1 # blade 1 root ;
mbdy momentvec blade2 3 2 hub2 # blade 2 root ;
mbdy momentvec blade3 3 2 hub3 # blade 3 root ;
; mbdy momentvec blade1 14 1 local # blade 1 50% local e coo ;
; mbdy momentvec blade2 14 1 local # blade 2 50% local e coo ;
; mbdy momentvec blade3 14 1 local # blade 3 50% local e coo ;
; Displacements and accellerations
mbdy state pos tower 19 1.0 global only 1 # Tower top FA displ;
mbdy state pos tower 19 1.0 global only 2 # Tower top SS displ;
mbdy state acc tower 19 1.0 global only 1 # Tower top FA acc;
mbdy state acc tower 19 1.0 global only 2 # Tower top SS acc;
;
mbdy state pos blade1 26 1.0 global # gl blade 1 tip pos ;
mbdy state pos blade2 26 1.0 global # gl blade 2 tip pos ;
mbdy state pos blade3 26 1.0 global # gl blade 3 tip pos ;
mbdy state pos blade1 26 1.0 blade1 # blade 1 tip pos ;
mbdy state pos blade2 26 1.0 blade2 # blade 2 tip pos ;
mbdy state pos blade3 26 1.0 blade3 # blade 3 tip pos ;
;
mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m
;
; elastic twist (torsional deformation) along the blade
aero tors_ang 1 45.56;
aero tors_ang 1 59.19;
aero tors_ang 1 70.87;
aero tors_ang 1 80.61;
aero tors_ang 1 84.50;
aero tors_ang 1 88.40;
aero tors_ang 1 92.29;
aero tors_ang 1 96.19;
aero tors_ang 1 98.13;
aero tors_ang 1 100.08; tip
;
; - Monitor Aerodynamics - ;
aero windspeed 3 1 1 72.5;
aero alfa 1 72.5;
aero alfa 2 72.5;
aero alfa 3 72.5;
aero cl 1 72.5;
aero cl 2 72.5;
aero cl 3 72.5;
aero cd 1 72.5;
aero cd 2 72.5;
aero cd 3 72.5;
; - Main Controller -
; Output to controller
; dll outvec 1 1 # time;
; dll outvec 1 2 # slow speed shaft rad/s;
; dll outvec 1 3 # pitch angle 1;
; dll outvec 1 4 # pitch angle 2;
; dll outvec 1 5 # pitch angle 3;
; dll outvec 1 6 # WSP_x_global;
; dll outvec 1 7 # WSP_y_global;
; dll outvec 1 8 # WSP_z_global;
; dll outvec 1 9 # Elec. pwr ;
; dll outvec 1 10 # Grid flag ;
; Input from controller
dll inpvec 1 1 # Generator torque reference [Nm] ;
dll inpvec 1 2 # Pitch angle reference of blade 1 [rad] ;
dll inpvec 1 3 # Pitch angle reference of blade 2 [rad] ;
dll inpvec 1 4 # Pitch angle reference of blade 3 [rad] ;
; dll inpvec 1 5 # Power reference [W] ;
; dll inpvec 1 6 # Filtered wind speed [m/s] ;
; dll inpvec 1 7 # Filtered rotor speed [rad/s];
; dll inpvec 1 8 # Filtered rotor speed error for torque [rad/s];
; dll inpvec 1 9 # Bandpass filtered rotor speed [rad/s];
; dll inpvec 1 10 # Proportional term of torque contr. [Nm] ;
; dll inpvec 1 11 # Integral term of torque controller [Nm] ;
; dll inpvec 1 12 # Minimum limit of torque [Nm] ;
; dll inpvec 1 13 # Maximum limit of torque [Nm] ;
dll inpvec 1 14 # Torque limit switch based on pitch [-] ;
; dll inpvec 1 15 # Filtered rotor speed error for pitch [rad/s];
; dll inpvec 1 16 # Power error for pitch [W] ;
; dll inpvec 1 17 # Proportional term of pitch controller [rad] ;
; dll inpvec 1 18 # Integral term of pitch controller [rad] ;
; dll inpvec 1 19 # Minimum limit of pitch [rad] ;
; dll inpvec 1 20 # Maximum limit of pitch [rad] ;
dll inpvec 1 21 # Torque reference from DT dammper [Nm] ;
dll inpvec 1 22 # Status signal [-] ;
; dll inpvec 1 23 # Total added pitch rate [rad/s] ;
dll inpvec 1 24 # Filtered Mean pitch for gain sch [rad] ;
dll inpvec 1 25 # Flag for mechnical brake [0=off/1=on] ;
dll inpvec 1 26 # Flag for emergency pitch stop [0=off/1=on] ;
dll inpvec 1 27 # LP filtered acceleration level [m/s^2] ;
; ; Output to generator model
; dll outvec 2 1 # time ;
; dll outvec 2 2 # Electrical torque reference [Nm] ;
; dll outvec 2 3 # omega LSS ;
; Input from generator model
dll inpvec 2 1 # Mgen LSS [Nm];
dll inpvec 2 2 # Pelec W ;
dll inpvec 2 3 # Mframe ;
dll inpvec 2 4 # Mgen HSS ;
dll inpvec 2 5 # Generator Pmech kW ;
dll inpvec 2 6 # Filtered Gen speed ;
dll inpvec 2 7 # Resulting Eff ;
dll inpvec 2 8 # Grid flag ;
; Output to mechanical brake
dll inpvec 3 1 # Brake torque [Nm] ;
; ; Input from mechanical brake
; dll outvec 3 1 # Time [s] ;
; dll outvec 3 2 # Generator LSS speed [rad/s] ;
; dll outvec 3 3 # Deploy brake ;
; ; Output to pitch servo
; dll outvec 4 1 # time;
; dll outvec 4 2 # pitchref 1;
; dll outvec 4 3 # pitchref 2;
; dll outvec 4 4 # pitchref 3;
; dll outvec 4 5 # Emerg. stop;
; Input from pitch servo
dll inpvec 4 1 # pitch 1;
dll inpvec 4 2 # pitch 2;
dll inpvec 4 3 # pitch 3;
; Check tower clearence
dll inpvec 5 1 # Bltip tow min d [m];
; general constant 1.0 ; constant 1.0 - to mesure activity of flap in terms of displacement
; - Check on flap control:
; ; - From flap controller: -
; dll type2_dll cyclic_flap_controller inpvec 1 # Ref flap signal bl 1 [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 2 # Ref flap signal bl 2 [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 3 # Ref flap signal bl 3 [deg] ;
; ; - Mbc values
; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ;
; ; - Check Gains - ;
; dll type2_dll cyclic_flap_controller inpvec 10 # lead angle [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 11 # scaling on rat pow [-] ;
; dll type2_dll cyclic_flap_controller inpvec 12 # actual kp [deg/kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 13 # actual ki [deg/kNms] ;
; dll type2_dll cyclic_flap_controller inpvec 14 # actual kd [deg s/kNm] ;
; ; - Actual deflections -
; aero beta 1 1 ;
; aero beta 2 1 ;
; aero beta 3 1 ;
; ; - Mbc values
; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ;
end output;
;
exit;
;this version was at some point based on: Avatar_10MW_RWT version 1, 06-08-14, Anyd
begin simulation;
time_stop 40;
solvertype 1 ; (newmark)
on_no_convergence continue ;
; convergence_limits 1E3 1.0 1E-7 ;
logfile ./logfiles/dlc01_demos/dlc01_steady_wsp8_noturb.log ;
begin newmark;
deltat 0.02;
end newmark;
end simulation;
;
;----------------------------------------------------------------------------------------------------------------------------------------------------------------
begin new_htc_structure;
;--------------------------------------------------------------------------------------------------
; beam_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp8_noturb/dlc01_steady_wsp8_noturb_beam.dat;
; body_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp8_noturb/dlc01_steady_wsp8_noturb_body.dat;
; struct_inertia_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp8_noturb/dlc01_steady_wsp8_noturb_struct.dat;
; body_eigenanalysis_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp8_noturb/dlc01_steady_wsp8_noturb_body_eigen.dat;
; structure_eigenanalysis_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp8_noturb/dlc01_steady_wsp8_noturb_strc_eigen.dat;
;---------------------------------------------------------------------------------------------------
begin main_body; tower 123.6m
name tower ;
type timoschenko ;
nbodies 3 ;
node_distribution c2_def ;
damping_posdef 0 0 0 4.7E-03 4.7E-03 4.3E-04 ; tuned by Anyd 12/8/14
begin timoschenko_input;
filename ./data/AVATAR_10MW_RWT_tower_st.dat;
set 1 1 ;
end timoschenko_input;
begin c2_def; Definition of centerline (main_body coordinates)
nsec 20;
sec 1 0 0 0.000 0 ; x,y,z,twist
sec 2 0 0 -12.293 0 ;
sec 3 0 0 -12.294 0 ;
sec 4 0 0 -24.585 0 ;
sec 5 0 0 -24.586 0 ;
sec 6 0 0 -36.878 0 ;
sec 7 0 0 -36.879 0 ;
sec 8 0 0 -49.171 0 ;
sec 9 0 0 -49.172 0 ;
sec 10 0 0 -61.463 0 ;
sec 11 0 0 -61.464 0 ;
sec 12 0 0 -73.756 0 ;
sec 13 0 0 -73.757 0 ;
sec 14 0 0 -86.049 0 ;
sec 15 0 0 -86.050 0 ;
sec 16 0 0 -98.341 0 ;
sec 17 0 0 -98.342 0 ;
sec 18 0 0 -110.634 0 ;
sec 19 0 0 -110.635 0 ;
sec 20 0 0 -123.600 0 ;
end c2_def ;
end main_body;
;
begin main_body;
name towertop ;
type timoschenko ;
nbodies 1 ;
node_distribution c2_def ;
damping_posdef 7.50E-03 7.40E-03 7.00E-03 7.00E-03 7.00E-03 7.00E-03 ; "changed by Anyd
concentrated_mass 2.0 0.0 2.6870E+00 3.0061E-01 4.4604E+05 4.1060E+06 4.1060E+05 4.1060E+06 ; Nacel
begin timoschenko_input;
filename ./data/DTU_10MW_RWT_Towertop_st.dat ;
set 1 2 ;
end timoschenko_input;
begin c2_def; Definition of centerline (main_body coordinates)
nsec 2;
sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist
sec 2 0.0 0.0 -2.75 0.0 ;
end c2_def ;
end main_body;
;
begin main_body;
name shaft ;
type timoschenko ;
nbodies 1 ;
node_distribution c2_def ;
; damping_posdef 8.00E-3 8.00E-03 8.00E-02 4.65E-04 4.65E-04 2.38E-02 ; "tuned by Anyd 22/2/13
damping_posdef 0.0 0.0 3.983E-03 4.65E-04 4.65E-04 3.983E-03 ; "tuned by Anyd 23/5/13 to 31.45 l
concentrated_mass 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.751E+06 ; generator equivalent slow shaft "re_tu
concentrated_mass 5.0 0.0 0.0 0.0 1.0552E+05 0.0 0.0 3.257E+05 ; hub mass and inertia; "re_tuned
begin timoschenko_input;
filename ./data/DTU_10MW_RWT_Shaft_st.dat ;
set 1 1 ;
end timoschenko_input;
begin c2_def; Definition of centerline (main_body coordinates)
nsec 5;
sec 1 0.0 0.0 0.0 0.0 ; Tower top x,y,z,twist
sec 2 0.0 0.0 1.5 0.0 ;
sec 3 0.0 0.0 3.0 0.0 ;
sec 4 0.0 0.0 4.4 0.0 ; Main bearing
sec 5 0.0 0.0 7.1 0.0 ; Rotor centre
end c2_def ;
end main_body;
;
begin main_body;
name shaft_nonrotate ;
type timoschenko ;
nbodies 1 ;
node_distribution c2_def ;
damping_posdef 0.00E+00 0.00E+00 0.00E+00 1.0E-01 1.0E-01 1.0E-01 ;
begin timoschenko_input;
filename ./data/DTU_10MW_RWT_Shaft_st.dat ;
set 1 3; dummy light and stiff structure
end timoschenko_input;
begin c2_def;
nsec 2;
sec 1 0.0 0.0 0.0 0.0 ;
sec 2 0.0 0.0 0.1 0.0 ;
end c2_def;
end main_body;
;
begin main_body;
name hub1 ;
type timoschenko ;
nbodies 1 ;
node_distribution c2_def ;
damping_posdef 2.00E-05 2.00E-05 2.00E-04 3.00E-06 3.00E-06 2.00E-05;
begin timoschenko_input;
filename ./data/DTU_10MW_RWT_Hub_st.dat ;
set 1 2 ;
end timoschenko_input;
begin c2_def; Definition of centerline (main_body coordinates)
nsec 2;
sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist
sec 2 0.0 0.0 2.8 0.0 ;
end c2_def ;
end main_body;
;
begin main_body;
name hub2 ;
copy_main_body hub1;
end main_body;
;
begin main_body;
name hub3 ;
copy_main_body hub1 ;
end main_body;
;
begin main_body;
name blade1 ;
type timoschenko ;
nbodies 10 ;
node_distribution c2_def;
; damping_posdef 0.0 0.0 0.0 2.5e-3 8.9e-4 3.2e-4 ; "Tuned by Anyd"
; damping_posdef 0.0 0.0 0.0 1.5e-3 2.45e-3 3.2e-4 ; " 3% damping tuned by Anyd 20/02/12 unable to
; damping_posdef 0.0 0.0 0.0 2.1e-3 1.9e-3 1.3e-4 ; " 3% damping tuned by Anyd 15/08/14 rev2
damping_posdef 0.0 0.0 0.0 1.68e-3 2.25e-3 1.0e-4 ; " 3% damping tuned by Anyd 16/12/14
begin timoschenko_input ;
filename ./data/AVATAR_10MW_RWT_Blade_st.dat ;
set 1 9 ;
end timoschenko_input;
begin c2_def;
nsec 27 ;
sec 1 -0.001 -0.001 0.000 -17.280 ;
sec 2 -0.005 -0.001 2.220 -17.280 ;
sec 3 -0.006 -0.000 4.440 -17.280 ;
sec 4 -0.086 0.022 6.660 -17.280 ;
sec 5 -0.231 0.069 11.039 -17.273 ;
sec 6 -0.447 0.121 15.418 -16.441 ;
sec 7 -0.690 0.161 19.797 -14.613 ;
sec 8 -0.812 0.162 24.176 -12.578 ;
sec 9 -0.891 0.158 28.555 -10.588 ;
sec 10 -0.865 0.124 32.934 -9.070 ;
sec 11 -0.833 0.112 37.313 -8.224 ;
sec 12 -0.797 0.102 41.692 -7.688 ;
sec 13 -0.760 0.093 46.071 -7.205 ;
sec 14 -0.721 0.083 50.450 -6.749 ;
sec 15 -0.683 0.075 54.829 -6.288 ;
sec 16 -0.644 0.066 59.208 -5.838 ;
sec 17 -0.606 0.058 63.587 -5.401 ;
sec 18 -0.567 0.050 67.966 -4.982 ;
sec 19 -0.529 0.044 72.345 -4.640 ;
sec 20 -0.492 0.037 76.724 -4.380 ;
sec 21 -0.456 0.032 81.103 -4.144 ;
sec 22 -0.422 0.026 85.482 -3.914 ;
sec 23 -0.392 0.021 89.861 -3.685 ;
sec 24 -0.346 0.014 94.240 -3.460 ;
sec 25 -0.307 0.010 96.190 -3.350 ;
sec 26 -0.249 0.005 98.130 -3.250 ;
sec 27 -0.089 0.006 100.080 -3.140 ;
end c2_def ;
end main_body;
;
begin main_body;
name blade2 ;
copy_main_body blade1;
end main_body;
;
begin main_body;
name blade3 ;
copy_main_body blade1 ;
end main_body;
;-------------------------------------------------------------------------------------------------------------------------------
;
begin orientation;
begin base;
body tower;
inipos 0.0 0.0 0.0 ; initial position of node 1
body_eulerang 0.0 0.0 0.0;
end base;
;
begin relative;
body1 tower last;
body2 towertop 1;
body2_eulerang 0.0 0.0 0.0;
end relative;
;
begin relative;
body1 towertop last;
body2 shaft 1;
body2_eulerang 90.0 0.0 0.0;
body2_eulerang 5.0 0.0 0.0; 5 deg tilt angle
body2_eulerang 0.0 0.0 0;
mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.5 ; mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.5;
end relative;
;
begin relative; dummy non rotating hub coordinates
body1 towertop last;
body2 shaft_nonrotate 1;
body2_eulerang 90.0 0.0 0.0;
body2_eulerang 5.0 0.0 0.0; same 5 deg tilt angle as real shaft
end relative;
;
begin relative;
body1 shaft last;
body2 hub1 1;
body2_eulerang -90.0 0.0 0.0;
body2_eulerang 0.0 180.0 0.0;
body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle
end relative;
;
begin relative;
body1 shaft last;
body2 hub2 1;
body2_eulerang -90.0 0.0 0.0;
body2_eulerang 0.0 60.0 0.0;
body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle
end relative;
;
begin relative;
body1 shaft last;
body2 hub3 1;
body2_eulerang -90.0 0.0 0.0;
body2_eulerang 0.0 -60.0 0.0;
body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle
end relative;
;
begin relative;
body1 hub1 last;
body2 blade1 1;
body2_eulerang 0.0 0.0 0;
end relative;
;
begin relative;
body1 hub2 last;
body2 blade2 1;
body2_eulerang 0.0 0.0 0.0;
end relative;
;
begin relative;
body1 hub3 last;
body2 blade3 1;
body2_eulerang 0.0 0.0 0.0;
end relative;
;
end orientation;
;-------------------------------------------------------------------------------------------------------------------------------
begin constraint;
;
begin fix0; fixed to ground in translation and rotation of node 1
body tower;
end fix0;
;
begin fix1;
body1 tower last ;
body2 towertop 1;
end fix1;
;
begin bearing1; free bearing
name shaft_rot;
body1 towertop last;
body2 shaft 1;
bearing_vector 2 0.0 0.0 -1.0; x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present
end bearing1;
;
; begin bearing3; free bearing
; name shaft_rot;
; body1 towertop last;
; body2 shaft 1;
; bearing_vector 2 0.0 0.0 -1.0; x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present
; omegas 0.0 ;
; end bearing3;
;
begin fix1;
body1 tower last ;
body2 shaft_nonrotate 1;
end fix1;
;
begin fix1;
body1 shaft last ;
body2 hub1 1;
end fix1;
;
begin fix1;
body1 shaft last ;
body2 hub2 1;
end fix1;
;
begin fix1;
body1 shaft last ;
body2 hub3 1;
end fix1;
;
begin bearing2;
name pitch1;
body1 hub1 last;
body2 blade1 1;
bearing_vector 2 0.0 0.0 -1.0;
end bearing2;
;
begin bearing2;
name pitch2;
body1 hub2 last;
body2 blade2 1;
bearing_vector 2 0.0 0.0 -1.0;
end bearing2;
;
begin bearing2;
name pitch3;
body1 hub3 last;
body2 blade3 1;
bearing_vector 2 0.0 0.0 -1.0;
end bearing2;
end constraint;
;
end new_htc_structure;
;----------------------------------------------------------------------------------------------------------------------------------------------------------------
begin wind ;
density 1.225 ;
wsp 8 ;
tint 0.232 ;
horizontal_input 1 ;
windfield_rotations 0 8.0 0.0 ; yaw, tilt (positive=upflow=wind coming from below), rotation
center_pos0 0.0 0.0 -127 ; hub heigth
shear_format 3 0 ;
turb_format 0 ; 0=none, 1=mann,2=flex
tower_shadow_method 3 ; 0=none, 1=potential flow, 2=jet
scale_time_start 20 ;
wind_ramp_factor 0.0 20 1.0 1.0 ;
; iec_gust ;
;
; wind_ramp_abs 400.0 401.0 0.0 1.0 ; wsp. after the step: 5.0
; wind_ramp_abs 501.0 502.0 0.0 1.0 ; wsp. after the step: 6.0
; wind_ramp_abs 602.0 603.0 0.0 1.0 ; wsp. after the step: 7.0
; wind_ramp_abs 703.0 704.0 0.0 1.0 ; wsp. after the step: 8.0
; wind_ramp_abs 804.0 805.0 0.0 1.0 ; wsp. after the step: 9.0
; wind_ramp_abs 905.0 906.0 0.0 1.0 ; wsp. after the step: 10.0
; wind_ramp_abs 1006.0 1007.0 0.0 1.0 ; wsp. after the step: 11.0
; wind_ramp_abs 1107.0 1108.0 0.0 1.0 ; wsp. after the step: 12.0
; wind_ramp_abs 1208.0 1209.0 0.0 1.0 ; wsp. after the step: 13.0
; wind_ramp_abs 1309.0 1310.0 0.0 1.0 ; wsp. after the step: 14.0
; wind_ramp_abs 1410.0 1411.0 0.0 1.0 ; wsp. after the step: 15.0
; wind_ramp_abs 1511.0 1512.0 0.0 1.0 ; wsp. after the step: 16.0
; wind_ramp_abs 1612.0 1613.0 0.0 1.0 ; wsp. after the step: 17.0
; wind_ramp_abs 1713.0 1714.0 0.0 1.0 ; wsp. after the step: 18.0
; wind_ramp_abs 1814.0 1815.0 0.0 1.0 ; wsp. after the step: 19.0
; wind_ramp_abs 1915.0 1916.0 0.0 1.0 ; wsp. after the step: 20.0
; wind_ramp_abs 2016.0 2017.0 0.0 1.0 ; wsp. after the step: 21.0
; wind_ramp_abs 2117.0 2118.0 0.0 1.0 ; wsp. after the step: 22.0
; wind_ramp_abs 2218.0 2219.0 0.0 1.0 ; wsp. after the step: 23.0
; wind_ramp_abs 2319.0 2320.0 0.0 1.0 ; wsp. after the step: 24.0
; wind_ramp_abs 2420.0 2421.0 0.0 1.0 ; wsp. after the step: 25.0
;
; wind_ramp_abs 400.0 2200.0 0.0 21.0 ; wsp. after the step: 25.0
; wind_ramp_abs 2400.0 4200.0 0.0 -21.0 ; wsp. after the step: 25.0
;
begin mann ;
create_turb_parameters 29.4 1.0 3.9 0 1.0 ; L, alfaeps, gamma, seed, highfrq compensation
filename_u ./turb/noneu.bin ;
filename_v ./turb/nonev.bin ;
filename_w ./turb/nonew.bin ;
box_dim_u 8192 0.0390625 ;
box_dim_v 32 7.5;
box_dim_w 32 7.5;
std_scaling 1.0 0.7 0.5 ;
end mann ;
;
begin tower_shadow_potential_2;
tower_mbdy_link tower;
nsec 2;
radius 0.0 4.15 ;
radius 123.6 2.75 ; (radius)
end tower_shadow_potential_2;
end wind;
;
begin aerodrag ;
begin aerodrag_element ;
mbdy_name tower;
aerodrag_sections uniform 10 ;
nsec 2 ;
sec 0.0 0.6 8.3 ; tower bottom
sec 123.6 0.6 5.5 ; tower top (diameter)
end aerodrag_element;
;
begin aerodrag_element ; Nacelle drag side
mbdy_name shaft;
aerodrag_sections uniform 2 ;
nsec 2 ;
sec 0.0 0.8 10.0 ;
sec 7.01 0.8 10.0 ;
end aerodrag_element;
end aerodrag;
;
begin aero ;
nblades 3;
hub_vec shaft -3 ; rotor rotation vector (normally shaft composant directed from pressure to sustion side)
link 1 mbdy_c2_def blade1;
link 2 mbdy_c2_def blade2;
link 3 mbdy_c2_def blade3;
ae_filename ./data/AVATAR_10MW_RWT_ae.dat ;
pc_filename ./data/AVATAR_10MW_RWT_pc_hama_v1.dat ;
induction_method 1 ; 0=none, 1=normal
aerocalc_method 1 ; 0=ingen aerodynamic, 1=med aerodynamic
aero_distribution ae_file 1 ;
ae_sets 1 1 1;
tiploss_method 1 ; 0=none, 1=prandtl
dynstall_method 2 ; 0=none, 1=stig øye method,2=mhh method
;
; ; --- Flaps --- ;
; begin dynstall_ateflap ;
; Ais 0.165 0.335 0.0 ;
; Bis 0.0455 0.30 0.30 ;
; flap 59.5925 85.5023 ./data/Flap_dturwt1_Thk24.ds ; Flap Sec: 1
; end dynstall_ateflap;
end aero ;
;-------------------------------------------------------------------------------------------------
begin dll;
;
begin type2_dll;
name risoe_controller ;
filename ./control/risoe_controller.dll ;
dll_subroutine_init init_regulation ;
dll_subroutine_update update_regulation ;
arraysizes_init 52 1 ;
arraysizes_update 12 100 ;
begin init ;
; Overall parameters
constant 1 10000.0 ; Rated power [kW]
constant 2 0.628 ; Minimum rotor speed [rad/s]
constant 3 1.005 ; Rated rotor speed [rad/s]
constant 4 15.6E+06 ; Maximum allowable generator torque [Nm]
constant 5 100.0 ; Minimum pitch angle, theta_min [deg],
; if |theta_min|>90, then a table of <wsp,theta_min> is read ;
; from a file named 'wpdata.n', where n=int(theta_min)
constant 6 90.0 ; Maximum pitch angle [deg]
constant 7 10.0 ; Maximum pitch velocity operation [deg/s]
constant 8 0.4 ; Frequency of generator speed filter [Hz]
constant 9 0.7 ; Damping ratio of speed filter [-]
constant 10 1.64 ; Frequency of free-free DT torsion mode [Hz], if zero no notch filter used
; Partial load control parameters
constant 11 0.9648030e+07 ; Optimal Cp tracking K factor [Nm/(rad/s)^2], ;
; Qg=K*Omega^2, K=eta*0.5*rho*A*Cp_opt*R^3/lambda_opt^3
constant 12 1.047610E+08 ; Proportional gain of torque controller [Nm/(rad/s)]
constant 13 0.153367E+08 ; Integral gain of torque controller [Nm/rad]
constant 14 0.0 ; Differential gain of torque controller [Nm/(rad/s^2)]
; Full load control parameters
constant 15 1 ; Generator control switch [1=constant power, 2=constant torque]
constant 16 0.762489 ; Proportional gain of pitch controller [rad/(rad/s)]
constant 17 0.224086 ; Integral gain of pitch controller [rad/rad]
constant 18 0.0 ; Differential gain of pitch controller [rad/(rad/s^2)]
constant 19 0.4e-9 ; Proportional power error gain [rad/W]
constant 20 0.4e-9 ; Integral power error gain [rad/(Ws)]
constant 21 10.6824 ; Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg]
constant 22 601.25499 ; Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] &
; (if zero, KK1 = pitch angle at double gain)
constant 23 1.3 ; Relative speed for double nonlinear gain [-]
; Cut-in simulation parameters
constant 24 -1 ; Cut-in time [s]
constant 25 1.0 ; Time delay for soft start of torque [1/1P]
; Cut-out simulation parameters
constant 26 -1 ; Cut-out time [s]
constant 27 5.0 ; Time constant for linear torque cut-out [s]
constant 28 1 ; Stop type [1=normal, 2=emergency]
constant 29 1.0 ; Time delay for pitch stop after shut-down signal [s]
constant 30 3 ; Maximum pitch velocity during initial period of stop [deg/s]
constant 31 3.0 ; Time period of initial pitch stop phase [s] (maintains pitch speed specified in constant 30)
constant 32 4 ; Maximum pitch velocity during final phase of stop [deg/s]
; Expert parameters (keep default values unless otherwise given)
constant 33 2.0 ; Lower angle above lowest minimum pitch angle for switch [deg]
constant 34 2.0 ; Upper angle above lowest minimum pitch angle for switch [deg], if equal then hard switch
constant 35 95.0 ; Ratio between filtered speed and reference speed for fully open torque limits [%]
constant 36 2.0 ; Time constant of 1st order filter on wind speed used for minimum pitch [1/1P]
constant 37 1.0 ; Time constant of 1st order filter on pitch angle used for gain scheduling [1/1P]
; Drivetrain damper
constant 38 0.0 ; Proportional gain of active DT damper [Nm/(rad/s)], requires frequency in input 10
; Over speed
constant 39 25.0 ; Overspeed percentage before initiating turbine controller alarm (shut-down) [%]
; Additional non-linear pitch control term (not used when all zero)
constant 40 0.0 ; Err0 [rad/s]
constant 41 0.0 ; ErrDot0 [rad/s^2]
constant 42 0.0 ; PitNonLin1 [rad/s]
; Storm control command
constant 43 28.0 ; Wind speed 'Vstorm' above which derating of rotor speed is used [m/s]
constant 44 28.0 ; Cut-out wind speed (only used for derating of rotor speed in storm) [m/s]
; Safety system parameters
constant 45 25.0 ; Overspeed percentage before initiating safety system alarm (shut-down) [%]
constant 46 1.5 ; Max low-pass filtered tower top acceleration level [m/s^2] - max in DLC 1.3=1.1 m/s^2
; Turbine parameter
constant 47 205.8 ; Nominal rotor diameter [m]
; Parameters for rotor inertia reduction in variable speed region
constant 48 0.0 ; Proportional gain on rotor acceleration in variable speed region [Nm/(rad/s^2)] (not used when zero)
; Parameters for alternative partial load controller with PI regulated TSR tracking
constant 49 0.0 ; Optimal tip speed ratio [-] (only used when K=constant 11 = 0 otherwise Qg=K*Omega^2 is used)
; Parameters for adding aerodynamic drivetrain damping on gain scheduling
constant 50 0.0 ; Proportional gain of aerodynamic DT damping [Nm/(rad/s)]
constant 51 0.0 ; Coefficient of linear term in aerodynamic DT damping scheduling, KK1 [deg]
constant 52 0.0 ; Coefficient of quadratic term in aerodynamic DT damping scheduling, KK2 [deg^2]
end init ;
;
begin output ;
general time ; [s]
constraint bearing1 shaft_rot 1 only 2 ; Drivetrain speed [rad/s]
constraint bearing2 pitch1 1 only 1; [rad]
constraint bearing2 pitch2 1 only 1; [rad]
constraint bearing2 pitch3 1 only 1; [rad]
wind free_wind 1 0.0 0.0 -127 ; Global coordinates at hub height
dll inpvec 2 2 ; Elec. power from generator servo .dll
dll inpvec 2 8 ; Grid state flag from generator servo .dll
mbdy state acc tower 10 1.0 global only 1 ; Tower top x-acceleration [m/s^2]
mbdy state acc tower 10 1.0 global only 2 ; Tower top y-acceleration [m/s^2]
end output;
end type2_dll;
;
begin type2_dll;
name generator_servo ;
filename ./control/generator_servo.dll ;
dll_subroutine_init init_generator_servo ;
dll_subroutine_update update_generator_servo ;
arraysizes_init 7 1 ;
arraysizes_update 4 8 ;
begin init ;
constant 1 20.0 ; Frequency of 2nd order servo model of generator-converter system [Hz]
constant 2 0.9 ; Damping ratio 2nd order servo model of generator-converter system [-]
constant 3 15.6E+06 ; Maximum allowable LSS torque (pull-out torque) [Nm]
constant 4 0.94 ; Generator efficiency [-]
constant 5 1.0 ; Gearratio [-]
constant 6 0.0 ; Time for half value in softstart of torque [s]
constant 7 5000 ; Time for grid loss [s]
end init ;
;
begin output;
general time ; Time [s]
dll inpvec 1 1 ; Electrical torque reference [Nm]
constraint bearing1 shaft_rot 1 only 2; Generator LSS speed [rad/s]
mbdy momentvec shaft 1 1 shaft only 3 ; Shaft moment [kNm] (Qshaft)
end output;
;
begin actions;
mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm]
end actions;
end type2_dll;
;
begin type2_dll;
name mech_brake ;
filename ./control/mech_brake.dll ;
dll_subroutine_init init_mech_brake ;
dll_subroutine_update update_mech_brake ;
arraysizes_init 7 1 ;
arraysizes_update 4 6 ;
begin init ;
constant 1 5225.35 ; Fully deployed maximum brake torque [Nm] (0.6*max torque)
constant 2 100.0 ; Parameter alpha used in Q = tanh(omega*alpha), typically 1e2/Omega_nom
constant 3 0.5 ; Delay time for before brake starts to deploy [s]
constant 4 0.74 ; Time for brake to become fully deployed [s]
end init ;
;
begin output;
general time ; Time [s]
constraint bearing1 shaft_rot 1 only 2 ; Generator LSS speed [rad/s]
dll inpvec 1 25 ; Command to deploy mechanical disc brake [0,1]
end output;
;
begin actions;
mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm]
end actions;
end type2_dll;
;
begin type2_dll;
name servo_with_limits ;
filename ./control/servo_with_limits.dll ;
dll_subroutine_init init_servo_with_limits ;
dll_subroutine_update update_servo_with_limits ;
arraysizes_init 10 1 ;
arraysizes_update 5 9 ;
begin init ;
constant 1 3 ; Number of blades [-]
constant 2 1.0 ; Frequency of 2nd order servo model of pitch system [Hz]
constant 3 0.7 ; Damping ratio 2nd order servo model of pitch system [-]
constant 4 10.0 ; Max. pitch speed [deg/s]
constant 5 15.0 ; Max. pitch acceleration [deg/s^2]
constant 6 -5.0 ; Min. pitch angle [deg]
constant 7 90.0 ; Max. pitch angle [deg]
constant 8 5000 ; Time for pitch runaway [s]
constant 9 -1 ; Time for stuck blade 1 [s]
constant 10 0 ; Angle of stuck blade 1 [deg]
end init ;
begin output;
general time ; Time [s]
dll inpvec 1 2 ; Pitch1 demand angle [rad]
dll inpvec 1 3 ; Pitch2 demand angle [rad]
dll inpvec 1 4 ; Pitch3 demand angle [rad]
dll inpvec 1 26 ; Flag for emergency pitch stop [0=off/1=on]
end output;
;
begin actions;
constraint bearing2 angle pitch1 ; Angle pitch1 bearing [rad]
constraint bearing2 angle pitch2 ; Angle pitch2 bearing [rad]
constraint bearing2 angle pitch3 ; Angle pitch3 bearing [rad]
end actions;
end type2_dll;
;
; --- DLL for tower-blade tip distance -- ;
begin type2_dll;
name disttowtip ;
filename ./control/towclearsens.dll ;
dll_subroutine_init initialize ;
dll_subroutine_update update ;
arraysizes_init 1 1 ;
arraysizes_update 12 4 ;
begin init ;
constant 1 3.87 ; Tower radius close to downward blade tip [m]
end init ;
begin output;
mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m
mbdy state pos blade1 26 1.0 global ; [4,5,6]
mbdy state pos blade2 26 1.0 global ; [7,8,9]
mbdy state pos blade3 26 1.0 global ; [10,11,12]
end output;
end type2_dll;
end dll;
;
;----------------------------------------------------------------------------------------------------------------------------------------------------------------
;
begin output;
filename ./res/dlc01_demos/dlc01_steady_wsp8_noturb ;
time 20 40 ;
data_format hawc_binary;
buffer 1 ;
;
general time;
constraint bearing1 shaft_rot 2; angle and angle velocity
constraint bearing2 pitch1 5; angle and angle velocity
constraint bearing2 pitch2 5; angle and angle velocity
constraint bearing2 pitch3 5; angle and angle velocity
aero omega ;
aero torque;
aero power;
aero thrust;
wind free_wind 1 0.0 0.0 -127; local wind at fixed position: coo (1=global,2=non-rotation rotor coo.), pos x, pos y, pos z
; non rotating coordinates shaft tip: equivalent to stationary hub in BLADED
mbdy momentvec shaft 3 2 shaft_nonrotate # non rotating shaft tip ;
mbdy forcevec shaft 3 2 shaft_nonrotate # non rotating shaft tip ;
; Moments:
mbdy momentvec tower 1 1 tower # tower base ;
mbdy momentvec tower 19 2 tower # tower yaw bearing ;
mbdy momentvec shaft 4 1 shaft # main bearing ;
mbdy momentvec blade1 3 2 blade1 # blade 1 root ;
mbdy momentvec blade2 3 2 blade2 # blade 2 root ;
mbdy momentvec blade3 3 2 blade3 # blade 3 root ;
; blade 2,3 root section loads
mbdy momentvec blade2 3 2 local # blade 2 section root;
mbdy momentvec blade3 3 2 local # blade 3 section root;
; blade 1 sectional loads in local coordinates
mbdy momentvec blade1 2 2 local # blade 1 section;
mbdy momentvec blade1 3 2 local # blade 1 section root;
mbdy momentvec blade1 4 2 local # blade 1 section;
mbdy momentvec blade1 5 2 local # blade 1 section;
mbdy momentvec blade1 6 2 local # blade 1 section;
mbdy momentvec blade1 7 2 local # blade 1 section;
mbdy momentvec blade1 8 2 local # blade 1 section;
mbdy momentvec blade1 9 2 local # blade 1 section;
mbdy momentvec blade1 10 2 local # blade 1 section;
mbdy momentvec blade1 11 2 local # blade 1 section;
mbdy momentvec blade1 12 2 local # blade 1 section;
mbdy momentvec blade1 13 2 local # blade 1 section;
mbdy momentvec blade1 14 2 local # blade 1 section;
mbdy momentvec blade1 15 2 local # blade 1 section;
mbdy momentvec blade1 16 2 local # blade 1 section;
mbdy momentvec blade1 17 2 local # blade 1 section;
mbdy momentvec blade1 18 2 local # blade 1 section;
mbdy momentvec blade1 19 2 local # blade 1 section;
mbdy momentvec blade1 20 2 local # blade 1 section;
mbdy momentvec blade1 21 2 local # blade 1 section;
mbdy momentvec blade1 22 2 local # blade 1 section;
mbdy momentvec blade1 23 2 local # blade 1 section;
mbdy momentvec blade1 24 2 local # blade 1 section;
mbdy momentvec blade1 25 2 local # blade 1 section;
mbdy momentvec blade1 26 2 local # blade 1 section;
; blade root out and in of plane forces
mbdy momentvec blade1 3 2 hub1 # blade 1 root ;
mbdy momentvec blade2 3 2 hub2 # blade 2 root ;
mbdy momentvec blade3 3 2 hub3 # blade 3 root ;
; mbdy momentvec blade1 14 1 local # blade 1 50% local e coo ;
; mbdy momentvec blade2 14 1 local # blade 2 50% local e coo ;
; mbdy momentvec blade3 14 1 local # blade 3 50% local e coo ;
; Displacements and accellerations
mbdy state pos tower 19 1.0 global only 1 # Tower top FA displ;
mbdy state pos tower 19 1.0 global only 2 # Tower top SS displ;
mbdy state acc tower 19 1.0 global only 1 # Tower top FA acc;
mbdy state acc tower 19 1.0 global only 2 # Tower top SS acc;
;
mbdy state pos blade1 26 1.0 global # gl blade 1 tip pos ;
mbdy state pos blade2 26 1.0 global # gl blade 2 tip pos ;
mbdy state pos blade3 26 1.0 global # gl blade 3 tip pos ;
mbdy state pos blade1 26 1.0 blade1 # blade 1 tip pos ;
mbdy state pos blade2 26 1.0 blade2 # blade 2 tip pos ;
mbdy state pos blade3 26 1.0 blade3 # blade 3 tip pos ;
;
mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m
;
; elastic twist (torsional deformation) along the blade
aero tors_ang 1 45.56;
aero tors_ang 1 59.19;
aero tors_ang 1 70.87;
aero tors_ang 1 80.61;
aero tors_ang 1 84.50;
aero tors_ang 1 88.40;
aero tors_ang 1 92.29;
aero tors_ang 1 96.19;
aero tors_ang 1 98.13;
aero tors_ang 1 100.08; tip
;
; - Monitor Aerodynamics - ;
aero windspeed 3 1 1 72.5;
aero alfa 1 72.5;
aero alfa 2 72.5;
aero alfa 3 72.5;
aero cl 1 72.5;
aero cl 2 72.5;
aero cl 3 72.5;
aero cd 1 72.5;
aero cd 2 72.5;
aero cd 3 72.5;
; - Main Controller -
; Output to controller
; dll outvec 1 1 # time;
; dll outvec 1 2 # slow speed shaft rad/s;
; dll outvec 1 3 # pitch angle 1;
; dll outvec 1 4 # pitch angle 2;
; dll outvec 1 5 # pitch angle 3;
; dll outvec 1 6 # WSP_x_global;
; dll outvec 1 7 # WSP_y_global;
; dll outvec 1 8 # WSP_z_global;
; dll outvec 1 9 # Elec. pwr ;
; dll outvec 1 10 # Grid flag ;
; Input from controller
dll inpvec 1 1 # Generator torque reference [Nm] ;
dll inpvec 1 2 # Pitch angle reference of blade 1 [rad] ;
dll inpvec 1 3 # Pitch angle reference of blade 2 [rad] ;
dll inpvec 1 4 # Pitch angle reference of blade 3 [rad] ;
; dll inpvec 1 5 # Power reference [W] ;
; dll inpvec 1 6 # Filtered wind speed [m/s] ;
; dll inpvec 1 7 # Filtered rotor speed [rad/s];
; dll inpvec 1 8 # Filtered rotor speed error for torque [rad/s];
; dll inpvec 1 9 # Bandpass filtered rotor speed [rad/s];
; dll inpvec 1 10 # Proportional term of torque contr. [Nm] ;
; dll inpvec 1 11 # Integral term of torque controller [Nm] ;
; dll inpvec 1 12 # Minimum limit of torque [Nm] ;
; dll inpvec 1 13 # Maximum limit of torque [Nm] ;
dll inpvec 1 14 # Torque limit switch based on pitch [-] ;
; dll inpvec 1 15 # Filtered rotor speed error for pitch [rad/s];
; dll inpvec 1 16 # Power error for pitch [W] ;
; dll inpvec 1 17 # Proportional term of pitch controller [rad] ;
; dll inpvec 1 18 # Integral term of pitch controller [rad] ;
; dll inpvec 1 19 # Minimum limit of pitch [rad] ;
; dll inpvec 1 20 # Maximum limit of pitch [rad] ;
dll inpvec 1 21 # Torque reference from DT dammper [Nm] ;
dll inpvec 1 22 # Status signal [-] ;
; dll inpvec 1 23 # Total added pitch rate [rad/s] ;
dll inpvec 1 24 # Filtered Mean pitch for gain sch [rad] ;
dll inpvec 1 25 # Flag for mechnical brake [0=off/1=on] ;
dll inpvec 1 26 # Flag for emergency pitch stop [0=off/1=on] ;
dll inpvec 1 27 # LP filtered acceleration level [m/s^2] ;
; ; Output to generator model
; dll outvec 2 1 # time ;
; dll outvec 2 2 # Electrical torque reference [Nm] ;
; dll outvec 2 3 # omega LSS ;
; Input from generator model
dll inpvec 2 1 # Mgen LSS [Nm];
dll inpvec 2 2 # Pelec W ;
dll inpvec 2 3 # Mframe ;
dll inpvec 2 4 # Mgen HSS ;
dll inpvec 2 5 # Generator Pmech kW ;
dll inpvec 2 6 # Filtered Gen speed ;
dll inpvec 2 7 # Resulting Eff ;
dll inpvec 2 8 # Grid flag ;
; Output to mechanical brake
dll inpvec 3 1 # Brake torque [Nm] ;
; ; Input from mechanical brake
; dll outvec 3 1 # Time [s] ;
; dll outvec 3 2 # Generator LSS speed [rad/s] ;
; dll outvec 3 3 # Deploy brake ;
; ; Output to pitch servo
; dll outvec 4 1 # time;
; dll outvec 4 2 # pitchref 1;
; dll outvec 4 3 # pitchref 2;
; dll outvec 4 4 # pitchref 3;
; dll outvec 4 5 # Emerg. stop;
; Input from pitch servo
dll inpvec 4 1 # pitch 1;
dll inpvec 4 2 # pitch 2;
dll inpvec 4 3 # pitch 3;
; Check tower clearence
dll inpvec 5 1 # Bltip tow min d [m];
; general constant 1.0 ; constant 1.0 - to mesure activity of flap in terms of displacement
; - Check on flap control:
; ; - From flap controller: -
; dll type2_dll cyclic_flap_controller inpvec 1 # Ref flap signal bl 1 [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 2 # Ref flap signal bl 2 [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 3 # Ref flap signal bl 3 [deg] ;
; ; - Mbc values
; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ;
; ; - Check Gains - ;
; dll type2_dll cyclic_flap_controller inpvec 10 # lead angle [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 11 # scaling on rat pow [-] ;
; dll type2_dll cyclic_flap_controller inpvec 12 # actual kp [deg/kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 13 # actual ki [deg/kNms] ;
; dll type2_dll cyclic_flap_controller inpvec 14 # actual kd [deg s/kNm] ;
; ; - Actual deflections -
; aero beta 1 1 ;
; aero beta 2 1 ;
; aero beta 3 1 ;
; ; - Mbc values
; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ;
end output;
;
exit;
;this version was at some point based on: Avatar_10MW_RWT version 1, 06-08-14, Anyd
begin simulation;
time_stop 40;
solvertype 1 ; (newmark)
on_no_convergence continue ;
; convergence_limits 1E3 1.0 1E-7 ;
logfile ./logfiles/dlc01_demos/dlc01_steady_wsp9_noturb.log ;
begin newmark;
deltat 0.02;
end newmark;
end simulation;
;
;----------------------------------------------------------------------------------------------------------------------------------------------------------------
begin new_htc_structure;
;--------------------------------------------------------------------------------------------------
; beam_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp9_noturb/dlc01_steady_wsp9_noturb_beam.dat;
; body_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp9_noturb/dlc01_steady_wsp9_noturb_body.dat;
; struct_inertia_output_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp9_noturb/dlc01_steady_wsp9_noturb_struct.dat;
; body_eigenanalysis_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp9_noturb/dlc01_steady_wsp9_noturb_body_eigen.dat;
; structure_eigenanalysis_file_name ./res_eigen/dlc01_demos/dlc01_steady_wsp9_noturb/dlc01_steady_wsp9_noturb_strc_eigen.dat;
;---------------------------------------------------------------------------------------------------
begin main_body; tower 123.6m
name tower ;
type timoschenko ;
nbodies 3 ;
node_distribution c2_def ;
damping_posdef 0 0 0 4.7E-03 4.7E-03 4.3E-04 ; tuned by Anyd 12/8/14
begin timoschenko_input;
filename ./data/AVATAR_10MW_RWT_tower_st.dat;
set 1 1 ;
end timoschenko_input;
begin c2_def; Definition of centerline (main_body coordinates)
nsec 20;
sec 1 0 0 0.000 0 ; x,y,z,twist
sec 2 0 0 -12.293 0 ;
sec 3 0 0 -12.294 0 ;
sec 4 0 0 -24.585 0 ;
sec 5 0 0 -24.586 0 ;
sec 6 0 0 -36.878 0 ;
sec 7 0 0 -36.879 0 ;
sec 8 0 0 -49.171 0 ;
sec 9 0 0 -49.172 0 ;
sec 10 0 0 -61.463 0 ;
sec 11 0 0 -61.464 0 ;
sec 12 0 0 -73.756 0 ;
sec 13 0 0 -73.757 0 ;
sec 14 0 0 -86.049 0 ;
sec 15 0 0 -86.050 0 ;
sec 16 0 0 -98.341 0 ;
sec 17 0 0 -98.342 0 ;
sec 18 0 0 -110.634 0 ;
sec 19 0 0 -110.635 0 ;
sec 20 0 0 -123.600 0 ;
end c2_def ;
end main_body;
;
begin main_body;
name towertop ;
type timoschenko ;
nbodies 1 ;
node_distribution c2_def ;
damping_posdef 7.50E-03 7.40E-03 7.00E-03 7.00E-03 7.00E-03 7.00E-03 ; "changed by Anyd
concentrated_mass 2.0 0.0 2.6870E+00 3.0061E-01 4.4604E+05 4.1060E+06 4.1060E+05 4.1060E+06 ; Nacel
begin timoschenko_input;
filename ./data/DTU_10MW_RWT_Towertop_st.dat ;
set 1 2 ;
end timoschenko_input;
begin c2_def; Definition of centerline (main_body coordinates)
nsec 2;
sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist
sec 2 0.0 0.0 -2.75 0.0 ;
end c2_def ;
end main_body;
;
begin main_body;
name shaft ;
type timoschenko ;
nbodies 1 ;
node_distribution c2_def ;
; damping_posdef 8.00E-3 8.00E-03 8.00E-02 4.65E-04 4.65E-04 2.38E-02 ; "tuned by Anyd 22/2/13
damping_posdef 0.0 0.0 3.983E-03 4.65E-04 4.65E-04 3.983E-03 ; "tuned by Anyd 23/5/13 to 31.45 l
concentrated_mass 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.751E+06 ; generator equivalent slow shaft "re_tu
concentrated_mass 5.0 0.0 0.0 0.0 1.0552E+05 0.0 0.0 3.257E+05 ; hub mass and inertia; "re_tuned
begin timoschenko_input;
filename ./data/DTU_10MW_RWT_Shaft_st.dat ;
set 1 1 ;
end timoschenko_input;
begin c2_def; Definition of centerline (main_body coordinates)
nsec 5;
sec 1 0.0 0.0 0.0 0.0 ; Tower top x,y,z,twist
sec 2 0.0 0.0 1.5 0.0 ;
sec 3 0.0 0.0 3.0 0.0 ;
sec 4 0.0 0.0 4.4 0.0 ; Main bearing
sec 5 0.0 0.0 7.1 0.0 ; Rotor centre
end c2_def ;
end main_body;
;
begin main_body;
name shaft_nonrotate ;
type timoschenko ;
nbodies 1 ;
node_distribution c2_def ;
damping_posdef 0.00E+00 0.00E+00 0.00E+00 1.0E-01 1.0E-01 1.0E-01 ;
begin timoschenko_input;
filename ./data/DTU_10MW_RWT_Shaft_st.dat ;
set 1 3; dummy light and stiff structure
end timoschenko_input;
begin c2_def;
nsec 2;
sec 1 0.0 0.0 0.0 0.0 ;
sec 2 0.0 0.0 0.1 0.0 ;
end c2_def;
end main_body;
;
begin main_body;
name hub1 ;
type timoschenko ;
nbodies 1 ;
node_distribution c2_def ;
damping_posdef 2.00E-05 2.00E-05 2.00E-04 3.00E-06 3.00E-06 2.00E-05;
begin timoschenko_input;
filename ./data/DTU_10MW_RWT_Hub_st.dat ;
set 1 2 ;
end timoschenko_input;
begin c2_def; Definition of centerline (main_body coordinates)
nsec 2;
sec 1 0.0 0.0 0.0 0.0 ; x,y,z,twist
sec 2 0.0 0.0 2.8 0.0 ;
end c2_def ;
end main_body;
;
begin main_body;
name hub2 ;
copy_main_body hub1;
end main_body;
;
begin main_body;
name hub3 ;
copy_main_body hub1 ;
end main_body;
;
begin main_body;
name blade1 ;
type timoschenko ;
nbodies 10 ;
node_distribution c2_def;
; damping_posdef 0.0 0.0 0.0 2.5e-3 8.9e-4 3.2e-4 ; "Tuned by Anyd"
; damping_posdef 0.0 0.0 0.0 1.5e-3 2.45e-3 3.2e-4 ; " 3% damping tuned by Anyd 20/02/12 unable to
; damping_posdef 0.0 0.0 0.0 2.1e-3 1.9e-3 1.3e-4 ; " 3% damping tuned by Anyd 15/08/14 rev2
damping_posdef 0.0 0.0 0.0 1.68e-3 2.25e-3 1.0e-4 ; " 3% damping tuned by Anyd 16/12/14
begin timoschenko_input ;
filename ./data/AVATAR_10MW_RWT_Blade_st.dat ;
set 1 9 ;
end timoschenko_input;
begin c2_def;
nsec 27 ;
sec 1 -0.001 -0.001 0.000 -17.280 ;
sec 2 -0.005 -0.001 2.220 -17.280 ;
sec 3 -0.006 -0.000 4.440 -17.280 ;
sec 4 -0.086 0.022 6.660 -17.280 ;
sec 5 -0.231 0.069 11.039 -17.273 ;
sec 6 -0.447 0.121 15.418 -16.441 ;
sec 7 -0.690 0.161 19.797 -14.613 ;
sec 8 -0.812 0.162 24.176 -12.578 ;
sec 9 -0.891 0.158 28.555 -10.588 ;
sec 10 -0.865 0.124 32.934 -9.070 ;
sec 11 -0.833 0.112 37.313 -8.224 ;
sec 12 -0.797 0.102 41.692 -7.688 ;
sec 13 -0.760 0.093 46.071 -7.205 ;
sec 14 -0.721 0.083 50.450 -6.749 ;
sec 15 -0.683 0.075 54.829 -6.288 ;
sec 16 -0.644 0.066 59.208 -5.838 ;
sec 17 -0.606 0.058 63.587 -5.401 ;
sec 18 -0.567 0.050 67.966 -4.982 ;
sec 19 -0.529 0.044 72.345 -4.640 ;
sec 20 -0.492 0.037 76.724 -4.380 ;
sec 21 -0.456 0.032 81.103 -4.144 ;
sec 22 -0.422 0.026 85.482 -3.914 ;
sec 23 -0.392 0.021 89.861 -3.685 ;
sec 24 -0.346 0.014 94.240 -3.460 ;
sec 25 -0.307 0.010 96.190 -3.350 ;
sec 26 -0.249 0.005 98.130 -3.250 ;
sec 27 -0.089 0.006 100.080 -3.140 ;
end c2_def ;
end main_body;
;
begin main_body;
name blade2 ;
copy_main_body blade1;
end main_body;
;
begin main_body;
name blade3 ;
copy_main_body blade1 ;
end main_body;
;-------------------------------------------------------------------------------------------------------------------------------
;
begin orientation;
begin base;
body tower;
inipos 0.0 0.0 0.0 ; initial position of node 1
body_eulerang 0.0 0.0 0.0;
end base;
;
begin relative;
body1 tower last;
body2 towertop 1;
body2_eulerang 0.0 0.0 0.0;
end relative;
;
begin relative;
body1 towertop last;
body2 shaft 1;
body2_eulerang 90.0 0.0 0.0;
body2_eulerang 5.0 0.0 0.0; 5 deg tilt angle
body2_eulerang 0.0 0.0 0;
mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.5 ; mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 0.5;
end relative;
;
begin relative; dummy non rotating hub coordinates
body1 towertop last;
body2 shaft_nonrotate 1;
body2_eulerang 90.0 0.0 0.0;
body2_eulerang 5.0 0.0 0.0; same 5 deg tilt angle as real shaft
end relative;
;
begin relative;
body1 shaft last;
body2 hub1 1;
body2_eulerang -90.0 0.0 0.0;
body2_eulerang 0.0 180.0 0.0;
body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle
end relative;
;
begin relative;
body1 shaft last;
body2 hub2 1;
body2_eulerang -90.0 0.0 0.0;
body2_eulerang 0.0 60.0 0.0;
body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle
end relative;
;
begin relative;
body1 shaft last;
body2 hub3 1;
body2_eulerang -90.0 0.0 0.0;
body2_eulerang 0.0 -60.0 0.0;
body2_eulerang 2.5 0.0 0.0; 2.5deg cone angle
end relative;
;
begin relative;
body1 hub1 last;
body2 blade1 1;
body2_eulerang 0.0 0.0 0;
end relative;
;
begin relative;
body1 hub2 last;
body2 blade2 1;
body2_eulerang 0.0 0.0 0.0;
end relative;
;
begin relative;
body1 hub3 last;
body2 blade3 1;
body2_eulerang 0.0 0.0 0.0;
end relative;
;
end orientation;
;-------------------------------------------------------------------------------------------------------------------------------
begin constraint;
;
begin fix0; fixed to ground in translation and rotation of node 1
body tower;
end fix0;
;
begin fix1;
body1 tower last ;
body2 towertop 1;
end fix1;
;
begin bearing1; free bearing
name shaft_rot;
body1 towertop last;
body2 shaft 1;
bearing_vector 2 0.0 0.0 -1.0; x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present
end bearing1;
;
; begin bearing3; free bearing
; name shaft_rot;
; body1 towertop last;
; body2 shaft 1;
; bearing_vector 2 0.0 0.0 -1.0; x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present
; omegas 0.0 ;
; end bearing3;
;
begin fix1;
body1 tower last ;
body2 shaft_nonrotate 1;
end fix1;
;
begin fix1;
body1 shaft last ;
body2 hub1 1;
end fix1;
;
begin fix1;
body1 shaft last ;
body2 hub2 1;
end fix1;
;
begin fix1;
body1 shaft last ;
body2 hub3 1;
end fix1;
;
begin bearing2;
name pitch1;
body1 hub1 last;
body2 blade1 1;
bearing_vector 2 0.0 0.0 -1.0;
end bearing2;
;
begin bearing2;
name pitch2;
body1 hub2 last;
body2 blade2 1;
bearing_vector 2 0.0 0.0 -1.0;
end bearing2;
;
begin bearing2;
name pitch3;
body1 hub3 last;
body2 blade3 1;
bearing_vector 2 0.0 0.0 -1.0;
end bearing2;
end constraint;
;
end new_htc_structure;
;----------------------------------------------------------------------------------------------------------------------------------------------------------------
begin wind ;
density 1.225 ;
wsp 9 ;
tint 0.219555555556 ;
horizontal_input 1 ;
windfield_rotations 0 8.0 0.0 ; yaw, tilt (positive=upflow=wind coming from below), rotation
center_pos0 0.0 0.0 -127 ; hub heigth
shear_format 3 0 ;
turb_format 0 ; 0=none, 1=mann,2=flex
tower_shadow_method 3 ; 0=none, 1=potential flow, 2=jet
scale_time_start 20 ;
wind_ramp_factor 0.0 20 0.888888888889 1.0 ;
; iec_gust ;
;
; wind_ramp_abs 400.0 401.0 0.0 1.0 ; wsp. after the step: 5.0
; wind_ramp_abs 501.0 502.0 0.0 1.0 ; wsp. after the step: 6.0
; wind_ramp_abs 602.0 603.0 0.0 1.0 ; wsp. after the step: 7.0
; wind_ramp_abs 703.0 704.0 0.0 1.0 ; wsp. after the step: 8.0
; wind_ramp_abs 804.0 805.0 0.0 1.0 ; wsp. after the step: 9.0
; wind_ramp_abs 905.0 906.0 0.0 1.0 ; wsp. after the step: 10.0
; wind_ramp_abs 1006.0 1007.0 0.0 1.0 ; wsp. after the step: 11.0
; wind_ramp_abs 1107.0 1108.0 0.0 1.0 ; wsp. after the step: 12.0
; wind_ramp_abs 1208.0 1209.0 0.0 1.0 ; wsp. after the step: 13.0
; wind_ramp_abs 1309.0 1310.0 0.0 1.0 ; wsp. after the step: 14.0
; wind_ramp_abs 1410.0 1411.0 0.0 1.0 ; wsp. after the step: 15.0
; wind_ramp_abs 1511.0 1512.0 0.0 1.0 ; wsp. after the step: 16.0
; wind_ramp_abs 1612.0 1613.0 0.0 1.0 ; wsp. after the step: 17.0
; wind_ramp_abs 1713.0 1714.0 0.0 1.0 ; wsp. after the step: 18.0
; wind_ramp_abs 1814.0 1815.0 0.0 1.0 ; wsp. after the step: 19.0
; wind_ramp_abs 1915.0 1916.0 0.0 1.0 ; wsp. after the step: 20.0
; wind_ramp_abs 2016.0 2017.0 0.0 1.0 ; wsp. after the step: 21.0
; wind_ramp_abs 2117.0 2118.0 0.0 1.0 ; wsp. after the step: 22.0
; wind_ramp_abs 2218.0 2219.0 0.0 1.0 ; wsp. after the step: 23.0
; wind_ramp_abs 2319.0 2320.0 0.0 1.0 ; wsp. after the step: 24.0
; wind_ramp_abs 2420.0 2421.0 0.0 1.0 ; wsp. after the step: 25.0
;
; wind_ramp_abs 400.0 2200.0 0.0 21.0 ; wsp. after the step: 25.0
; wind_ramp_abs 2400.0 4200.0 0.0 -21.0 ; wsp. after the step: 25.0
;
begin mann ;
create_turb_parameters 29.4 1.0 3.9 0 1.0 ; L, alfaeps, gamma, seed, highfrq compensation
filename_u ./turb/noneu.bin ;
filename_v ./turb/nonev.bin ;
filename_w ./turb/nonew.bin ;
box_dim_u 8192 0.0439453125 ;
box_dim_v 32 7.5;
box_dim_w 32 7.5;
std_scaling 1.0 0.7 0.5 ;
end mann ;
;
begin tower_shadow_potential_2;
tower_mbdy_link tower;
nsec 2;
radius 0.0 4.15 ;
radius 123.6 2.75 ; (radius)
end tower_shadow_potential_2;
end wind;
;
begin aerodrag ;
begin aerodrag_element ;
mbdy_name tower;
aerodrag_sections uniform 10 ;
nsec 2 ;
sec 0.0 0.6 8.3 ; tower bottom
sec 123.6 0.6 5.5 ; tower top (diameter)
end aerodrag_element;
;
begin aerodrag_element ; Nacelle drag side
mbdy_name shaft;
aerodrag_sections uniform 2 ;
nsec 2 ;
sec 0.0 0.8 10.0 ;
sec 7.01 0.8 10.0 ;
end aerodrag_element;
end aerodrag;
;
begin aero ;
nblades 3;
hub_vec shaft -3 ; rotor rotation vector (normally shaft composant directed from pressure to sustion side)
link 1 mbdy_c2_def blade1;
link 2 mbdy_c2_def blade2;
link 3 mbdy_c2_def blade3;
ae_filename ./data/AVATAR_10MW_RWT_ae.dat ;
pc_filename ./data/AVATAR_10MW_RWT_pc_hama_v1.dat ;
induction_method 1 ; 0=none, 1=normal
aerocalc_method 1 ; 0=ingen aerodynamic, 1=med aerodynamic
aero_distribution ae_file 1 ;
ae_sets 1 1 1;
tiploss_method 1 ; 0=none, 1=prandtl
dynstall_method 2 ; 0=none, 1=stig øye method,2=mhh method
;
; ; --- Flaps --- ;
; begin dynstall_ateflap ;
; Ais 0.165 0.335 0.0 ;
; Bis 0.0455 0.30 0.30 ;
; flap 59.5925 85.5023 ./data/Flap_dturwt1_Thk24.ds ; Flap Sec: 1
; end dynstall_ateflap;
end aero ;
;-------------------------------------------------------------------------------------------------
begin dll;
;
begin type2_dll;
name risoe_controller ;
filename ./control/risoe_controller.dll ;
dll_subroutine_init init_regulation ;
dll_subroutine_update update_regulation ;
arraysizes_init 52 1 ;
arraysizes_update 12 100 ;
begin init ;
; Overall parameters
constant 1 10000.0 ; Rated power [kW]
constant 2 0.628 ; Minimum rotor speed [rad/s]
constant 3 1.005 ; Rated rotor speed [rad/s]
constant 4 15.6E+06 ; Maximum allowable generator torque [Nm]
constant 5 100.0 ; Minimum pitch angle, theta_min [deg],
; if |theta_min|>90, then a table of <wsp,theta_min> is read ;
; from a file named 'wpdata.n', where n=int(theta_min)
constant 6 90.0 ; Maximum pitch angle [deg]
constant 7 10.0 ; Maximum pitch velocity operation [deg/s]
constant 8 0.4 ; Frequency of generator speed filter [Hz]
constant 9 0.7 ; Damping ratio of speed filter [-]
constant 10 1.64 ; Frequency of free-free DT torsion mode [Hz], if zero no notch filter used
; Partial load control parameters
constant 11 0.9648030e+07 ; Optimal Cp tracking K factor [Nm/(rad/s)^2], ;
; Qg=K*Omega^2, K=eta*0.5*rho*A*Cp_opt*R^3/lambda_opt^3
constant 12 1.047610E+08 ; Proportional gain of torque controller [Nm/(rad/s)]
constant 13 0.153367E+08 ; Integral gain of torque controller [Nm/rad]
constant 14 0.0 ; Differential gain of torque controller [Nm/(rad/s^2)]
; Full load control parameters
constant 15 1 ; Generator control switch [1=constant power, 2=constant torque]
constant 16 0.762489 ; Proportional gain of pitch controller [rad/(rad/s)]
constant 17 0.224086 ; Integral gain of pitch controller [rad/rad]
constant 18 0.0 ; Differential gain of pitch controller [rad/(rad/s^2)]
constant 19 0.4e-9 ; Proportional power error gain [rad/W]
constant 20 0.4e-9 ; Integral power error gain [rad/(Ws)]
constant 21 10.6824 ; Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg]
constant 22 601.25499 ; Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] &
; (if zero, KK1 = pitch angle at double gain)
constant 23 1.3 ; Relative speed for double nonlinear gain [-]
; Cut-in simulation parameters
constant 24 -1 ; Cut-in time [s]
constant 25 1.0 ; Time delay for soft start of torque [1/1P]
; Cut-out simulation parameters
constant 26 -1 ; Cut-out time [s]
constant 27 5.0 ; Time constant for linear torque cut-out [s]
constant 28 1 ; Stop type [1=normal, 2=emergency]
constant 29 1.0 ; Time delay for pitch stop after shut-down signal [s]
constant 30 3 ; Maximum pitch velocity during initial period of stop [deg/s]
constant 31 3.0 ; Time period of initial pitch stop phase [s] (maintains pitch speed specified in constant 30)
constant 32 4 ; Maximum pitch velocity during final phase of stop [deg/s]
; Expert parameters (keep default values unless otherwise given)
constant 33 2.0 ; Lower angle above lowest minimum pitch angle for switch [deg]
constant 34 2.0 ; Upper angle above lowest minimum pitch angle for switch [deg], if equal then hard switch
constant 35 95.0 ; Ratio between filtered speed and reference speed for fully open torque limits [%]
constant 36 2.0 ; Time constant of 1st order filter on wind speed used for minimum pitch [1/1P]
constant 37 1.0 ; Time constant of 1st order filter on pitch angle used for gain scheduling [1/1P]
; Drivetrain damper
constant 38 0.0 ; Proportional gain of active DT damper [Nm/(rad/s)], requires frequency in input 10
; Over speed
constant 39 25.0 ; Overspeed percentage before initiating turbine controller alarm (shut-down) [%]
; Additional non-linear pitch control term (not used when all zero)
constant 40 0.0 ; Err0 [rad/s]
constant 41 0.0 ; ErrDot0 [rad/s^2]
constant 42 0.0 ; PitNonLin1 [rad/s]
; Storm control command
constant 43 28.0 ; Wind speed 'Vstorm' above which derating of rotor speed is used [m/s]
constant 44 28.0 ; Cut-out wind speed (only used for derating of rotor speed in storm) [m/s]
; Safety system parameters
constant 45 25.0 ; Overspeed percentage before initiating safety system alarm (shut-down) [%]
constant 46 1.5 ; Max low-pass filtered tower top acceleration level [m/s^2] - max in DLC 1.3=1.1 m/s^2
; Turbine parameter
constant 47 205.8 ; Nominal rotor diameter [m]
; Parameters for rotor inertia reduction in variable speed region
constant 48 0.0 ; Proportional gain on rotor acceleration in variable speed region [Nm/(rad/s^2)] (not used when zero)
; Parameters for alternative partial load controller with PI regulated TSR tracking
constant 49 0.0 ; Optimal tip speed ratio [-] (only used when K=constant 11 = 0 otherwise Qg=K*Omega^2 is used)
; Parameters for adding aerodynamic drivetrain damping on gain scheduling
constant 50 0.0 ; Proportional gain of aerodynamic DT damping [Nm/(rad/s)]
constant 51 0.0 ; Coefficient of linear term in aerodynamic DT damping scheduling, KK1 [deg]
constant 52 0.0 ; Coefficient of quadratic term in aerodynamic DT damping scheduling, KK2 [deg^2]
end init ;
;
begin output ;
general time ; [s]
constraint bearing1 shaft_rot 1 only 2 ; Drivetrain speed [rad/s]
constraint bearing2 pitch1 1 only 1; [rad]
constraint bearing2 pitch2 1 only 1; [rad]
constraint bearing2 pitch3 1 only 1; [rad]
wind free_wind 1 0.0 0.0 -127 ; Global coordinates at hub height
dll inpvec 2 2 ; Elec. power from generator servo .dll
dll inpvec 2 8 ; Grid state flag from generator servo .dll
mbdy state acc tower 10 1.0 global only 1 ; Tower top x-acceleration [m/s^2]
mbdy state acc tower 10 1.0 global only 2 ; Tower top y-acceleration [m/s^2]
end output;
end type2_dll;
;
begin type2_dll;
name generator_servo ;
filename ./control/generator_servo.dll ;
dll_subroutine_init init_generator_servo ;
dll_subroutine_update update_generator_servo ;
arraysizes_init 7 1 ;
arraysizes_update 4 8 ;
begin init ;
constant 1 20.0 ; Frequency of 2nd order servo model of generator-converter system [Hz]
constant 2 0.9 ; Damping ratio 2nd order servo model of generator-converter system [-]
constant 3 15.6E+06 ; Maximum allowable LSS torque (pull-out torque) [Nm]
constant 4 0.94 ; Generator efficiency [-]
constant 5 1.0 ; Gearratio [-]
constant 6 0.0 ; Time for half value in softstart of torque [s]
constant 7 5000 ; Time for grid loss [s]
end init ;
;
begin output;
general time ; Time [s]
dll inpvec 1 1 ; Electrical torque reference [Nm]
constraint bearing1 shaft_rot 1 only 2; Generator LSS speed [rad/s]
mbdy momentvec shaft 1 1 shaft only 3 ; Shaft moment [kNm] (Qshaft)
end output;
;
begin actions;
mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm]
end actions;
end type2_dll;
;
begin type2_dll;
name mech_brake ;
filename ./control/mech_brake.dll ;
dll_subroutine_init init_mech_brake ;
dll_subroutine_update update_mech_brake ;
arraysizes_init 7 1 ;
arraysizes_update 4 6 ;
begin init ;
constant 1 5225.35 ; Fully deployed maximum brake torque [Nm] (0.6*max torque)
constant 2 100.0 ; Parameter alpha used in Q = tanh(omega*alpha), typically 1e2/Omega_nom
constant 3 0.5 ; Delay time for before brake starts to deploy [s]
constant 4 0.74 ; Time for brake to become fully deployed [s]
end init ;
;
begin output;
general time ; Time [s]
constraint bearing1 shaft_rot 1 only 2 ; Generator LSS speed [rad/s]
dll inpvec 1 25 ; Command to deploy mechanical disc brake [0,1]
end output;
;
begin actions;
mbdy moment_int shaft 1 -3 shaft towertop 2 ; Generator LSS torque [Nm]
end actions;
end type2_dll;
;
begin type2_dll;
name servo_with_limits ;
filename ./control/servo_with_limits.dll ;
dll_subroutine_init init_servo_with_limits ;
dll_subroutine_update update_servo_with_limits ;
arraysizes_init 10 1 ;
arraysizes_update 5 9 ;
begin init ;
constant 1 3 ; Number of blades [-]
constant 2 1.0 ; Frequency of 2nd order servo model of pitch system [Hz]
constant 3 0.7 ; Damping ratio 2nd order servo model of pitch system [-]
constant 4 10.0 ; Max. pitch speed [deg/s]
constant 5 15.0 ; Max. pitch acceleration [deg/s^2]
constant 6 -5.0 ; Min. pitch angle [deg]
constant 7 90.0 ; Max. pitch angle [deg]
constant 8 5000 ; Time for pitch runaway [s]
constant 9 -1 ; Time for stuck blade 1 [s]
constant 10 0 ; Angle of stuck blade 1 [deg]
end init ;
begin output;
general time ; Time [s]
dll inpvec 1 2 ; Pitch1 demand angle [rad]
dll inpvec 1 3 ; Pitch2 demand angle [rad]
dll inpvec 1 4 ; Pitch3 demand angle [rad]
dll inpvec 1 26 ; Flag for emergency pitch stop [0=off/1=on]
end output;
;
begin actions;
constraint bearing2 angle pitch1 ; Angle pitch1 bearing [rad]
constraint bearing2 angle pitch2 ; Angle pitch2 bearing [rad]
constraint bearing2 angle pitch3 ; Angle pitch3 bearing [rad]
end actions;
end type2_dll;
;
; --- DLL for tower-blade tip distance -- ;
begin type2_dll;
name disttowtip ;
filename ./control/towclearsens.dll ;
dll_subroutine_init initialize ;
dll_subroutine_update update ;
arraysizes_init 1 1 ;
arraysizes_update 12 4 ;
begin init ;
constant 1 3.87 ; Tower radius close to downward blade tip [m]
end init ;
begin output;
mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m
mbdy state pos blade1 26 1.0 global ; [4,5,6]
mbdy state pos blade2 26 1.0 global ; [7,8,9]
mbdy state pos blade3 26 1.0 global ; [10,11,12]
end output;
end type2_dll;
end dll;
;
;----------------------------------------------------------------------------------------------------------------------------------------------------------------
;
begin output;
filename ./res/dlc01_demos/dlc01_steady_wsp9_noturb ;
time 20 40 ;
data_format hawc_binary;
buffer 1 ;
;
general time;
constraint bearing1 shaft_rot 2; angle and angle velocity
constraint bearing2 pitch1 5; angle and angle velocity
constraint bearing2 pitch2 5; angle and angle velocity
constraint bearing2 pitch3 5; angle and angle velocity
aero omega ;
aero torque;
aero power;
aero thrust;
wind free_wind 1 0.0 0.0 -127; local wind at fixed position: coo (1=global,2=non-rotation rotor coo.), pos x, pos y, pos z
; non rotating coordinates shaft tip: equivalent to stationary hub in BLADED
mbdy momentvec shaft 3 2 shaft_nonrotate # non rotating shaft tip ;
mbdy forcevec shaft 3 2 shaft_nonrotate # non rotating shaft tip ;
; Moments:
mbdy momentvec tower 1 1 tower # tower base ;
mbdy momentvec tower 19 2 tower # tower yaw bearing ;
mbdy momentvec shaft 4 1 shaft # main bearing ;
mbdy momentvec blade1 3 2 blade1 # blade 1 root ;
mbdy momentvec blade2 3 2 blade2 # blade 2 root ;
mbdy momentvec blade3 3 2 blade3 # blade 3 root ;
; blade 2,3 root section loads
mbdy momentvec blade2 3 2 local # blade 2 section root;
mbdy momentvec blade3 3 2 local # blade 3 section root;
; blade 1 sectional loads in local coordinates
mbdy momentvec blade1 2 2 local # blade 1 section;
mbdy momentvec blade1 3 2 local # blade 1 section root;
mbdy momentvec blade1 4 2 local # blade 1 section;
mbdy momentvec blade1 5 2 local # blade 1 section;
mbdy momentvec blade1 6 2 local # blade 1 section;
mbdy momentvec blade1 7 2 local # blade 1 section;
mbdy momentvec blade1 8 2 local # blade 1 section;
mbdy momentvec blade1 9 2 local # blade 1 section;
mbdy momentvec blade1 10 2 local # blade 1 section;
mbdy momentvec blade1 11 2 local # blade 1 section;
mbdy momentvec blade1 12 2 local # blade 1 section;
mbdy momentvec blade1 13 2 local # blade 1 section;
mbdy momentvec blade1 14 2 local # blade 1 section;
mbdy momentvec blade1 15 2 local # blade 1 section;
mbdy momentvec blade1 16 2 local # blade 1 section;
mbdy momentvec blade1 17 2 local # blade 1 section;
mbdy momentvec blade1 18 2 local # blade 1 section;
mbdy momentvec blade1 19 2 local # blade 1 section;
mbdy momentvec blade1 20 2 local # blade 1 section;
mbdy momentvec blade1 21 2 local # blade 1 section;
mbdy momentvec blade1 22 2 local # blade 1 section;
mbdy momentvec blade1 23 2 local # blade 1 section;
mbdy momentvec blade1 24 2 local # blade 1 section;
mbdy momentvec blade1 25 2 local # blade 1 section;
mbdy momentvec blade1 26 2 local # blade 1 section;
; blade root out and in of plane forces
mbdy momentvec blade1 3 2 hub1 # blade 1 root ;
mbdy momentvec blade2 3 2 hub2 # blade 2 root ;
mbdy momentvec blade3 3 2 hub3 # blade 3 root ;
; mbdy momentvec blade1 14 1 local # blade 1 50% local e coo ;
; mbdy momentvec blade2 14 1 local # blade 2 50% local e coo ;
; mbdy momentvec blade3 14 1 local # blade 3 50% local e coo ;
; Displacements and accellerations
mbdy state pos tower 19 1.0 global only 1 # Tower top FA displ;
mbdy state pos tower 19 1.0 global only 2 # Tower top SS displ;
mbdy state acc tower 19 1.0 global only 1 # Tower top FA acc;
mbdy state acc tower 19 1.0 global only 2 # Tower top SS acc;
;
mbdy state pos blade1 26 1.0 global # gl blade 1 tip pos ;
mbdy state pos blade2 26 1.0 global # gl blade 2 tip pos ;
mbdy state pos blade3 26 1.0 global # gl blade 3 tip pos ;
mbdy state pos blade1 26 1.0 blade1 # blade 1 tip pos ;
mbdy state pos blade2 26 1.0 blade2 # blade 2 tip pos ;
mbdy state pos blade3 26 1.0 blade3 # blade 3 tip pos ;
;
mbdy state pos tower 5 0.00 global ; [1,2,3]. Tower position: 24.58 m
;
; elastic twist (torsional deformation) along the blade
aero tors_ang 1 45.56;
aero tors_ang 1 59.19;
aero tors_ang 1 70.87;
aero tors_ang 1 80.61;
aero tors_ang 1 84.50;
aero tors_ang 1 88.40;
aero tors_ang 1 92.29;
aero tors_ang 1 96.19;
aero tors_ang 1 98.13;
aero tors_ang 1 100.08; tip
;
; - Monitor Aerodynamics - ;
aero windspeed 3 1 1 72.5;
aero alfa 1 72.5;
aero alfa 2 72.5;
aero alfa 3 72.5;
aero cl 1 72.5;
aero cl 2 72.5;
aero cl 3 72.5;
aero cd 1 72.5;
aero cd 2 72.5;
aero cd 3 72.5;
; - Main Controller -
; Output to controller
; dll outvec 1 1 # time;
; dll outvec 1 2 # slow speed shaft rad/s;
; dll outvec 1 3 # pitch angle 1;
; dll outvec 1 4 # pitch angle 2;
; dll outvec 1 5 # pitch angle 3;
; dll outvec 1 6 # WSP_x_global;
; dll outvec 1 7 # WSP_y_global;
; dll outvec 1 8 # WSP_z_global;
; dll outvec 1 9 # Elec. pwr ;
; dll outvec 1 10 # Grid flag ;
; Input from controller
dll inpvec 1 1 # Generator torque reference [Nm] ;
dll inpvec 1 2 # Pitch angle reference of blade 1 [rad] ;
dll inpvec 1 3 # Pitch angle reference of blade 2 [rad] ;
dll inpvec 1 4 # Pitch angle reference of blade 3 [rad] ;
; dll inpvec 1 5 # Power reference [W] ;
; dll inpvec 1 6 # Filtered wind speed [m/s] ;
; dll inpvec 1 7 # Filtered rotor speed [rad/s];
; dll inpvec 1 8 # Filtered rotor speed error for torque [rad/s];
; dll inpvec 1 9 # Bandpass filtered rotor speed [rad/s];
; dll inpvec 1 10 # Proportional term of torque contr. [Nm] ;
; dll inpvec 1 11 # Integral term of torque controller [Nm] ;
; dll inpvec 1 12 # Minimum limit of torque [Nm] ;
; dll inpvec 1 13 # Maximum limit of torque [Nm] ;
dll inpvec 1 14 # Torque limit switch based on pitch [-] ;
; dll inpvec 1 15 # Filtered rotor speed error for pitch [rad/s];
; dll inpvec 1 16 # Power error for pitch [W] ;
; dll inpvec 1 17 # Proportional term of pitch controller [rad] ;
; dll inpvec 1 18 # Integral term of pitch controller [rad] ;
; dll inpvec 1 19 # Minimum limit of pitch [rad] ;
; dll inpvec 1 20 # Maximum limit of pitch [rad] ;
dll inpvec 1 21 # Torque reference from DT dammper [Nm] ;
dll inpvec 1 22 # Status signal [-] ;
; dll inpvec 1 23 # Total added pitch rate [rad/s] ;
dll inpvec 1 24 # Filtered Mean pitch for gain sch [rad] ;
dll inpvec 1 25 # Flag for mechnical brake [0=off/1=on] ;
dll inpvec 1 26 # Flag for emergency pitch stop [0=off/1=on] ;
dll inpvec 1 27 # LP filtered acceleration level [m/s^2] ;
; ; Output to generator model
; dll outvec 2 1 # time ;
; dll outvec 2 2 # Electrical torque reference [Nm] ;
; dll outvec 2 3 # omega LSS ;
; Input from generator model
dll inpvec 2 1 # Mgen LSS [Nm];
dll inpvec 2 2 # Pelec W ;
dll inpvec 2 3 # Mframe ;
dll inpvec 2 4 # Mgen HSS ;
dll inpvec 2 5 # Generator Pmech kW ;
dll inpvec 2 6 # Filtered Gen speed ;
dll inpvec 2 7 # Resulting Eff ;
dll inpvec 2 8 # Grid flag ;
; Output to mechanical brake
dll inpvec 3 1 # Brake torque [Nm] ;
; ; Input from mechanical brake
; dll outvec 3 1 # Time [s] ;
; dll outvec 3 2 # Generator LSS speed [rad/s] ;
; dll outvec 3 3 # Deploy brake ;
; ; Output to pitch servo
; dll outvec 4 1 # time;
; dll outvec 4 2 # pitchref 1;
; dll outvec 4 3 # pitchref 2;
; dll outvec 4 4 # pitchref 3;
; dll outvec 4 5 # Emerg. stop;
; Input from pitch servo
dll inpvec 4 1 # pitch 1;
dll inpvec 4 2 # pitch 2;
dll inpvec 4 3 # pitch 3;
; Check tower clearence
dll inpvec 5 1 # Bltip tow min d [m];
; general constant 1.0 ; constant 1.0 - to mesure activity of flap in terms of displacement
; - Check on flap control:
; ; - From flap controller: -
; dll type2_dll cyclic_flap_controller inpvec 1 # Ref flap signal bl 1 [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 2 # Ref flap signal bl 2 [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 3 # Ref flap signal bl 3 [deg] ;
; ; - Mbc values
; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ;
; ; - Check Gains - ;
; dll type2_dll cyclic_flap_controller inpvec 10 # lead angle [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 11 # scaling on rat pow [-] ;
; dll type2_dll cyclic_flap_controller inpvec 12 # actual kp [deg/kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 13 # actual ki [deg/kNms] ;
; dll type2_dll cyclic_flap_controller inpvec 14 # actual kd [deg s/kNm] ;
; ; - Actual deflections -
; aero beta 1 1 ;
; aero beta 2 1 ;
; aero beta 3 1 ;
; ; - Mbc values
; dll type2_dll cyclic_flap_controller inpvec 4 # momvec mbc cos [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 5 # momvec mbc sin [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 6 # momvec mbc filt cos [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 7 # momvec mbc filt sin [kNm] ;
; dll type2_dll cyclic_flap_controller inpvec 8 # flap mbc cos [deg] ;
; dll type2_dll cyclic_flap_controller inpvec 9 # flap mbc sin [deg] ;
end output;
;
exit;
### Standard Output
#PBS -N dlc01_steady_wsp10_noturb
#PBS -o ./pbs_out/dlc01_demos/dlc01_steady_wsp10_noturb.out
### Standard Error
#PBS -e ./pbs_out/dlc01_demos/dlc01_steady_wsp10_noturb.err
#PBS -W umask=003
### Maximum wallclock time format HOURS:MINUTES:SECONDS
#PBS -l walltime=04:00:00
#PBS -l nodes=1:ppn=1
### Queue name
#PBS -q workq
### Create scratch directory and copy data to it
cd $PBS_O_WORKDIR
echo "current working dir (pwd):"
pwd
cp -R ./demo_dlc_remote.zip /scratch/$USER/$PBS_JOBID
echo ""
echo "Execute commands on scratch nodes"
cd /scratch/$USER/$PBS_JOBID
pwd
/usr/bin/unzip demo_dlc_remote.zip
mkdir -p htc/dlc01_demos/
mkdir -p res/dlc01_demos/
mkdir -p logfiles/dlc01_demos/
mkdir -p turb/
cp -R $PBS_O_WORKDIR/htc/dlc01_demos/dlc01_steady_wsp10_noturb.htc ./htc/dlc01_demos/
cp -R $PBS_O_WORKDIR/../turb/none*.bin turb/
time WINEARCH=win32 WINEPREFIX=~/.wine32 wine hawc2-latest ./htc/dlc01_demos/dlc01_steady_wsp10_noturb.htc &
### wait for jobs to finish
wait
echo ""
echo "Copy back from scratch directory"
cd /scratch/$USER/$PBS_JOBID
mkdir -p $PBS_O_WORKDIR/res/dlc01_demos/
mkdir -p $PBS_O_WORKDIR/logfiles/dlc01_demos/
mkdir -p $PBS_O_WORKDIR/animation/
mkdir -p $PBS_O_WORKDIR/../turb/
cp -R res/dlc01_demos/. $PBS_O_WORKDIR/res/dlc01_demos/.
cp -R logfiles/dlc01_demos/. $PBS_O_WORKDIR/logfiles/dlc01_demos/.
cp -R animation/. $PBS_O_WORKDIR/animation/.
echo ""
echo "COPY BACK TURB IF APPLICABLE"
cd turb/
for i in `ls *.bin`; do if [ -e $PBS_O_WORKDIR/../turb/$i ]; then echo "$i exists no copyback"; else echo "$i copyback"; cp $i $PBS_O_WORKDIR/../turb/; fi; done
cd /scratch/$USER/$PBS_JOBID
echo "END COPY BACK TURB"
echo ""
echo ""
echo "following files are on the node (find .):"
find .
exit
### Standard Output
#PBS -N dlc01_steady_wsp8_noturb
#PBS -o ./pbs_out/dlc01_demos/dlc01_steady_wsp8_noturb.out
### Standard Error
#PBS -e ./pbs_out/dlc01_demos/dlc01_steady_wsp8_noturb.err
#PBS -W umask=003
### Maximum wallclock time format HOURS:MINUTES:SECONDS
#PBS -l walltime=04:00:00
#PBS -l nodes=1:ppn=1
### Queue name
#PBS -q workq
### Create scratch directory and copy data to it
cd $PBS_O_WORKDIR
echo "current working dir (pwd):"
pwd
cp -R ./demo_dlc_remote.zip /scratch/$USER/$PBS_JOBID
echo ""
echo "Execute commands on scratch nodes"
cd /scratch/$USER/$PBS_JOBID
pwd
/usr/bin/unzip demo_dlc_remote.zip
mkdir -p htc/dlc01_demos/
mkdir -p res/dlc01_demos/
mkdir -p logfiles/dlc01_demos/
mkdir -p turb/
cp -R $PBS_O_WORKDIR/htc/dlc01_demos/dlc01_steady_wsp8_noturb.htc ./htc/dlc01_demos/
cp -R $PBS_O_WORKDIR/../turb/none*.bin turb/
time WINEARCH=win32 WINEPREFIX=~/.wine32 wine hawc2-latest ./htc/dlc01_demos/dlc01_steady_wsp8_noturb.htc &
### wait for jobs to finish
wait
echo ""
echo "Copy back from scratch directory"
cd /scratch/$USER/$PBS_JOBID
mkdir -p $PBS_O_WORKDIR/res/dlc01_demos/
mkdir -p $PBS_O_WORKDIR/logfiles/dlc01_demos/
mkdir -p $PBS_O_WORKDIR/animation/
mkdir -p $PBS_O_WORKDIR/../turb/
cp -R res/dlc01_demos/. $PBS_O_WORKDIR/res/dlc01_demos/.
cp -R logfiles/dlc01_demos/. $PBS_O_WORKDIR/logfiles/dlc01_demos/.
cp -R animation/. $PBS_O_WORKDIR/animation/.
echo ""
echo "COPY BACK TURB IF APPLICABLE"
cd turb/
for i in `ls *.bin`; do if [ -e $PBS_O_WORKDIR/../turb/$i ]; then echo "$i exists no copyback"; else echo "$i copyback"; cp $i $PBS_O_WORKDIR/../turb/; fi; done
cd /scratch/$USER/$PBS_JOBID
echo "END COPY BACK TURB"
echo ""
echo ""
echo "following files are on the node (find .):"
find .
exit
### Standard Output
#PBS -N dlc01_steady_wsp9_noturb
#PBS -o ./pbs_out/dlc01_demos/dlc01_steady_wsp9_noturb.out
### Standard Error
#PBS -e ./pbs_out/dlc01_demos/dlc01_steady_wsp9_noturb.err
#PBS -W umask=003
### Maximum wallclock time format HOURS:MINUTES:SECONDS
#PBS -l walltime=04:00:00
#PBS -l nodes=1:ppn=1
### Queue name
#PBS -q workq
### Create scratch directory and copy data to it
cd $PBS_O_WORKDIR
echo "current working dir (pwd):"
pwd
cp -R ./demo_dlc_remote.zip /scratch/$USER/$PBS_JOBID
echo ""
echo "Execute commands on scratch nodes"
cd /scratch/$USER/$PBS_JOBID
pwd
/usr/bin/unzip demo_dlc_remote.zip
mkdir -p htc/dlc01_demos/
mkdir -p res/dlc01_demos/
mkdir -p logfiles/dlc01_demos/
mkdir -p turb/
cp -R $PBS_O_WORKDIR/htc/dlc01_demos/dlc01_steady_wsp9_noturb.htc ./htc/dlc01_demos/
cp -R $PBS_O_WORKDIR/../turb/none*.bin turb/
time WINEARCH=win32 WINEPREFIX=~/.wine32 wine hawc2-latest ./htc/dlc01_demos/dlc01_steady_wsp9_noturb.htc &
### wait for jobs to finish
wait
echo ""
echo "Copy back from scratch directory"
cd /scratch/$USER/$PBS_JOBID
mkdir -p $PBS_O_WORKDIR/res/dlc01_demos/
mkdir -p $PBS_O_WORKDIR/logfiles/dlc01_demos/
mkdir -p $PBS_O_WORKDIR/animation/
mkdir -p $PBS_O_WORKDIR/../turb/
cp -R res/dlc01_demos/. $PBS_O_WORKDIR/res/dlc01_demos/.
cp -R logfiles/dlc01_demos/. $PBS_O_WORKDIR/logfiles/dlc01_demos/.
cp -R animation/. $PBS_O_WORKDIR/animation/.
echo ""
echo "COPY BACK TURB IF APPLICABLE"
cd turb/
for i in `ls *.bin`; do if [ -e $PBS_O_WORKDIR/../turb/$i ]; then echo "$i exists no copyback"; else echo "$i copyback"; cp $i $PBS_O_WORKDIR/../turb/; fi; done
cd /scratch/$USER/$PBS_JOBID
echo "END COPY BACK TURB"
echo ""
echo ""
echo "following files are on the node (find .):"
find .
exit
File added