本期起,我们会在推送的图文中增加概述,用于告诉读者我主要讲什么。这个灵感来自小盆友老是要可怜的家长帮她总结文章的中心思想,交作业唉。
高清PDF原文可以通过下列链接下载
http://www.dinochen.com/attachments/month_1801/b201811314471.pdf
本期模型检查概述
本期仍然从实战操作角度,分别阐述
-
ABAQUS模型检查
-
Python人脸识别[算是片尾彩蛋]
这两个软件检查目的有两个:
第一步、先保证它能运算,对不对再说,先保证他们能算
[这哥两共同点就是,如果算不了,就一直纠缠着纠缠着找原因;
一旦能算了,后面就很稳定,一直能算]
第二步、检查模型减少不必要的弯路
ABAQUS模型该如何检查了?
Abaqus特点:如果能算了,就一直稳定计算;
如果不能算就一直不能算,直到修改到能算为止;
本文抛开复杂的理论
总结一套ABAQUS模型检查流程
如下图所示:
ABAQUS模型—源头检查
源头检查是什么意思了?
对工程来说,本着进度优先原则,直接在ABAQUS里面建模是很罕见的;
-
对于弹塑性时程分析,接口转好模型后就点击.bat批量文件,开始计算;
-
对于节点分析,最多就是在ABAQUS里面补充钢筋布置;
总之,ABAQUS更多来自第三方软件建好模型,然后转入进来的。这个第三方软件的模型就是源头,比如ETABS模型,CAD三维实体模型,YJK模型等。
源头检查起到事半功倍效果
-
一个合理的转入前的ETABS模型,能减少ABAQUS很多不必要的错误
-
一个合理的CAD三维实体,能加快ABAQUS 在ASSEMBLY中实体拼接
-
一个简洁干净的YJK模型,能很大程度保证弹塑性计算收敛
源头模型常见问题:
原始模型不简洁经常导致计算异常或者拖累计算速度,常见的有:
次梁太多;节点太近;局部构件没搭上;特殊截面;非规范材料指定;相交构件没打断[有些接口会自动处理];
上述这些在普通软件里面做个弹性分析没问题,但是ABAQUS弹塑性分析就都成问题了:要么市面上转接口识别混乱;要么ABAQUS提高因为小构件失效而发散;要么原本算7天的事情,结果算了一个月,总工急得骂街。
这些问题具体阐述如下:
梗:节点太近
建议:转ABAQUS把下图两个点合并
梗:次梁太多,严重拖累计算时间,而且次梁不列在性能考核范围,留次梁简直浪费感情
建议:转ABAQUS把下图次梁去掉只留下主干梁
梗:构件没搭上;
建议:弹性模型搞一个无楼板的算完查看变形找出来
梗:相交构件没打断:很多转接口比如ETE目前能识别并自动打断;
建议:人工复核,以防市面上有的转接口处理不了
梗:下图不是常规截面,导致截面识别失败
建议:根据面积和刚度等效,改为一个近似常规截面
梗:下图不常见材料被使用:由于ABAQUS本构都是基于规范自定义开发的,可以这么说大部分接口只支持常规的C60、Q345等等规范材料
建议:检查材料,遇到奇怪材料,人工改成规范材料
梗:下图CAD工字钢与混凝土实体交界面重叠:导致节点分析内嵌失败[这里知道一下ABAQUS内嵌时候要留点空隙就行,今后有专题论述节点分析的]
建议:CAD建实体模型采用布尔运算
梗:右图内嵌钢梁与弧形面相交,导致ABAQUS网格很容易划分失败
建议:CAD建实体模型弧面尽量用多边形代替,这样ABAQUS好过,你也好过
唠嗑:
不要以为这些问题离你很远
一旦遇到,不提前充电,项目进度根本不等人的;
毕竟每个人都没法预测自己下一步干什么。
建议订阅ETE,会有更详细阐述。
ABAQUS模型-材料检查
原因:
兴高采烈打开ABAQUS,开始计算感受一下生活,发现各种弹错;
特别是这么一个错误见下图,翻译成普通话就是:某某材料找不到
别傻啦,不要去找原因了,基本上告诉你要不是VS和fortran没装,要不就是找不到自定义本构
处理办法:
-
1.自己写本构
-
2.通过第三方下载本构
[ETE软件内提供下载了]
-
3.学会部署VS和fortran
这里有人会问:我只做第一步重力加载,为什么也需要自定义本构?弹性的不就行了?这个问题纯粹找茬,注意这只是你是这么想的,大部分商业化转接口不是这么想的。为什么?老司机给你娓娓道来:
1、本构开发需要投入成本,需要回报
2、有些构件在重力加载下就已经损伤了,是需要记录下来,进一步传递给时程计算累积的损伤
因此,大部分商业转接口思路是:
-
第一步重力加载用它的隐式本构
-
第二步动力时程用它的显式本构
获得本构具体操作如下:
1、点击ETE—>转接口—>下载弹塑性本构
这一步可以获取dino团队开发的基于规范的本构文件
2、把本构文件拷贝到计算模型文件同目录下
说明:该本构只能用于ETE生成的.inp中;放在其他接口生成的模型文件中
计算结果是会出错的
ABAQUS模型—软件部署
原因:
接上述问题,报错另一个原因是VS和FORTRAN没部署;
ABAQUS软件部署是件很麻烦的事情
处理办法:
1、找已经部署过的人帮你安装好
[实践证明这招最管用]
2、用YJK转ABAQUS说明书中的.dll
[如果公司买了YJKàABAQUS接口这招也很便捷]
3、ETE会员提供远程协助部署
4、自己安装部署
[NB的人生不需要解释]
软件部署具体操作如下:
处理办法1的操作:请安装过的老司机们吃顿饭
处理办法2的操作:在abaqus_v6.env文件末尾添加usub_lib_dir=YJK提供的DLL文件路径[购买的用户,YJK售后一般会把你说懂]
处理办法3的操作:订阅会员加售后QQ准备好软件,我们提供
远程安装操作指导;
处理办法4的操作:上百度文库,搜索这块内容。这里需要注意:
操作系统不能是WIN10。
我们推荐这篇文章:
https://wenku.baidu.com/view/3ba92eefb9d528ea80c7794b.html
ABAQUS模型—截面检查
原因:
有些截面转接口转成ABAQUS,由于无法识别,转错了或者丢失了
处理办法:
在ABAQUS中调成构件三维拉伸视图,看看是不是有构件突变
具体操作如下:
(1)进入VIEW-àPart Display Options-à把Render项目勾选上
(2)比如下图底座突然变粗,估计就是截面弄错了;认真一查,原来是原始ETABS模型这里是隔震支座,但某个转接口无法识别,就随机用一个截面代替;
ABAQUS模型—质量检查
原因:
1、质量对上是合理模型基本前提
2、还有一种情况是发现市面上部分转接口出项了负数的质量。后面经过与开发者沟通发现是在输出ABAQUS时候,变量没有初始化,对于质量为0的,编译器随机给了一个比如-1.2e-247这样的小数
处理办法:
运行一次模态分析,查看周期和ABAQUS提示信息,就立刻知道了
具体操作如下:
(1)Step-àCreate Stepà选择Frequency
(2)算一遍模态分析与弹性模型对比一下周期;
这里需要说明:
很多人会发现ETABS高阶振型和ABAQUS对不上,但是前几阶主振型又是一致的;
这个原因在于:
ABAQUS楼板用的是壳单元,剖分,并且考虑竖向质量
而普通ETABS用的是刚性隔板,并且没考虑竖向质量。
导致局部振动,ABAQUS是楼板主导,而ETABS是杆系构件主导
解决方案:把ETABS楼板用壳单元,划分,并且考虑竖向质量。
(3)查看ABAQUS的monitor,在warning里面会告诉哪些质量出项负数
ABAQUS模型—网格检查
原因:
转ABAQUS进行楼板、剪力墙和梁的网格剖分,几乎成了国内弹塑性分析标配。
虽然个人不赞同这种全面盲目的网格剖分,感觉实在太浪费资源又抓不到重点[吐槽];但秉承一个原则:改变不了的,就把它做好,因此还是有必要进行网格划分检查的。
处理办法:
网格检查主要是看看转接口在楼面交界处剪力墙是否与梁板构件进行合理的协调,避免计算时候局部构件因为不协调,飞出去了
具体操作如下:
(1)进行重力加载
(2)查看变形
比如下面梁板变形脱开了,那很可能就是梁漏了剖分
(3)模态分析
(4)局部放大
比如下面模态分析图形这里梁板脱开,进一步确认梁板存在剖分不协调
ABAQUS模型—构件分组
原因:
ABAQUS计算完后,对于连桥,转换,伸臂等特殊构件需要单独显示。
或者存在多塔时候,需要每栋楼分组提取基底剪力等等
这些需要在计算之前提前想清楚
然后对这些构件进行分组,最后按组显示结果或者提取数据
处理办法:
1、在小震软件中先指定好组,然后用支持识别组的接口软件比如ETE,将组转到ABAQUS中
2、用ABAQUS读入.inp,人工指定组
ABAQUS中人工指定组具体操作如下:
(1)在ABAQUS中选择需要指定组的构件(下图白色线框是鼠标框选范围)
(2)Toolà显示组à创建新组
(3)把文件再导出为.inp,提取这段组文本数据出来
ABAQUS模型—ETE能做什么
1、ETE能把ETABS模型转成ABAQUS模型,
并提供本构免费下载
2、为年费订阅的会员提供软件部署服务
3、实际abaqus工程视频操作演示与咨询
4、为永久版客户提供ABAQUS模型代转
、模型检查和出弹塑性部分报告服务
基于PYTHON的简单人脸识别
现在啊,如果你不告诉别人你也会人脸识别,你都不好意思跟人吹嘘说你是玩编程的,这里dino团队也秀一秀肌肉;
目的:
1、让人简单认识一下python
2、为后面讲解如何用python做ABAQUS后处理数据提取做个铺垫
Python和普通编程语言最大的区别在于:
世界上一大堆的人为python免费或者付费写好了固定的子程序和模块,你只要找到这些模块,将他们下载下来,填几个简单的输入输出参数,就能完成很多拉风的功能,比如人脸识别啊,小小的人工智能啊,扫地机器人啊等等
Dino团队也是基于上述原理,下载别人现成的人脸库和人脸识别函数,完成人脸识别。类似的,识花朵、识别肥婆和高富帅都可以通过下载网上现成的库和函数做到,具体操作如下图:
具体操作如下:
1、安装opencv库
2、从github上下载:haarcascades;
这个别人收集的人脸识别数据库
3、读取图片,代码是:cv2.imread(要识别的图片)
4、图片灰度化,代码是:cv2.cvtColor(要识别的图片, cv2.COLOR_BGR2GRAY)
5、读取人脸识别数据库haarcascades:
face=cv2.CascadeClassifier(人脸识别数据库所在的位置)
6、开始识别人脸:
Faces=face.detectMultiScale(要识别的图片)
7、后面就自由花灰了:
比如要把找到的人脸圈出来,就用cv2.rectangle()
要在屏幕上显示就用cv2.imshow()
要统计有多少个人脸就用len(faces)等等
是不是好简单?轻轻松松就做完人脸识别了
你可以偷偷告诉老板今后上班不用指纹打卡了,用人脸识别避免有人代打卡
下期预告
老说实战会油腻的,所以下一期
讲述模型检查的背后结构思维与原理