基于MWORKS.Sysplorer的油气混合作动筒建模与仿真应用

news2025/4/8 2:29:39

作为常见的线性传动装置,液压作动筒因其高功率密度传动平稳、可控性好等特点而被广泛应用于各领域。常规的液压作动筒以油液为介质传递动力,其原理结构如图1所示。液压油从无杆腔进入,推动作动筒活塞伸出;或从有杆腔流入,推动作动筒活塞缩回。

图1 常规液压作动筒原理示意图

在一些场景下,出于可靠性要求,作动筒需要在如图2所示两种工况下工作:第一种工况,同常规液压作动筒一样,液压源提供动力,油液传递动力第二种工况,当液压系统发生故障时,油路被断开,由气源提供动力,惰性气体传递动力,完成作动筒的单向伸出动作以保证整个系统的安全运行。本文称该种作动筒为油气混合作动筒

图2 油气混合作动筒原理示意图

需要区分的是,存在一种液压油和气体作用在不同腔体的作动筒与本文所述的油气混合作动筒功能相似,其结构如图3所示,该构型作动筒可在MWORKS.Sysplorer中使用同元商业模型库TYHydraulicComponents和TYPneumaticComponents进行拖拽式建模,此处不再赘述。

因此特别强调本文所述的油气混合作动筒为油气共用同一腔体。油气混合作动筒建模需进行同腔体的油气切换计算,涉及切换条件判断和状态变量重置等问题,具有一定的复杂性。

图3 油气异腔作动筒原理示意图

本文基于MWORKS.Sysplorer,采用Modelica语言构建油气混合作动筒模型。

在进行油气混合作动筒建模之前,首先明晰常规液压作动筒建模机理。

常规液压作动筒的模型可以等效为两个液压腔体和一个质量块,这是由其机构决定的。液压作动的本质就是通过控制作动筒左右两个腔体的油液来实现对活塞的力/速度/位移控制。

从物理模型角度,活塞可视为一个质量块,描述质量块的运动只需要描述它的受力情况。那么作动筒中活塞的受力来自何处?显然,在作动筒内部受力主要是两个液压腔体的压强作用在活塞面积上产生的液压力。

那么再继续追问,液压腔体的压强如何产生?以作动筒无杆腔为例,观察图1,流入作动筒无杆腔的油液想要推动活塞向右运动,但是遇到活塞和负载的“抵抗”,在推动活塞运动之前无杆腔体积不变。随着油液不断流入无杆腔,由于流体压缩性,该腔压强不断上升,直至无杆腔压强作用在活塞上产生的力能够克服负载和摩擦等阻力,推动活塞运动。也就是说,在密闭容积内流体受压时压强相应增加,压强作用在活塞产生力,力作用下活塞运动。

上面定性的分析了液压作动筒的模型机理,那么接下来将定量的用数学语言描述模型。

首先分析力作用下的活塞运动。假设已知无杆腔和有杆腔的压强分别为p_{1}p_{2},把活塞和负载质量视为一个质量块,那么根据牛顿运动定律,有以下方程:

(1)

p_{1} A_{1}-p_{2} A_{2} =m\frac{\mathrm{​{d^2}} x}{\mathrm{d} t^2} +F_{L} +F_{f}

其中,m为活塞的总质量,F_{L}为活塞所受的外部负载力,F_{f}为活塞所受阻尼力和摩擦力,A_{1}为作动筒活塞无杆腔面积,A_{2}为作动筒活塞无杆腔面积,x为作动筒活塞位移。

从上述方程,可以根据两腔体压力计算活塞的加速度,进而由积分计算速度和位移。那么如何计算两个腔体的压力呢?

前面已经讲过,在活塞被推动之前,流体不断流入容腔,由于流体的压缩性产生压力。在活塞实际运动的过程中,流入腔体的流量分为三部分:一部分为补充活塞运动产生的流量;一部分为补充流体压缩引起的流量;还有一部分为泄漏流量。作动筒两腔的流量q_{1}q_{2}的方程如下所示:

(2)

