1.Aerodyn简介
Aerodyn即空气动力载荷,是空气动力学里面的重要概念,在航空,航天,及风力发电机领域有着广阔的应用。我们现在讨论的Aerodyn是专指风力发电机上应用的,由美国NREL(National Renewable Energy Laboratory)提供的空气动力载荷算法。因为NREL的无私提供,使得现在市场上风力发电机领域中的相关软件均使用的该算法,如Adams,Simpack,LM.Motion等,并且Adams 早在90年代就已经和NREL合作了,也是最早和NREL合作的专业动力学软件。
我们知道风力发电机是一个能量转换装置,通过巨大的叶片将风能转化成机械系统的动能,再通过发电机产生电能,从外表看一般是三个叶片一个塔柱,感觉比较简单,但是它的内部是很复杂的。风能推动叶片旋转,由轮毂带动风机主轴转动,后面连接有变速箱,一般是行星齿轮结构的,为的是大幅度提升转速,最终与发电机输入轴相连进行发电。目前风电行业的主要问题是:一风机设计存有很多问题,这是我们仿真行业要解决的问题;二是并网问题,这个属于国家战略层面的。这个空气动力载荷的计算,不是有限元计算,二是刚体-柔体动力学计算。空气动力载荷变大时,叶片变形也就变大,攻角随之改变,因此这个过程需要大量的迭代计算才能得到较为准确的结果。一般不适用有限元方法计算,因为计算量太大,行业中通常选用模态近似方法模拟叶片等部件。如下关联图:
通过上面的简单阐述,我们知道空气动力是风机的驱动之源,因此在进行风机的仿真,尤其是研究整机或者叶片时,空气动力对其影响是巨大的。如果没有一个好的空气动力载荷算法,所有的一切无从谈起。通过对市场上主流软件的现状分析,以及NREL的长期努力,NREL的空气动力载荷算法得到了广大风机设计人员的认同。Adams很早就选用了areodyn的这一算法,将其作为Adams的一个用户子程序集成进来使用,但是aerodyn涉及到得层面比较多,如自身计算程序,风能风向程序,接口程序,FAST模型程序等,需要将这些通过特定编译器生成Adams可用的动态链接库,才可供Adams程序调用。因此,本文将说明aerodyn算法到Adams可用动态链接库的生成过程。
2.准备工作
2.1编译器的准备工作
因为aerodyn算法以及相关的接口文件等,都是使用Fortran写就的,因此要生成相关的动态链接库,必须要有Fortran编译器的支持才行,而且在这个过程中有些工作还需要由C编译器完成,因此也需要有C编译器的支持。
本次工作编译器版本:
〖1〗Fortran 9.1
〖2〗Visual Studio 2005
安装次序:
一般是第一安装Vc,其次安装Fortran,最后安装Adams,这样的话不需要手动设置对应的批处理文件,否则需要在对应的批处理文件中指定正确的路径才行。
若果在机器上这三种软件都配置好,那么在cmd窗口中应该有如图所示的内容:
其中fort是Fortran的编译器调用命令,cl是Vc编译器的调用命令。
2.2相关文件的搜集工作
在本次过程中,需要如下内容支持,都来自NREL的官网。
- A2AD,aerodyn与adams的接口程序
- AD,aerodyn的空气动力载荷计算程序
- FASR,相关模型程序
- NWTC,相关库文件
找到这些文件,释放到某一硬盘位置,如c:adamsaerodyn之下。
下图是接口程序的部分内容:
3.具体操作
前期准备工作已经完备,剩下的工作就是将前面的那些文件规划好,并告诉编译器什么时候执行哪一个操作命令,形成批处理文件,自动完成这个过程,生成我们要求的动态链接库文件。
- 在A2AD的DLL文件夹下找到CompileLinkA2AD,
- 对CompileLinkA2AD进行修改:
1.修改编译器路径,这里只用修改Fortran 的因为Vc的可以通过Fortran自动找到。
SET IVF_LOC="C:Program Files (x86)IntelCompilerFortran9.1IA32Bin"
2.修改下载文件路径,
SET NWTC_Lib_Loc=C:adamsaerodynNWTC_Lib_v1.02.00Source
SET AeroDyn_Loc=C:adamsaerodynAD_v130000a-bjjSource
SET Wind_Loc=C:adamsaerodynAD_v130000a-bjjSourceInflowWindSource
SET FAST_Loc=C:adamsaerodynFAST_v70000a-bjjSource
SET A2AD_Loc=C:adamsaerodynA2AD_v130000a-bjjSource
3.更改adams求解器版本
我这里选用的是md adams 2011
ECHO Linking ADAMS2AD and AeroDyn routines with MD ADAMS 2011:
CALL MDADAMS2011 cr-user n %ROOT_NAME%.obj %ROOT_NAME%f.obj
-n %ROOT_NAME%2011.dll exit < NewLine.txt
- 在cmd窗口中通过cd 命令调整执行路径,然后执行CompileLinkA2AD将出现如下过程:
1.第一部分整合源文件
Microsoft Windows [版本6.1.7600]
版权所有(c) 2009 Microsoft Corporation。保留所有权利。
C:Userscnzc8469>cd "C:adamsaerodynA2AD_v130000a-bjjDLL"
C:adamsaerodynA2AD_v130000a-bjjDLL>CompileLinkA2AD
C:adamsaerodynNWTC_Lib_v1.02.00SourceSingPrec.f90
C:adamsaerodynNWTC_Lib_v1.02.00SourceSysIVF.f90
C:adamsaerodynNWTC_Lib_v1.02.00SourceNWTC_IO.f90
C:adamsaerodynNWTC_Lib_v1.02.00SourceNWTC_Num.f90
C:adamsaerodynNWTC_Lib_v1.02.00SourceNWTC_Aero.f90
C:adamsaerodynNWTC_Lib_v1.02.00SourceNWTC_Library.f90
C:adamsaerodynAD_v130000a-bjjSourceInflowWindSourceSharedInflowDefs.f90
C:adamsaerodynAD_v130000a-bjjSourceInflowWindSourceHHWind.f90
C:adamsaerodynAD_v130000a-bjjSourceInflowWindSourceFFWind.f90
C:adamsaerodynAD_v130000a-bjjSourceInflowWindSourceFDWind.f90
C:adamsaerodynAD_v130000a-bjjSourceInflowWindSourceCTWind.f90
C:adamsaerodynAD_v130000a-bjjSourceInflowWindSourceUserWind.f90
C:adamsaerodynAD_v130000a-bjjSourceInflowWindSourceInflowWindMod.f90
C:adamsaerodynAD_v130000a-bjjSourceSharedTypes.f90
C:adamsaerodynAD_v130000a-bjjSourceAeroMods.f90
C:adamsaerodynAD_v130000a-bjjSourceGenSubs.f90
C:adamsaerodynAD_v130000a-bjjSourceAeroSubs.f90
C:adamsaerodynAD_v130000a-bjjSourceAeroDyn.f90
C:adamsaerodynFAST_v70000a-bjjSourceUserSubs.f90
C:adamsaerodynFAST_v70000a-bjjSourceUserVSCont_KP.f90
C:adamsaerodynFAST_v70000a-bjjSourcePitchCntrl_ACH.f90
C:adamsaerodynFAST_v70000a-bjjSourceFFTMod.f90
C:adamsaerodynFAST_v70000a-bjjSourceHydroCalc.f90
C:adamsaerodynA2AD_v130000a-bjjSourceFAST_Params.f90
C:adamsaerodynA2AD_v130000a-bjjSourceA2AD_Mod.f90
C:adamsaerodynA2AD_v130000a-bjjSourceAdams_Subs.f90
已复制 1 个文件。
已复制 1 个文件。
2.调用编译器
Using Intel Visual Fortran
Intel(R) Visual Fortran Compiler 9.1.039 Build Environment for 32-bit applications
Copyright (C) 1985-2007 Intel Corporation. All rights reserved.
Setting environment for using Microsoft Visual Studio 2005 x86 tools.
3.开始编译
Compiling ADAMS2AD and AeroDyn routines to create ADAMS.obj:
Intel(R) Fortran Compiler for 32-bit applications, Version 9.1 Build 20071017
Z Package ID: W_FC_C_9.1.039
Copyright (C) 1985-2007 Intel Corporation. All rights reserved.
4.进行链接
Linking ADAMS2AD and AeroDyn routines with MD ADAMS 2011:
Linking Adams/Solver (User) DLL...
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.
"ADAMS.obj"
"ADAMSf.obj"
"-out:ADAMS2011.dll"
-def:mysolver.def
-debug:none
-nodefaultlib
-dll
"-libpath:d:MSC~1.SOFMD_Adams2011win32"
msvcrt.lib msvcprt.lib
ws2_32.lib
kernel32.lib
libifcoremd.lib libmmd.lib libifportmd.lib
libirc.lib
asutility_imp.lib mdiloader_imp.lib
abgtire_imp.lib vpgutility_imp.lib
tire_imp.lib amd_imp.lib
5.生成要求的动态链接库
正在创建库ADAMS2011.lib 和对象ADAMS2011.exp
Adams/Solver (User) has been linked...
Microsoft (R) Manifest Tool version 5.2.3790.2075
Copyright (c) Microsoft Corporation 2005.
All rights reserved.
这样就完成了动态链接库的生成,生成的文件在CompileLinkA2AD相同文件之中。
Adams这时就可以调用生成的动态链接库,为风机叶片添加动力载荷了。