用户登录

你在这里

将Abaqus与空气动力学BEM代码耦合起来计算气动弹性响应

对于我的毕业工作(荷兰代尔夫特理工大学的学生),我试图模拟风力涡轮机转子的气动弹性行为。为此,我使用了一个Abaqus风力涡轮机叶片模型(这是一个具有不同纤维层和相应方向的复合结构)。气动力是通过BEM代码(叶片元素动量理论)计算的,这是一个简化的工程气动代码:速度快,但仍然很好。使用CFD来计算负载是不可能的,因为它需要太多的时间来计算。

计算气动弹性响应的问题是,通过使用两个独立的求解器(Abaqus和自己编写的但非常简单的BEM气动代码),它们必须相互通信。我们称这种方法为交错方法:将固有耦合的物理问题分成两个,一次解决一个。
我从施加在结构上的假定初始荷载开始。Abaqus计算变形。变形反馈给气动代码,气动代码重新计算气动力。力量回到Abaqus改变变形等…这个循环一直持续到达到收敛,真正的气动弹性变形是已知的。通过这样做,空气动力学BEM代码和Abaqus将运行大约20次(取决于耦合空气结构收敛的速度)。

就我目前的理解(我不是Abaqus,也不是FEM专家),在Abaqus中有两种实现这种耦合方法的方法:使用用户子例程或通过phyton接口。

然而,对于用户子例程,出现了一些复杂情况。我假设使用用户子例程DLOAD(定义分布式负载)。实际气动载荷变化的跨度明智和弦明智沿叶片(如何实现在一个表面?)。为了模拟Abaqus和空气动力学代码之间的几个耦合步骤,我想手动定义35个步骤。每一步都调用用户子例程DLOAD来计算气动载荷。为了具有相关性,用户子例程DLOAD应该在每一步计算负载作为当前叶片状态(变形)的函数。然而,是否有可能在用户子例程DLOAD中调用当前叶片状态(变形)来用作气动代码的输入?
在每一步中也应该调用收敛标准。它应该能够抽象出前一步的变形,并将其与当前的变形进行比较。如果收敛条件满足,它应该退出Abaqus分析,并将最终的变形写入输出数据库。

python方法似乎没有那么复杂。调用模型并读取前一步的输出数据库,以提取刀片服务器状态。计算气动载荷,将其应用到模型上,将响应写入新的输出数据库,以供下一步使用。诸如此类。然而,与用户子例程攻击相比,这种方法是否会更慢呢?

任何关于在Abaqus中耦合气动弹性问题的想法都是非常感激的。

评论

你没有这么明确地说,但我推断你
问题是静态的而不是动态的(即惯性力
并不重要)。

我想我应该先说simulia文档
解决这类耦合问题的方法是使用
MpCCI联合仿真方法。可能你已经看过了
在此,并认为这是太复杂或没有必要
针对你的特殊问题。如果流体和结构
不是太强耦合,一个更简单的方法可能工作得很好。

所以,让我们考虑其他方法,比如
你的注意。在回答你的具体问题之前
让我说一些关于耦合外部代码的事情
与有限元分析。在一个步骤中,在每个增量(在静态的
问题可能只有一个),abaqus执行Newton-Raphson
迭代求解非线性方程。理想情况下你会
比如每次迭代都要重新计算流体力,因为
位移在每次迭代中都是变化的。当abaqus决定
如果得到了收敛解,问题就解决了。
不幸的是,我不知道如何告诉abaqus提供位移
向量。就目前而言
我知道,你能做的就是最后得到位移向量
聚合增量。

因此,为了回答您关于DLOAD的具体问题,您可以
在运行期间访问abaqus结果数据库(ODB文件)
读取最后一个收敛增量处的位移。一个做事情的好地方
这是外部子程序UEXTERNALDB。您将需要使用已文档化的
c++接口对ODB做实际操作。当
参数LOP=1,你可以读取当前位移,做你的边界元
计算,并保存压力(可能到一个外部文件)
所以它们可以用于DLOAD例程。

但是,您不必预先定义abaqus步骤的数量
使用这种方法。具有多个增量的单个非线性步骤
会达到同样的目标。您可能需要预先定义一些
增量数。尽管你可以评估它的收敛性
进程(也可能在增量末尾的UEXTERNALDB中),
如果解决方案没有收敛,您就不能轻松地添加更多增量。

至于第二种方法,使用Python,我从来没有
我自己也做过。类似的可行方法是调用
Abaqus在一系列重新启动运行。在每次重启运行中,一个小
程序读取输出数据库,计算新的压力负荷,
编写一个新的重启输入甲板,并调用abaqus。通常,这
进程由一个小的操作系统shell脚本控制。
这种方法的优点是可以执行尽可能多的abaqus
进行必要的分析以达到收敛。

祝你好运。

attash3099的照片

我需要帮助

Abaqus +航空代码的细节

格林先生,非常感谢你对这个问题的看法。

事实上,对于初学者来说,只考虑静态情况。

我已经研究了MpCCI耦合服务器的可能性,但由于这个BEM代码只生成一组升力和力矩,沿叶片分布为离散点,因此已经绑定了该路线。这是一个非常合理的任务,将这个单一的加载点转化为持续的压力扰动(每个径向叶片截面)。然而,对于空气动力学边界元代码来说,并没有网格这样的东西。因此,MpCCI耦合的附加价值(以及复杂性和成本)被认为不重要。

亲爱的大卫,

我是航空航天工程的本科生,我试图在ANSYS中对风力涡轮机转子进行“静态”气动弹性分析。我早些时候试图使用ANSYS Multifield在Workbench上耦合结构和空气动力学领域,然而,因为我在这方面不太成功,因此,我现在回到MPCCI和机械APDL和Fluent。

有几件事我想问你:

1.为什么使用ABAQUS而不是ANSYS进行模拟?

2.我们实际上如何定义一个风力涡轮机转子的“静态”气动弹性行为。基于我对这一课题有限的理解,我相信在风和气动弹性考虑的作用下叶片的瞬态行为将需要更大的计算能力,因此转子的稳态旋转将是足够的。(参考静态分析。如果这是一个无效的假设,请纠正我。

3.为什么不是CFD,为什么是BEM?把计算时间放在一边。(就像我之前假设的那样,转子的稳态旋转不需要像Fluent中的6-DOF求解器那样多的时间)。

最好的问候,

AUN

我在MpCCI中有这个错误,你能帮我吗?

正在验证MPICH-1服务守护程序“mpd.exe”…正在停止MPICH-1服务守护程序“mpd.exe”,请等待…

正在启动MPICH-1服务守护进程“mpd.exe”,请等待…

Mpccish启动服务器:

无法连接到MPICH-1服务守护进程“mpd.exe”。

收到错误信息:

"失败:无法从注册中心读取凭据。"

在使用MpCCI之前,请启动MPICH-1服务守护进程“mpd.exe”。

订阅“耦合Abaqus与空气动力学BEM代码以计算气动弹性响应”的评论

最近的评论

更多的评论

辛迪加

订阅辛迪加