引言

工程中有一些结构会受到风载荷或水压的作用,如高压线塔或大坝的闸门等。

本篇以一个简单的梁结构为例,演示在ANSYS中如何利用APDL实现梁结构自动加载压力的过程。

Beam188单元

我们经常用Beam188梁单元模拟细长杆结构,如桁架、高压线铁塔、钢架桥等。在ANSYS中自带了如矩形(空心)、圆形(空心)、槽钢、工字型和L型等截面,当然了也可以自定义截面和输入截面常数(面积、转动惯量等)的等效截面,通常情况下用自带的截面形状足以解决大多数工程问题。

在定义Beam188单元的过程中,有一个令人头疼的事,那就是确定截面方向;有些读者可能未处理过该类问题,这里有必要进行简要的解释。

在ANSYS中,Beam188单元的单元坐标系X轴是由节点i指向节点j,Y轴和Z轴分布在截面的两个正交的方向,面载荷(sfbeam、sfe)和单元的应力应变以及轴力弯矩等都是在单元坐标系下定义的。

单元坐标系的Y轴通过截面方向关键点(kp或node)来确定,具体有两种方法:

  • 如果是通过几何线Line离散的方法生成单元,则通过Latt命令中的KB和KE参数确定;
  • 如果是直接建立单元,则在E命令中,第三个节点即方向关键点,如E,1,2,3则单元的ij节点编号分别为1和2,截面方向关键节点k编号为3;

如果不指定方向关键点(kp或node),则默认单元坐标系的Y轴和总体坐标系的XY平面平行,Z轴则由单元坐标系的XY轴根据右手定则自动确定。只有当截面为圆时,才可不指定方向关键点,否则均需指定方向关键点。

如果指定了方向关键点k(kp或node),单元坐标系的+X轴方向由i指向j,方向矢量记为Lij,节点i和方向关键点k构成方向矢量Lik,则单元坐标系Y轴为:

即Y轴方向为节点ij和方向关键点k组成平面的法线方向。得到了Y轴的方向之后,Z轴由X轴和Y轴根据右手定则确定。

笔者在ANSYS中尚未找到一个类似*get的命令,让我们可以方便的获取Beam188的单元坐标系,不过我们可根据单元坐标系的定义来获取单元坐标系:

  • 用*get命令得到Beam188单元的节点ij和方向关键点k的三维坐标
  • 计算ij方向(单元坐标系X轴方向)和ik方向的方向矢量Lij和Lik
  • 用*voper命令进行矢量叉乘运算得到单元坐标系Y轴方向矢量
  • 用*voper命令进行矢量叉乘运算得到单元坐标系Z轴方向矢量

以下给出APDL命令流

!获取ijk节点编号
Nodei=nelem(ElemNum,1)
Nodej=nelem(ElemNum,2)
Nodek=nelem(ElemNum,3)
!单元坐标系X轴的方向矢量
ESYSX(1,1)=nx(Nodej)-nx(Nodei)
ESYSX(1,2)=ny(Nodej)-ny(Nodei)
ESYSX(1,3)=nz(Nodej)-nz(Nodei)
!方向矢量Lik
Eik(1,1)=nx(Nodek)-nx(Nodei)
Eik(1,2)=ny(Nodek)-ny(Nodei)
Eik(1,3)=nz(Nodek)-nz(Nodei)
!矢量叉乘运算得到单元坐标系的Y轴和Z轴
*voper,ESYSY,Eik,cross,ESYSX
*voper,ESYSZ,ESYSX,cross,ESYSY

注意:在ANSYS中进行矢量的叉乘运算用*voper,关键字cross,矢量必须用一维行数组存放,即1行3列的数组,而不能用3行1列的数组

Beam188单元的面载荷通过sfbeam命令施加,面载荷种类分别为上图中的12345,为了叙述方便,假设力、长度和压力单位分别为N、m和Pa,当然也可根据实际情况定为N、mm和Mpa。

  • 1表示单元X轴方向的面1受到单位长度的力作用,即面载荷单位为N/m,正方向为-Z方向,如截面为矩形,则面1表示梁的上顶面;
  • 2表示单元X轴方向的面2受到单位长度的力作用,即面载荷单位为N/m,正方向为-Y方向,如截面为矩形,则面2表示梁的右侧面;
  • 3表示单元X轴方向受到单位长度的力作用,即面载荷单位为N/m,正方向为+X方向,面3表示梁的长度方向;
  • 4表示单元i节点所在的截面受到的集中力作用,即单位为N,正方向为+X方向;
  • 5表示单元j节点所在的截面受到的集中力作用,即单位为N,正方向为-X方向;

注意:前三种面载荷的单位为N/m,后两种载荷的单位为N,当外载荷为风压或者水压时,我们一般得到的输入数据是单位为Pa的压强,因此,当施加前三种面载荷时,应把风压或水压乘以梁截面的宽度或高度,即Pa*m=N/m;当施加后两种面载荷时,应该把面载荷值乘以横截面面积,即Pa*m2=N。

