logo资料库

基于MATLAB_SIMULINK与FLUENT的协同仿真方法研究.pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
第 19 卷第 8 期 系 统 仿 真 学 报© Vol. 19 No. 8 2007 年 4 月 Journal of System Simulation Apr., 2007 基于 MATLAB/SIMULINK 与 FLUENT 的协同仿真方法研究 谢海斌,张代兵,沈林成 (国防科学技术大学机电工程与自动化学院, 湖南长沙 410073) 摘 要:以水下机器人的动态行为仿真为背景,针对单一环境下仿真水下机器人动态行为和流体动 力学问题存在的局限性,提出了基于 MATLAB/Simulink 与 FLUENT 协同仿真的解决方案。首先 介绍了 MATLAB/Simulink 与 FLUENT 的运行机制,分析了两个仿真环境实现协同仿真的技术可行 性并提出了三种可行的接口方式。以此为基础,重点研究了 FLUENT 中嵌入 MATLAB/ Simulink 与 MATLAB/Simulink 中嵌入 FLUENT 两种嵌入式协同仿真方式以及并行协同仿真方式的基本思 想和具体实现方法。此协同仿真方法不仅对于研究流体环境中物体运动与流体动力紧密耦合的问题 提供了有效手段,也为研究其它与流体紧密耦合的物理现象提供了解决思路。 关键词:水下机器人;协同仿真;运动仿真;流体动力仿真;MATLAB/Simulink;FLUENT 中图分类号:TP391.9 文献标识码:A 文章编号:1004-731X (2007) 08-1824-04 Collaborative Simulation Based on MATLAB/Simulink and FLUENT (College of Mechatronics Engineering and Automation, National University of Defense Technology, Changsha, 410073, China ) XIE Hai-bin, ZHANG Dai-bing, SHEN Lin-cheng Abstract: Aiming at the dynamic behaviors simulation of underwater vehicle, a collaborative simulation scheme was proposed based on MATLAB/Simulink and FLUENT to overcome the limitation due to using single simulation platform to simulating the dynamic behaviors and hydrodynamics of underwater vehicle. The technical feasibilities were analyzed utilizing MATLAB/Simulink and FLUENT to realize collaborative simulation and three interface modes were proposed through introducing the operational mechanism of the two simulation environments. Based on the above interface modes, the fundamental principles and their implementation approaches of embedded collaborative simulation, including two modes of MATLAB/Simulink embedded in FLUENT and FLUENT embedded in MATLAB/Simulink, as well as parallel collaborative simulation were mainly studied. The collaborative simulation scheme discussed not only supplies an effective method to solve the close coupling problem between movement of object in fluid and hydrodynamics, but also offers a reference clew to research on the other physical phenomena coupling with fluid. Key words: Underwater Vehicle; Collaborative Simulation; Kinematics Simulation; Hydrodynamics Simulation; MATLAB/ Simulink; FLUENT 引 言1 由于 FLUENT 和 MATLAB/Simulink 各有专长,在功能 上无法相互替代,它们通常是分别针对水下机器人的流体动 水下机器人动态行为的精确仿真以及高性能运动姿态 力学仿真和动态系统建模、设计和仿真问题独立使用的。然 控制器设计依赖于准确的载体与推进系统的水动力学模型。 而,水下机器人的动态行为与流体动力载荷之间是紧密耦合 众所周知,以各种流体试验获取的流体动力数据进行模型辨 识是一种时间与费用成本高昂的过程。而 FLUENT 等计算 流体力学(CFD)软件以近代流体力学与数值方法为理论基 础,以计算机为工具,应用各种离散化方法,可对流体力学 的各类问题进行数值实验、计算机模拟和分析研究,从而可 以在很大程度上替代耗资巨大的流体动力学实验[1],已经成 为水中载体及其推进系统的流体动力学建模、仿真与分析的 重要工具。目前,水下机器人动态系统建模与分析、控制器 设 计 与 仿 真 等 主 要 是 依 赖 MATLAB/Simulink 。 因 此 , FLUENT 和 MATLAB/Simulink 是支撑水下机器人技术研究 的两个重要的软件工具。 收稿日期:2006-03-20 修回日期:2006-06-13 基金项目:国家部委预研基金资助(D2820061301)。 作者简介:谢海斌(1977-), 男, 西安人, 博士生, 研究方向为仿鱼机器人; 张代兵(1977-), 男, 重庆人, 博士生, 研究方向为仿鱼机器人; 沈林成 (1965-), 男, 江苏人, 博士, 教授, 研究方向为控制科学与工程。 并且互为条件的,在单一环境下对其进行仿真时,均难以获 得与水下机器人真实工况及运行状态相符的结果,无法满足 准确仿真水下机器人整个动态行为的要求,因此需要构建 MATLAB/Simulink 和 FLUENT 相结合的协同仿真环境,以 充分发挥各仿真平台的优势、消除在单一平台中进行仿真的 局限性[2-3]。本文就是以水下机器人的动态行为仿真为背景, 主要研究 MATLAB/Simulink 与 FLUENT 的协同仿真机制、 技术可行性及其实现方法。 1 水下机器人动态行为协同仿真机制 利用 FLUENT 和 MATLAB/Simulink 协同仿真方法处理 水下机器人动态行为与流体动力载荷之间耦合问题的基本 思路是:将 FLUENT 作为 MATLAB/Simulink 中的流体动力 计算引擎,实时提供载体在当前运动参数和控制参数下的流 体动力载荷,MATLAB/Simulink 再根据当前受力情况计算 • 1824 •
第 19 卷第 8 期 Vol. 19 No. 8 2007 年 4 月 谢海斌, 等:基于 MATLAB/SIMULINK 与 FLUENT 的协同仿真方法研究 Apr., 2007 下一时刻载体的运动参数和推进系统的控制参数。这样 FLUENT 实际上就充当了一个广义的流体动力仿真模块。此 外,作为协同仿真的另一种形式,还可将 MATLAB/Simulink 的算法模块嵌入到 FLUENT 中,在每个时间迭代步,计算 水下机器人的运动参数以确定载体动网格边界条件。在协同 仿真模式下,FLUENT 和 MATLAB/Simulink 的仿真条件都 是根据当前系统运行条件解算确定的,因此与实际情况更加 符合,仿真的准确度与置信度更高。将协同仿真机制与水下 机器人控制系统设计结合起来,如图 1 所示。 期 望 的 运 动 与 姿 态 参 数 Matlab/Simulink 水 下 机 器 人 运 动 与 姿 态 控 制 器 水 下 机 器 人 控 制 知 识 库 水 动 力 参 数 载 体 运 动 参 数 数 参 动 运 体 载 Matlab/Simulink 水 下 机 器 人 运 动 仿 真 推 控 系 统 控 制 参 数 FLUENT 载 体 及 推 控 执 行 系 统 流 体 控 制 面 水 动 力 仿 真 图 1 水下机器人协同仿真机制原理图 2 协同仿真可行性分析 2.1 MATLAB 运行机制 MATLAB 属于编程型开发平台,其 M 语言既具有结构 化的控制语句,又有面向对象编程的特性,编程风格更符合 Simulink 支持参考模型和模型封装以建立多级结构化模型, 支持仿真过程中的在线调参功能以加速设计过程。Simulink 还集成了基于有限状态机理论的对复杂事件驱动系统逻辑 行为进行建模与仿真的图形化用户交互工具 Stateflow,从而 大大扩展了 Simulink 动态系统建模的适用范围和仿真能力。 Simulink 可通过菜单运行仿真,也可使用命令行(或 M 程序)进行批处理,该方法适用于需重复运行仿真或者分析、 比较在不同参数下的仿真结果的场合,也可用于实现 Monte Carlo 仿真。对较复杂的系统还可以用“加速模式”将模型 编译后运行。 Simulink 支持基于模型和单个模块的完善的 CallBack 机制,允许用户对模型的仿真过程进行定制,还支持通过 M 语 言 S 函 数 和 嵌 入 式 MATLAB 函 数 模 块 (Embedded MATLAB Function block ) 进 行 功 能 扩 展 , 从 而 实 现 与 MATLAB 的无缝集成。因此,Simulink 可直接利用 MATLAB 的各种命令和函数资源,实现更为复杂的系统建模与仿真任 务。 此外,MATLAB 的 RTW(Real-Time Workshop 和 Real-Time Workshop Embedded Coder)和 Stateflow Coder 还 可将 Simulink 模型与 Stateflow 框图转变为标准 C 代码或高 性能的嵌入式 C 代码,以用于加速仿真和实现快速控制原 型设计及硬件在回路仿真等,这种机制使用户可以实现从系 统级仿真到工程实现的无缝过渡,同时也为 Simulink 与其 它应用程序接口提供了的技术途径[3]。 2.3 FLUENT 运行机制 由于 FLUENT 具有丰富的物理模型、先进的数值方法、 并行处理能力以及强大的前后处理功能,目前已成为国内外 最流行的 CFD 软件之一。FLUENT 软件设计基于“CFD 计 算机软件群”的概念,从用户需求角度出发,针对各种复杂 人们的思维习惯,以矩阵为基本数据单位,编程效率和计算 流动的物理现象,采用不同的离散格式和数值方法,以期在 效率极高,可移植性良好,被称为第四代计算机语言。尤其 是 MATLAB 提供了极其丰富的库函数和近 30 多个专业领域 的工具箱(Toolbox)函数,使之除了具备卓越的数值计算 能力外,还提供了强大的数据可视化、符号计算、文字处理、 文件 I/O 操作、用户界面设计、模块化建模仿真和实时控制 等功能,为用户编写简洁紧凑、算法可靠、运行高效的用户 程序提供强大支持。 MATLAB 有命令行与 M 程序(脚本 M 程序或函数 M 程序)两种运行方式。MATLAB 的 Compiler 工具可将函数 M 程序编译成为 C 语言程序,同时,它还提供了可供 C 程 序调用的计算引擎,从而使用户能够充分利用 MATLAB 的 算法资源,也为 MATLAB 与其它软件接口提供了可能性[3]。 2.2 Simulink 运行机制 MATLAB 的 Simulink 工具是用于各种动态系统建模、 分析和仿真的图形交互环境。利用其丰富的功能块和专用模 型库(Blocksets)扩展资源,用户可以完全采用鼠标操作方 式 快 速 地 创 建 动 态 系 统 框 图 模 型 , 而 无 需 编 写 代 码 。 特定的领域内使计算速度、稳定性和精度等方面达到最佳组 合,从而高效率地解决各个领域的复杂流动计算问题[4]。 使用 FLUENT 处理问题的基本流程分为建模—网格划 分—求解—后处理四个阶段[4]。首先是通过机械 CAD 软件 (AutoCAD、UG、ProE、Solidworks 等)或直接使用 GAMBIT (FLUENT 专用的前置处理器)建立分析对象的实体模型, 并利用 GAMBIT 生成高质量的非结构化网格,以完成物理 空间到计算空间的映射。然后在 FLUENT 中导入网格文件 (mesh 文件),并通过定义求解器、物性条件以及边界条件 等完成计算环境的初始化之后,按照指定的迭代步长、步数 和计算收敛条件完成问题求解,仿真条件的设置及计算结果 分别存储为 case 与 data 文件。最后可使用 FLUENT 自带的 后处理工具或 TecPlot 等对计算结果进行后处理,包括数值 计算和结果的可视化(矢量图、等高线图和流线图等)。 FLUENT求解器支持GUI(Graphical User Interface)方 式和TUI(Text User Interface)方式两种运行机制,通过GUI方 式形成的用户界面操作序列或通过TUI方式输入的指令序列 • 1825 •
第 19 卷第 8 期 Vol. 19 No. 8 2007 年 4 月 系 统 仿 真 学 报 Apr., 2007 都可以存储为Journal文件,或直接使用TUI方式提供的指令 编写Journal文件,外部程序可以通过带Journal文件参数的方 式执行FLUENT,使其按照Journal文件中的指令序列自动执 行仿真任务。此外,对于非定长边界条件或动态网格等应用, FLUENT 提 供 了 基 于C 语 言 的 用 户 自 定 义 函 数 (UDF : User-defined Function)扩展功能,这样就为改进和完善模型, 处理个性化问题和给出更合理的边界条件提供了可能。 FLUENT的UDF求解过程如图2所示[5]。 User-Defined Profile DEFINE_INIT 开 始 循 环 DEFINE_ ADJUST 结 束 循 环 动 网 格 计 算 UDF DEFINE_EXECUTE_AT_END 是 是 否 满 足 收 敛 条 件 ? 否 求 解 N-S方 程 质 量 方 程 能 量 方 程 求 解 湍 流 方 程 修 正 物 质 属 性 ( 含 User-defined Properties) 求 解 漩 涡 扩 散 方 程 图 2 FLUENT 的 UDF 求解过程 FLUENT 的 Journal 脚本文件运行机制和 UDF 扩展功能 提供了通过 C 语言程序与 MATLAB/Simulink 进行接口,从 而实现两个软件系统协同仿真的技术途径。 2.4 MATLAB/Simulink 与 FLUENT 的接口方式 从 MATLAB/Simulink 与 FLUENT 的 运 行 机 制 可 知 , MATLAB与Simulink可利用M函数程序实现接口,进而可通过 C语言与其它应用程序实现接口,而FLUENT主要依赖journal 脚本文件(文本文件)和UDF(C语言程序),辅助以一定的 数据文件实现与其它应用程序的接口。因此,尽管两个软件 系统之间没有提供直接的协同仿真接口,但都可以与C语言程 序实现接口并具有文件操作能力,这就为两者之间通过C语言 和共享数据文件(或共享内存)的间接方式实现接口提供了 可能。实现两个软件系统的协同仿真存在3种接口方式: 1)将在MATLAB/Simulink中建立的水下机器人动力学 模型求解程序(或模块)通过MATLAB计算引擎或编译成C 函数,在FLUENT中的动网格边界条件UDF中调用。 2)将FLUENT作为MATLAB/Simulink中水下机器人载 体与推进系统流体控制面的流体动力计算模块,在M程序中 通过命令“!fluent 3dd -i journal”启动FLUENT以执行相应 的仿真任务。这种接口方式下,由于MATLAB/Simulink与 FLUENT没有可供直接传递参数的公共接口,因此只能通过 访问共享数据文件(或共享内存)以及利用文件I/O操作修 改FLUENT的Journal脚本文件中的相关参数的方式实现间 接的参数传递。 3)FLUENT与MATLAB/Simulink的仿真循环受控于一个 共享数据文件(或共享内存)中的相关标志位,使两个仿真 环境始终处于交替工作状态,以提供彼此需要的数据。这种 方式下,仿真循环中两个仿真环境以共享数据为中介,不存 在显式的参数传递过程,因此,MATLAB/Simulink可在M函 数中通过自带的文件I/O函数访问共享数据,FLUENT则要在 恰当的UDF中通过C语言提供的文件I/O函数访问共享数据。 3 协同仿真实现方法 下面就 2.4 中列举的三种接口方式,研究 MATLAB/ Simulink 与 FLUENT 协同仿真的几种具体实现方法。 3.1 嵌入式协同仿真 根据仿真目的的不同,可选择不同的嵌入方式。如果主 要是关心水中载体及其推进系统在各种运动参数和控制参数 下的受力情况,则仿真主要是在 FLUENT 环境中完成,因此 可以将 MATLAB/ Simulink 嵌入到 FLUENT 中;若主要是关 心载体的运动特性及控制器设计,仿真主要是在 MATLAB/ Simulink 环境中完成,因此可以将 FLUENT 嵌入到 MATLAB/ Simulink 中。下面分别介绍这两种嵌入式协同仿真方法。 3.1.1 FLUENT 中嵌入 MATLAB/ Simulink 以水下机器人运动参数及控制参数为输出,载体与推进 系统流体控制面所受的流体动力为输入,在 MATLAB 或 Simulink 中建立水下机器人动力学模型和设计控制器,利用 Compiler 编译成标准 C 函数或直接通过 MATLAB 计算引擎 调用的方式将其嵌入到 FLUENT 的动网格计算 UDF 中,整 个仿真任务在 FLUENT 环境中完成。其协同仿真的具体实 现方法如图 3 所示。 FLUENT环 境 动 网 格 计 算 UDF 计 算 各 关 注 计 算 域 的 六 分 量 流 体 动 力 调 用 水 下 机 器 人 动 力 学 方 程 求 解 程 序 计 算 动 网 格 边 界 条 件 求 解 : N-S方 程 、 质 量 方 程 、 能 量 方 程 求 解 湍 流 方 程 漩 涡 扩 散 方 程 是 终 止 计 算 ? 否 开 始 FLUENT进 程 读 入 case与 data文 件 设 置 仿 真 环 境 及 边 界 条 件 仿 真 初 始 化 运 行 仿 真 保 存 case与 data文 件 结 束 FLUENT进 程 MATLAB/Simulink环 境 水 下 机 器 人 动 力 学 模 型 输 入 为 载 体 及 推 控 执 行 系 统 流 体 控 制 面 所 受 的 六 分 量 流 体 动 力 MATLAB 计 算 引 擎 标 准 C程 序 Compiler 编 译 M函 数 RTW 编 译 Simulink 仿 真 模 型 输 出 参 数 为 水 下 机 器 人 的 运 动 参 数 与 控 制 参 数 图 3 FLUENT 中嵌入 MATLAB/ Simulink 3.1.2 MATLAB/ Simulink 中嵌入 FLUENT 将处理与 FLUENT 接口的全部操作编制成独立的 M 函 数程序,该 M 程序可直接作为一个嵌入式 MATLAB 函数模 块嵌入到 Simulink 中的动态系统仿真模型中或被其它 M 程 序调用。该函数以水下机器人的运动参数与控制参数为输 入,以载体及推进系统流体控制面所受的六分量流体动力为 输出。其协同仿真的具体实现方法如图 4 所示。 • 1826 •
第 19 卷第 8 期 Vol. 19 No. 8 2007 年 4 月 谢海斌, 等:基于 MATLAB/SIMULINK 与 FLUENT 的协同仿真方法研究 Apr., 2007 M函 数 输 入 参 数 为 水 下 机 器 人 的 运 动 参 数 与 控 制 参 数 Journal文 件 开 始 FLUENT进 程 开 始 cas与 dat文 件 读 入 cas与 dat文 件 设 置 仿 真 环 境 及 边 界 条 件 仿 真 初 始 化 运 行 仿 真 动 网 格 计 算 UDF: DEFINE_GEOM 读 取 水 下 机 器 人 运 动 参 数 与 控 制 参 数 计 算 动 网 格 边 界 条 件 求 解 : N-S方 程 、 质 量 方 程 、 能 量 方 程 求 解 湍 流 方 程 漩 涡 扩 散 方 程 否 收 敛 否 ? 是 UDF: DEFINE_EXECUT E_AT _END 计 算 各 关 注 计 算 域 的 六 分 量 流 体 动 力 将 计 算 结 果 写 入 参 数 传 递 文 件 修 改 Journal文 件 中 的 相 关 GUI设 置 参 数 修 改 水 下 机 器 人 运 动 参 数 与 控 制 参 数 参 数 传 递 文 件 通 过 带 Journal文 件 参 数 的 方 式 启 动 FLUENT 读 取 载 体 及 推 控 执 行 系 统 流 体 控 制 面 的 六 分 量 流 体 动 力 结 束 输 出 为 载 体 及 推 控 执 行 系 统 流 体 控 制 面 所 受 的 六 分 量 流 体 动 力 MATLAB/Simulink环 境 写入 SharedDATA 中或等待。以 Flag_run、Mdata 与 Fdata 构成的 3 位 2 进制数表示 SharedDATA 的状态,并行协同仿 真过程可表示成图 5 所示的有限状态机模型。其具体实现方 法如图 6 所示。 表 1 共享数据 SharedDATA 的定义格式 数据域 Flag_run 数据 类型 Mflag Fflag Mdata Fdata 布尔型 布尔型 布尔型 结构体 结构体 数据 含义 计算环境切 换标志 数据 更新源 MATLAB FLUENT MATLAB 数据写入 成功标志 FLUENT 数 据写入成 功标志 运动参数与 控制参数 流体动力 参数 MATLAB FLUENT MATLAB FLUENT F M M F 001 M F 100 F 111 011 M 000 M F M 110 F F M 图 5 并行协同仿真过程的有限状态机模型 M 010 共 享 数 据 文 件 或 共 性 内 存 FLUENT仿 真 启 动 FLUENT仿 真 MATLAB或 Simulink仿 真 启 动 MATLAB或 Simulink仿 真 仿 真 环 境 设 置 及 初 始 化 求 解 水 下 机 器 人 动 力 学 模 型 求 解 推 进 与 控 制 系 统 模 型 M函 数 或 嵌 入 式 MATLAB函 数 模 块 Shared DATA 1.Flag_Run 2.Mflag 3.Fflag 4.Mdata 5.Fdata 开 始 读 取 Shared DATA Flag_Run= 1? &Fflag=1? 是 否 输 出 读 入 的 Fdata Mflag=0? 否 令 Flag_Run= 0,Mflag=0 并 写 入 Shared DATA 将 Mdata写 入 Shared DATA 是 结 束 否 将 Mflag置 为 1并 写 入 Shared DATA 是 否 完 成 仿 真 任 务 ? 是 结 束 MATLAB或 Simulink仿 真 读 入 case与 data文 件 仿 真 环 境 与 边 界 条 件 设 置 及 初 始 化 UDF: DEFINE_ADJUST 开 始 读 取 Shared DATA 否 否 Fflag=0? 是 计 算 Fdata并 写 入 Shared DATA 将 Fflag置 为 1并 写 入 Shared DATA Flag_Run= 0? &Mflag=1 是 令 Flag_Run=1,Fflag=0 并 写 入 Shared DATA 结 束 动 网 格 计 算 UDF: DEFINE_GEOM 读 取 Shared DATA 中 的 Mdata 计 算 动 网 格 边 界 条 件 否 是 否 完 成 仿 真 任 务 ? 是 流 场 计 算 保 存 case与 data文 件 否 是 否 满 足 收 敛 条 件 ? 是 结 束 FLUENT仿 真 图 6 并行协同仿真实现方法 4 协同仿真运行性能分析 MATLAB/Simulink 与 Fluent 进行协同仿真过程中,计 算时间主要耗费在仿真环境初始化、模型求解与数据交换三 个步骤上。 嵌入式协同仿真模式需在每个时间迭代步都进行被嵌 入仿真环境的启动、初始化和关闭,而 Fluent 的初始化过程 尤为耗时(其依赖于网格文件与数据文件的大小)。并行协 同仿真模式无需上述过程,它只需在仿真运行之初启动两个 (下转第 1856 页) • 1827 • 保 存 cas与 dat文 件 结 束 FLUENT进 程 FLUENT环 境 F 101 图 4 MATLAB/ Simulink 中嵌入 FLUENT 其中 M 程序传递给 FLUENT 的参数分为两类,一种是 FLUENT 通过 GUI 方式设定的参数,通过修改 Journal 文件 方式传递,一种是在 UDF 中用于计算动网格运动规律的参 数,由于 UDF 的接口形式是固定的,只用于与 FLUENT 计 算环境之间传递参数,没有提供额外的参数传递,因此,这 部分参数需要通过共享内存或共享参数文件的方式进行传 递,需要约定内存地址或文件名以及共享数据的定义格式。 3.2 并行协同仿真 并行协同仿真是以 2.4 中的第 3 种接口方式实现的。这 种协同仿真方式需要一个监控程序,用于设定仿真参数、创 建共享数据(磁盘文件或共享内存)以及管理仿真进程。启 动 协 同 仿 真 后 , 监 控 程 序 同 时 启 动 FLUENT 和 MATLAB/Simulink,使其进入指定时间步的迭代循环中,二 者的仿真循环在共享数据的相关标志位控制下始终处于交 替 工 作 状 态 , 轮 流 为 对 方 提 供 仿 真 所 需 的 数 据 。 在 MATLAB/Simulink 中,将执行共享数据访问功能的程序编 制成 M 函数供 MATLAB 调用或作为嵌入式 MATLAB 函数 模块直接集成到 Simulink 仿真模型中。在 FLUENT 中,通 过 User-defined Adjust UDF 访问共享数据(包括更新其中的 流体动力数据)和控制仿真过程,并在动网格计算 UDF 中 读取共享数据文件中的运动参数和控制参数完成动网格边 界条件计算。表 1 为共享数据 SharedDATA 的定义格式。 其中,Mdata 与 Fdata 等于 1,表明对应的仿真环境数 据写入成功。MATLAB/Simulink 执行条件为 Flag_run= 1&Fdata = 1 , 否 则 将 当 前 运 动 参 数 与 控 制 参 数 写 入 SharedDATA 中或等待;FLUENT 执行条件为 Flag_run= 0&Mdata=1,否则将当前载体与推进系统的流体动力参数
第 19 卷第 8 期 Vol. 19 No. 8 2007 年 4 月 系 统 仿 真 学 报 Apr., 2007 表 2 5 口抽油机井产液量、输入功率与系统效率仿真与测试结果对比表 产液量仿 真值/ t/d 15.88 43.97 33.07 30.17 86.47 相对误 差/ % -2.87 9.76 -6.66 10.15 6.39 实测值/kW 输入功率仿 真值/ kW 5.41 10.54 6.10 4.48 9.97 5.02 10.18 6.57 4.31 10.54 相对误 差/ % -7.21 -3.42 7.70 -3.79 5.72 实测值/ % 27.18 32.07 37.23 31.93 45.93 系统效率仿 真值/ % 28.28 36.45 32.27 36.56 46.22 相对误差/ % 4.05 13.66 -13.34 14.50 0.63 井号 实测值/ t/d 16.35 40.06 35.43 27.39 81.28 5G14-30 X10-2-B24 X12-2-B315 X13-55-40 X8-1-26 5 结论 (1) 抽油机井系统效率仿真模型不仅是分析系统效率的 基础,也是系统优化设计的基础,所建立的系统效率仿真模 型具有重要的实际应用价值; (2) 以示功图仿真为基础,建立了抽油机井系统效率仿 真模型。该模型可以精确考虑抽油机运动特性、泵实际充满 程度对示功图的影响,提高了产液量、曲柄净扭矩、系统有 效功率与系统输入功率等动态参数的仿真精度与适应范围; (3) 抽油机悬点上下冲程曲柄摇杆机构的能量传递方向 不同以及减速箱曲柄轴一般存在负扭矩,因此抽油机地面驱 动与传动系统同时存在拖动与被拖动两种运行状态,既存在 着能量的反向流动。本文考虑了能量反向流动与传动效率的 (4) 仿真与测试结果对比表明,所建立的系统效率仿真 模型具有较高的仿真精度,能够满足工程实际应用的要求。 参考文献: [1] SY/T5793-93. 中华人民共和国石油天然气行业标准, 机械采油系 统效率测试计算方法[S]. [2] 张琪. 采油工程原理与设计[M]. 东营: 石油大学出版社, 1989, 138-143. [3] 郑海金, 邓吉彬, 唐东月. 提高机械采油系统效率理论研究及应 用[J]. 石油学报, 2004, 25(1): 93-96. [4] 董世民. 抽油机井动态参数的计算机仿真与系统优化[M]. 北京: 石油工业出版社, 2003, 50-70. [5] Gibbs SG. Predicting the Behavior of Sucker Rod Pumping Systems [J]. Shell Development Co, Houston Texas, J. P. T., (S0021-9487), 1963, 4(4): 116-121. [6] 余国安. 有杆泵抽油井的三维振动[J]. 石油学报, 1989, 10(2): 综合影响,改进了曲柄轴净扭矩、电动机瞬时输出功率与系 16-21. 统瞬时输入功率的仿镇模型。仿真结果表明,这种能量的反 向流动对系统输入功率与系统效率有较大影响; [7] 董世民. 抽油机设计计算与计算机实现[M]. 北京: 石油工业出版 社, 1994, 17-19. (上接第 1827 页) 仿真环境并完成初始化即可。 模型求解过程中,MATLAB/Simulink 主要是求解刚体 6 自由度运动的微分方程,其运行时间基本上以毫秒计;而 Fluent 求解器是基于有限元方法的,其运行时间严重依赖于 计算模型的网格规模,同时在求解非定常问题时,为实现运 算结果的收敛,Fluent 需在每个时间迭代步中按照定常计算 条件运行若干迭代步,其运行时间以秒甚至以分钟计。因此, 提高协同仿真运行效率的核心在于保证计算精度的前提下 尽可能减少计算模型的网格数目并提高网格质量。 此外,MATLAB/Simulink 与 Fluent 进行协同仿真时, 两个仿真环境需要频繁地传递参数。与磁盘文件 I/O 操作相 比,共享内存的数据存储与读取时间可以忽略,因此,在实 现 MATLAB/Simulink 与 Fluent 协同仿真方法时,应尽量采 用共享内存方式实现仿真平台间的数据交换,以达到更快的 运行速度。 5 结论 准确的流体动力学模型是在 MATLAB/Simulink 环境下 实现水下机器人动态行为精确仿真的前提。本文以此为背 景,提出了利用 MATLAB/Simulink 与 FLUENT 协同仿真的 方案以克服利用单一仿真环境分别仿真水下机器人动态行 为和流体动力学问题存在的局限性。 本文首先介绍了 MATLAB/Simulink 与 FLUENT 的运行 机制,分析了两个仿真环境实现协同仿真的技术可行性,并 提出了三种可行的接口方式。以此为基础,重点研究了嵌入 式协同仿真(包括 MATLAB/Simulink 中嵌入 FLUENT 与 FLUENT 中嵌入 MATLAB/Simulink 两种方式)与并行协同 仿真的具体实现方案,并对其运行性能作了定性的分析。 本文提出的 MATLAB/ Simulink 与 FLUENT 的协同仿真 机制及实现方法不仅对于解决流体环境中运动物体的流体动 力及运动紧密耦合的问题提供了有效的研究手段,也为研究 流固耦合等与流体紧密耦合的物理现象提供了解决的思路。 参考文献: [1] 蔡荣泉. 船舶计算流体力学的发展与应用[J]. 船舶, 2002, 8(4): 8-13. [2] 王江云, 王行仁, 贾荣珍. 协同仿真环境体系结构[J]. 系统仿真学 报, 2001, 13(6): 688-710. (Wang J Y, Wang X R, Jia R Z. The Architecture of Collaborative Simulation Environment [J]. Journal of System Simulation (S1004-731X), 2001, 13(6): 688-710.) [3] 熊光楞. 协同仿真与虚拟样机技术[M]. 北京: 清华大学出版社, 2004. [4] 李勇, 刘志友, 安亦然. 介绍计算流体力学通用软件-Fluent [J]. 水动力学研究与进展A辑, 2001, 16(2): 255-259. FLUENT 6.2 UDF Manual [Z]. Fluent Inc. 2005.1: 1.12-1.14. [5] • 1856 •
分享到:
收藏