q_{1}=A_{1}\frac{\mathrm{d} x}{\mathrm{d} t} +\frac{V_{1}}{\beta _{e} } \frac{\mathrm{d} p_{1}}{\mathrm{d} t}+C_{ic}(p_{1}-p_{2})

(3)

q_{2}=-A_{2}\frac{\mathrm{d} x}{\mathrm{d} t} +\frac{V_{2}}{\beta _{e} } \frac{\mathrm{d} p_{2}}{\mathrm{d} t}-C_{ic}(p_{1}-p_{2})

其中,V_{1}为作动筒无杆腔容积,V_{2}为作动筒有杆腔容积,C_{ic}为作动筒内泄漏系数,\beta _{e}为液压油体积弹性模量。

因此,描述作动筒的运动状态仅需要三个方程。力平衡方程(1)描述活塞的受力运动,给出两腔压强p_{1}p_{2}与活塞位移x之间的数学关系;流量连续性方程(2)和(3)描述液压腔体的状态,给出腔体压强和输入流量之间的数学关系。

油气混合作动筒与常规作动筒的最大区别在于油液作动到气体作动的切换,即某一时刻液压系统故障,液压源切换为气压源,由气压源推动活塞完成伸出动作。首先考虑气腔的建模。

3.1 气腔建模

不妨假设已经完成切换,油气混合作动筒左端为气腔,右端为油腔,那么活塞的运动方程与(1)相同。

(4)

p_{1p} A_{1}-p_{2} A_{2} =m\frac{\mathrm{​{d^2}} x}{\mathrm{d} t^2} +F_{L} +F_{f}

其中,p_{1p}为无杆腔气体压强。那么仅需再计算出气体腔体压力,即可完成左腔为气腔右腔为油腔的油气混合作动筒的数学描述。

描述气体压力的方程如下所示

(5)

p_{1p} V_{1}=m_{g}RT

其中,V_{1}为无杆腔体积;m_{g}为气体质量;R为气体常数,由介质类型确定;T为气体温度。m_{g}的计算可由输入到该腔的质量流量q_{m}积分得到,有如下方程:

(6)

\frac{\mathrm{d} m_{g} }{\mathrm{d} t} =q_{m}

那么仅剩温度T需要计算,T可由如下方程计算:

(7)

m_{g}\frac{\mathrm{d} T}{\mathrm{d} t} =q_{m}(\gamma T_{in} -T)-\frac{p_{1}q_{c}}{C_{v}}

其中,\gamma=C_{p}/C_{v}为比热比,C_{p}C_{v}分别为定压比热容和定容比热容;在气体流入时T_{in}为环境温度;q_{c}=A_{1}v为腔体体积变化速率,v为活塞速度。

3.2 油气混合作动筒建模

油气混合模型需要考虑液压工况时油腔的计算气压工况时气腔的计算切换。首先需要明确模型何时开启计算切换。实际物理系统中是由外部的气压或液压控制元件进行主动的切换,作动筒仅需被动接受动力源即可。那么在模型中我们如何处理,让油气混合作动筒模型知道什么时候开始进行气压计算呢?这就涉及到判断条件的问题。

不妨先设置一个布尔类型标志变量Flag\_Gas默认值为0,表示此时为液压工况状态;切换为气压工况状态时通过判断条件令Flag\_Gas=1,进而计算气压工况状态下的变量。刚刚已经讲述,在实际物理系统中,作动筒被动接受动力源。那么在油气混合作动筒模型中,可以从物理接口的流量信号来判断切换与否。当气体流量大于设定阈值后,油气混合作动筒模型由液压工况切换到气压工况,如下所示:

(8)