典型命令

SFBEAM, Elem, LKEY, Lab, VALI, VALJ, VAL2I, VAL2J, IOFFST, JOFFST, LENRAT

——在Beam单元上加面载荷

注意:IOFFST和JOFFST选项只能在Beam188单元的Keyopt(3)=3,即形函数必须为三次时才可用。

算例

我们在做有限元分析时,会在Beam188梁单元建模的结构上施加如风压或水压等面载荷,需要用sfbeam命令进行加载,不同的面因为尺寸不一致,所以受到的面力也是不一样的,因此需要根据外载荷方向和单元坐标系的方向确定具体哪一个面受载,具体来说就是要把外载荷沿单元坐标系分解,根据单元坐标系确定受载面。

下面以Beam188梁单元建模的简单框架结构为例,结构受到水压作用,水面位于Y=0位置,演示如何实现水压的自动加载。

以下为自动加载水压的命令流,限于篇幅,建模部分的命令流就不在此列出,有兴趣的读者可私信交流获取,值得注意的是,把外载荷分别和单元坐标系XYZ轴的方向矢量分别做点乘,然后除以XYZ轴方向矢量的模,即可得到外载荷在单元坐标系下的分量,最后再加载即可,就变成了加风载荷的命令流。

finish
/clear
/psf,pres,norm,2,,on
/psymb,esys,on*set,DensWater,1000
*set,GravityVal,10
*dim,PDir,array,1,3,1
PDir(1,1)=-1
PDir(1,2)=0
PDir(1,3)=-1
*dim,ECSYSX,array,1,3,1
*dim,ECSYSY,array,1,3,1
*dim,ECSYSZ,array,1,3,1
*dim,Eik,array,1,3,1 /prep7
!建模开始
! ......
!建模结束
*get,ElemCount,elem,0,count
*get,ElemMin,elem,0,num,min
*get,ElemMax,elem,0,num,max
*dim,ElemNum,array,ElemCount,1,1
*dim,VDot,array,1,1,1
!获取单元编号
j=0
*do,i,ElemMin,ElemMax,1 *if,esel(i),eq,1,thenj=j+1ElemNum(j)=i*endif
*enddo!循环单元加载
*do,i,1,ELemCount,1!单元节点编号          Nodei=nelem(ElemNum(i),1) Nodej=nelem(ElemNum(i),2) Nodek=nelem(ElemNum(i),3) !单元坐标系X轴方向矢量ECSYSX(1,1)=nx(Nodej)-nx(Nodei)   ECSYSX(1,2)=ny(Nodej)-ny(Nodei)    ECSYSX(1,3)=nz(Nodej)-nz(Nodei)    !i节点到方向关键点k的方向矢量Eik(1,1)=nx(Nodek)-nx(Nodei)   Eik(1,2)=ny(Nodek)-ny(Nodei)   Eik(1,3)=nz(Nodek)-nz(Nodei)!矢量叉乘运算得到单元坐标系的YZ轴*voper,ESYSY,Eik,cross,ESYSX *voper,ESYSZ,ECSYSX,cross,ESYSY!获取梁截面尺寸*get,SecNum,elem,ElemNum(i),attr,secn *get,ElemSecY,secp,SecNum,data,1   *get,ElemSecZ,secp,SecNum,data,2    !水压方向矢量和单元坐标系Z轴点乘*voper,VDot,PDir,dot,ESYSZ *if,VDot(1,1),GE,1.0E-8,then
Pi= -DensWater*GravityVal*abs(ny(Nodei))*ElemSecY
Pj=-DensWater*GravityVal*abs(ny(Nodej))*ElemSecY
sfbeam,ElemNum(i),1,press,Pi,Pj*endif*if,VDot(1,1),LE,1.0E-8,then
Pi= DensWater*GravityVal*abs(ny(Nodei))*ElemSecY
Pj=DensWater*GravityVal*abs(ny(Nodej))*ElemSecY
sfbeam,ElemNum(i),1,press,Pi,Pj*endif
!水压方向矢量和单元坐标系Y轴点乘*voper,VDot,PDir,dot,ESYSY *if,VDot(1,1),GE,1.0E-8,then
Pi= -DensWater*GravityVal*abs(ny(Nodei))*ElemSecZ
Pj=-DensWater*GravityVal*abs(ny(Nodej))*ElemSecZ
sfbeam,ElemNum(i),2,press,Pi,Pj*endif*if,VDot(1,1),LE,1.0E-8,then
Pi= DensWater*GravityVal*abs(ny(Nodei))*ElemSecZ
Pj=DensWater*GravityVal*abs(ny(Nodej))*ElemSecZ
sfbeam,ElemNum(i),2,press,Pi,Pj*endif
*enddo
finish

-完-

公众号同步更新:数联科技工作室

公众号内有更多内容!

