首页 > 技术 > MSC > > Aerodyn动态链接库生成

Aerodyn动态链接库生成

作者:Simwe    来源:MSC    发布时间:2011-08-19    收藏】 【打印】  复制连接  【 】 我来说两句:(0逛逛论坛

1.Aerodyn简介

    Aerodyn即空气动力载荷,是空气动力学里面的重要概念,在航空,航天,及风力发电机领域有着广阔的应用。我们现在讨论的Aerodyn是专指风力发电机上应用的,由美国NREL(National Renewable Energy Laboratory)提供的空气动力载荷算法。因为NREL的无私提供,使得现在市场上风力发电机领域中的相关软件均使用的该算法,如Adams,Simpack,LM.Motion等,并且Adams 早在90年代就已经和NREL合作了,也是最早和NREL合作的专业动力学软件。

 1.jpg

2.jpg

    我们知道风力发电机是一个能量转换装置,通过巨大的叶片将风能转化成机械系统的动能,再通过发电机产生电能,从外表看一般是三个叶片一个塔柱,感觉比较简单,但是它的内部是很复杂的。风能推动叶片旋转,由轮毂带动风机主轴转动,后面连接有变速箱,一般是行星齿轮结构的,为的是大幅度提升转速,最终与发电机输入轴相连进行发电。目前风电行业的主要问题是:一风机设计存有很多问题,这是我们仿真行业要解决的问题;二是并网问题,这个属于国家战略层面的。这个空气动力载荷的计算,不是有限元计算,二是刚体-柔体动力学计算。空气动力载荷变大时,叶片变形也就变大,攻角随之改变,因此这个过程需要大量的迭代计算才能得到较为准确的结果。一般不适用有限元方法计算,因为计算量太大,行业中通常选用模态近似方法模拟叶片等部件。如下关联图:

 3.jpg 

    通过上面的简单阐述,我们知道空气动力是风机的驱动之源,因此在进行风机的仿真,尤其是研究整机或者叶片时,空气动力对其影响是巨大的。如果没有一个好的空气动力载荷算法,所有的一切无从谈起。通过对市场上主流软件的现状分析,以及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窗口中应该有如图所示的内容:

 4.jpg 

   其中fort是Fortran的编译器调用命令,cl是Vc编译器的调用命令。

2.2相关文件的搜集工作

    在本次过程中,需要如下内容支持,都来自NREL的官网。

  • A2AD,aerodyn与adams的接口程序
  • AD,aerodyn的空气动力载荷计算程序
  • FASR,相关模型程序
  • NWTC,相关库文件

找到这些文件,释放到某一硬盘位置,如c:adamsaerodyn之下。

下图是接口程序的部分内容:

5.jpg

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这时就可以调用生成的动态链接库,为风机叶片添加动力载荷了。

   
分享到: 收藏