Flag\_Gas= \left\{\begin{matrix} 0 \\ 1 ,when\;q_{m}>k_{m} \\ \end{matrix}\right.

在状态切换的同时,也要对状态变量进行重置,这点在后面讲述。

无论是在液压工况下还是在气压工况下,其本质均为腔体内的压强作用在无杆腔活塞面产生作用力。因此,首先区分两个状态下的力,不妨设气压工况时腔体内的气体作用力为F\_Pneu,液压工况时腔体内的液压作用力为F\_Hydr,重新构建运动方程如下:

(9)

F\_Pneu+ F\_Hydr-p_{2} A_{2} =m\frac{\mathrm{d^2} x}{\mathrm{d} t^2} +F_{L}+ F_{f}

液压力和气压力计算如下所示:

(10)

\left\{\begin{matrix} F\_Pneu=p_{1p} A_{1} \\ F\_Hydr=p_{1h} A_{1} \\ \end{matrix}\right.

观察上式,我们想要使模型在液压工况时,仅计算F\_Hydr;在气压工况时,仅计算F\_Pneu。那也就是说,要设法令液压工况时F\_Pneu=0;令气压工况时F\_Hydr=0

在液压工况下,需要计算两个状态变量液压腔体压力p_{1h}和气腔温度T

(11)

\left\{\begin{matrix} \frac{\mathrm{d} p_{1h}}{\mathrm{d} t} =\frac{\beta_{e}}{V_{1}}(q_{1}-A_{1}\frac{\mathrm{d} x}{\mathrm{d} t} -C_{ic}(p_{1h}-p_{2})) \\ \frac{\mathrm{d} T}{\mathrm{d} t} =0 \\ \end{matrix}\right.

由式(5)可知,令气体质量m_{g}为0,那么气体压强也为0,进而在液压工况时气压力F\_Pneu=0,仅进行液压相关变量的计算。

气压工况下,也需要计算两个状态变量液压腔体压力p_{1h}和气腔温度T因为在Modelica语言中,if产生的选择分支的方程数量必须相等。

(12)

\left\{\begin{matrix} \frac{\mathrm{d} p_{1h}}{\mathrm{d} t} =0 \\ \frac{\mathrm{d} T}{\mathrm{d} t} =\frac{1}{m_{g}}(q_{m}(\gamma T_{in} -T)-\frac{p_{1p}q_{c}}{C_{v}} )\\ \end{matrix}\right.

到这里,基本的建模已经完成。不过细心的你可能会发现,仍然残留有一些小问题。比如前文中提到令气体质量m_{g}为0,但是在式(12)中m_{g}为分母;在式(12)中仅令p_{1h}的微分为0,并没有将它本身重置为0。因此在状态切换的同时,应当将p_{1h}重置为0,将m_{g}重置为一较小值以进行计算。那么如何重置这些状态变量的值呢?

复杂的建模中经常要面临状态变量的数值重置和微分方程切换。在Modelica语言中可以使用reinit对状态变量数值进行重置,大大方便了在状态变量微分方程切换场合时的建模与仿真。

4.1 模型验证

基于上述方程对油气混合作动筒进行建模,根据相关实验数据,按照如图4所示的组件模型验证流程对油气混合作动筒模型进行验证迭代,直至模型输出符合理论及物理规律。

图4 组件模型验证流程

经与实验数据对比验证,本文所构建的油气混合作动筒模型输出符合理论及实际物理规律,数值仿真结果与实验数据匹配良好,模型所计算的液压压力平均误差为3.3%,气压压力平均误差为5.6%,活塞位移平均误差为1.2%。基于本模型进行下述应用场景验证。

4.2 典型应用场景仿真

建立如下图所示的模型对油气混合作动筒模型进行典型应用场景仿真。

图5 油气混合作动筒典型应用场景仿真模型图

应用场景如下:0-2秒进行液压作动,活塞在油液作用下伸出。在2秒时,活塞运动到某位置,液压系统故障,该腔油液全被放掉油压为0;模型开始进行气压作动计算,活塞在之前的位置上被气体继续推动完成伸出动作。

仿真工况如下:在0-2秒给定油液流量源0.2kg/s的恒定流量,油气混合作动筒模型能仿真液压传动下的伸出动作;假设在仿真的第2秒液压系统发生故障,气体流量源开始供气,流量恒定为0.01kg/s。

所得到的仿真结果如下:

图6 油气混合作动筒活塞位移曲线图

图7 油气混合作动筒活塞速度曲线图

图8 油气混合作动筒左腔液压压强和气压压强曲线图

图9 油气混合作动筒左腔气体温度曲线图

图10 油气混合作动筒液压气压标记曲线图

由仿真曲线可知,油气混合作动筒模型能准确的描述切换前后的液压和气压状态,处理切换过程中的状态变量的微分方程切换和数值重置等情况。

本文从常规液压作动筒的建模出发,主要介绍了一种具备不同工况油气同腔切换特点的油气混合作动筒建模方法。文中给出了油气混合作动筒的应用场景并分析了其物理行为特点,针对该种作动筒油气同腔切换的特点提出了一种涉及状态变量微分方程切换和数值重置的油气混合作动筒建模方法。基于MWORKS.Sysplorer实现了油气混合作动筒的建模并对模型进行了验证。

MWORKS.Sysplorer为机电液系统提供广泛且深入的建模仿真平台支持。如果您需要文中提及的油气混合作动筒的主要代码,请回复评论并留下您的邮箱,我们会尽快发送给您!

我们还将不定期推出更多的技术文章,介绍MWORKS.Sysplorer的使用攻略和相关专业学科原理的应用等信息,欢迎继续关注我们的后续推送!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1043091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

递归的总结和案例

①使用递归的方法获取1-100的总和 function sum(num){ if(num 1){ return num 1 }else { return numsum(num-1) } } let num 100 let numSum sum(num) console.log(numSum,numSum) ②数组求和 function arrSum (arr){ let len arr.length…

第十四届蓝桥杯大赛软件赛决赛 C/C++ 大学 B 组 试题 B: 双子数

[蓝桥杯 2023 国 B] 双子数 试题 B: 双子数 【问题描述】 若一个正整数 x x x 可以被表示为 p 2 q 2 p^2 \times q^2 p2q2,其中 p p p、 q q q 为质数且 p ≠ q p \neq q pq,则 x x x 是 一个 “双子数”。请计算区间 [ 2333 , 233333333333…

数据结构-在堆中插入或删除新元素

目录 在堆中插入新元素 在堆中删除元素 知识回顾 在堆中插入新元素 首先插入13(这里我们依据的是小根堆原则,遇到大根堆也是类似的) (1)将新元素放到队列的队尾,在完全二叉树里面显示的是堆底 如下图…

ElasticSearch - 基础概念,以及和 mysql 的对比

目录 一、ElasticSearch 基础概念 1.1、文档(document) 1.2、索引(index) 1.3、映射(mapping) 二、对比 mysql 2.1、概念对比 2.2、适用场景对比 2.2.1、那是不是说,有了 es 之后&#…

Win10下获取海康威视网络串流(顺便求教Ubuntu服务器做法)

如果有摄像头专供充电器最好,那样可以用交换机,而且可以用海康威视官方的(大概)400密码重置助手获取摄像头IP地址,并做账号初始化等工作 我是一开始还有充电器的时候做了账号初始化,但是现在找不着充电器了…

java - 数组工具类Arrays

目录 前言 一、Arrays是什么? 二、常用方法 1.toString():将数组转换为字符串形式。 2. binarySearch():在已排序的数组中查找指定元素的索引。 3.fill():将数组的所有元素都设置为指定值。 4. copyOf():将一个数组的部分或…

【实训项目】益农小程序

1.项目背景 受到疫情影响,农作物物流运输受阻、产品滞销,给农民的“菜园子”和市民的“菜篮子”带来不少影响,一边是农民种植的蔬菜、草莓等地产农副食品滞销,一边是城区居民买不到新鲜、实惠的农副产品。 有很多地区&#xff0…

【解决方案】‘create’ is not a member of ‘cv::aruco::DetectorParameters’

‘create’ is not a member of ‘cv::aruco::DetectorParameters’ 在构建AruCo标定板标定位姿代码的过程中,发现代码中认为create并不是aruco::DetectorParameters的成员函数,这是因为在4.7.0及以上的OpenCV版本中,对ArUco的代码做调整&…

【KingFusion】如何在3D场景实现流水效果

哈喽,大家好,我是雷工! 在项目过程中,经常会涉及到实现管道水流动效果,此篇记录在KingFusion中的3D场景实现水流效果。 以下为简单流水效果的样例, 一、效果展示 当点击水泵,水泵启动,显示流水…

Linux开篇指南针环境安装(第一课)

Linux开篇指南针(第一课) 1 LINUX 系统介绍 Linux是一种自由和开放源代码的类UNIX操作系统,它最初由芬兰的林纳斯托瓦兹在1991年创建。Linux是一种多用户、多任务操作系统,可以在各种硬件平台上运行,包括桌面、移动设备、服务器和超级计算机…

JavaScript项目1_猜数字(前导)

● 本节,我们将做这样的一个小游戏,意思就是随机生成一个数字,然后你去猜测,本文不涉及HTML和CSS的代码,如果有需要的话可以私信我! document.querySelector() document.querySelector() 是 JavaScript 中…

vue2.x 迭代更新项目去掉缓存处理

找到build文件下的webpack.prod.conf.js文件 定义一个常量version const Version new Date().getTime(); 然后在.js和.css前面加上.${Version}就可以了(注意得把原本的换成)

Dink进阶之路

1、环境变量 cat /etc/profile #flink需要 export HADOOP_CLASSPATHhadoop classpath export HADOOP_CONF_DIR/etc/hadoop/conf2、Flink配置 2.1、flink-conf.yaml jobmanager.rpc.address: node-146 jobmanager.rpc.port: 6123 # 设置jobmanager总内存 jobmanager.memory.…

MongoDB(二)基础操作 创建、删除,查询等

mongodb有一个特点,如果某个库,库下面没数据(mongodb成集合),该库等于不存在的 mongodb只要创建一个库,在库下写入数据,该库才会生成 mongoshe [-hhost -pxxx] 创建数据库 use 数据库名 # 如果…

阿里巴巴OceanBase介绍

前言 官网地址:https://www.oceanbase.com/ OceanBase是由蚂蚁集团完全自主研发的国产原生分布式数据库,始创于2010年。是全球唯一在 TPC-C 和 TPC-H 测试上都刷新了世界纪录的国产原生分布式数据库。 2010年,创始人阳振坤加入阿里巴巴&…

华为云云耀云服务器L实例评测|华为云云耀云服务器L实例CentOS的存储和备份策略

1 华为云云耀云服务器L实例介绍 华为云云耀云服务器L实例是华为云计算服务中的一种虚拟云服务器,它提供了强大的计算资源,可以在云端运行各种应用程序和服务。 华为云服务器提供了多种实例类型,包括通用型、计算优化型、内存优化型等&#…

数据中心不能“偏科”,AIGC时代算力、存力需协调发展

黄金比例是数学上一种堪称“完美”的比例关系,最早由欧几里得在《几何原本》中进行了系统论述。之后,黄金比例的理念被广泛应用到数学、物理、建筑、农业等多个领域,代表着最合理、最协调的一种情况或者状态。 在数据中心领域,相…

模板的注意事项

目录 swap函数&#xff1a; 模板不支持分离编译 声明和定义分离的好处 swap函数&#xff1a; #include<iostream> using namespace std; template <class T> void swap(T&left, T&right) {T temp right;right left;left temp; } int main() {int a …

Vue比较两个数字大小

实现一个比较两个数字大小的页面&#xff0c;练习Vue实例的创建、数据绑定和事件监听方法&#xff1b; <div id"aa"> <ul> <li> <span>第一个数&#xff1a;</span><input v-model.number"first"/> </li> <…

详解Java执行groovy脚本的两种方式

详解Java执行groovy脚本的两种方式 文章目录 详解Java执行groovy脚本的两种方式介绍记录Java执行groovy脚本的两种invokeFunction:invokeMethod:以下为案例&#xff1a;引入依赖定义脚本内容并执行运行结果&#xff1a;例如把脚本内容定义为这样&#xff1a;执行结果就是这样了…