用ANSYS画矩形_基于ANSYS的压力自动加载相关推荐

  1. java集成测试_基于TestNG+Mockito及自动装配注解的Spring MVC集成测试

    本文主要总结自己近期在项目中对MVC集成测试的实践及理解,因为先前对这块未实践过.主要参考了官方文档<11.3.6 Spring MVC Test Framework>这一章节内容,涉及到 ...

  2. python自带的对称算法_一种基于对称算法和专用加载模块的Python程序模块加密方法...

    一种基于对称算法和专用加载模块的Python程序模块加密方法 [专利说明]一种基于对称算法和专用加载模块的Python程序模块加密方法 技术领域 [0001]本发明涉及一种网络安全技术,具体涉及一种P ...

  3. 基于ArcGIS API for JavaScript加载天地图

    文章目录 前言 效果图 详细代码 总结 参考链接 前言 该篇主要介绍如何用ArcGIS JS API加载天地图,具体应用场景以及需求分析等,在上篇基于ArcGIS API for JavaScript ...

  4. html5 loader,7种基于GSAP的SVG Loader加载动画特效

    这是一组效果非常炫酷的基于GSAP的SVG Loader加载动画特效.这组SVG加载动画特效共有7种效果,分别使用GSAP对SVG进行操纵,制作出各种炫酷的Loading加载动画效果. 这些SVG加载 ...

  5. 基于JQuery实现滚动到页面底端时自动加载更多信息

    基于JQuery实现滚动到页面底端时自动加载更多信息关键代码:代码如下: var stop=true; $(window).scroll(function(){ totalheight = parse ...

  6. thinkphp 框架自动加载原理_这下你应该理解ThinkPHP的Loader自动加载了

    想了很久终于要开始系列文章的编写了,期望是写出提升和面试都可以搞定的系列文章. 当你看到本文时,如果你发现咔咔没有编写到的面试热点问题或者技术难点,期待评论区指出,一起完善. 前言 目前再整理PHP进 ...

  7. 悟空活动中台 - 基于 WebP 的图片高性能加载方案

    本文首发于 vivo互联网技术 微信公众号  链接: https://mp.weixin.qq.com/s/rSpWorfNTajtqq_pd7H-nw 作者:悟空中台研发团队 一.背景 移动端网页的 ...

  8. vue延迟渲染组件_性能优化之组件懒加载: Vue Lazy Component 介绍

    这篇文章分享了从遇到前端业务性能问题,到分析.解决并且梳理出通用的Vue 2.x 组件级懒加载解决方案(Vue Lazy Component )的过程. 初始加载资源过多 问题起源于我们的一个页面,下 ...

  9. 【WebGIS】二、基于Openlayers实现地图的加载与显示

    二.基于Openlayers实现地图的加载与显示 基于上文中配置好的环境,先通过Element Plus实现一个页面的布局,然后基于openlayers加载显示全球瓦片地图. 1. 引入element ...

最新文章

  1. 基础001.Markdown编写云笔记
  2. LeetCode算法系列_0862_和至少为K的最短子数组
  3. 重物码垛搬运机器人_搬运码垛机器人的特点及应用
  4. Oracle密码过期问题 ORA-28001:the password has expired
  5. 云管边端架构图_中移物联网布局构建“云-管-端”全方位体系架构
  6. 《Python Cookbook 3rd》笔记(2.6):字符串忽略大小写的搜索替换
  7. C++ puts函数 打印字符串很方便
  8. AndroidStudio Git 更改gitlab 地址
  9. centos6.5下的mysql5.6.30安装
  10. Python内置函数之 range()
  11. 简单 常用的git命令
  12. 双向链表与LinkedHashMap
  13. 微型计算机控制技术设计题库,微型计算机控制技术复习题答案
  14. Python图像处理丨基于OpenCV和像素处理的图像灰度化处理
  15. 电商私域流量搭建规划社群运营推广sop销售转化计划书表格模板方案
  16. 图表制作办公首选--实用图表工具Echars
  17. kettle demo6 解压缩
  18. 王者荣耀用什么开发的
  19. 二进制 真值 原码 反码 补码
  20. 盲源分离matlab程序,分享一些盲源分离的代码及相关网址

热门文章

  1. ​k8s常用命令 ​
  2. 深入浅出_Mesh网络
  3. Netscape 6 DHTML编程
  4. 来了老弟,Layui树形菜单tree
  5. 大一机电转计算机申请书,大学转专业申请书范文合集9篇.docx
  6. 学计算机的转专业理由,转专业申请理由
  7. Waifu2x-Extension-GUI 支持图片gif视频的放大与降噪程序 v0.11-beta更新
  8. 2022北京视力防控展/北京青少年眼健康展会/中国眼博会
  9. JS算术运算符、 JS赋值运算符、 JS自增自减、 JS比较运算符、 JS逻辑运算符、 JS三元运算符、 JS选择分支
  10. 信息爆炸时代如何有效读书