复杂形态钢结构设计培训班

首页 结构乌托邦-公众号 【WSAP】结构力学求解器(一):二阶效应分析[开源]

【WSAP】结构力学求解器(一):二阶效应分析[开源]

“WSAP重力二阶效应

转自:结构乌托邦-公众号于2018年开辟OpenSEES专题【会议总结】OpenSEES Days Eurasia 2019 in PolyU【PBSD】【OpenSees】在2019日本E-Defense盲测比赛的表现)、2019年开辟PBSD专题【PBSD】一键弹塑性报告功能演示【PBSD】V1.0.5.0版正式发布:免费地震动工具箱之教学视频)。

2020年已过半,总要开辟些新东西给大家尝尝鲜,因此开启新专题【WSAP】。WSAP为开源结构力学求解器,开放简洁、实用的.NET接口。有.NET开发经验的个人及团队,不妨尝试下WSAP来满足力学求解需求,协助打造结构选型、截面优化及条文复核等衍生产品。

今天是与WSAP见面的第一天,以悬臂柱及框架结构为例,将WSAP求解结果与SAP2000求解结果进行对比,简述WSAP的重力二阶效应处理方法。点击“阅读原文”可直接查看WSAP开源项目

算例关键接口示例

  1. //模型初始化

  2. //量纲:N、mm、t

  3. var model =new WModelNet();


  4. /// <summary>

  5. /// WModelNet:添加节点

  6. /// </summary>

  7. /// <param name="tag"> 节点编号 </param>

  8. /// <param name="x"> 节点X坐标 </param>

  9. /// <param name="y"> 节点Y坐标 </param>

  10. /// <param name="z"> 节点Z坐标 </param>

  11. /// <param name="isFix"> 节点是否约束 </param>

  12. /// <returns> 节点对象 </returns>

  13. WNodeNet node = model.AddNode(int tag, double x, double y, double z, bool isFix);


  14. /// <summary>

  15. /// WModelNet:添加节点荷载

  16. /// </summary>

  17. /// <param name="nodeTag"> 节点编号 </param>

  18. /// <param name="dof"> 荷载自由度方向 </param>

  19. /// <param name="load"> 荷载(mm、N) </param>

  20. /// <returns> 是否添加成功 </returns>

  21. bool isSuccess = model.AddNodeLoad(int nodeTag, int dof, double load);


  22. /// <summary>

  23. /// WModelNet:添加坐标为Z的所有节点

  24. /// </summary>

  25. /// <param name="z"> Z坐标 </param>

  26. /// <returns> void </returns>

  27. model.FixZ(double z);


  28. /// <summary>

  29. /// WModelNet:添加矩形柱单元,默认考虑P-Delta

  30. /// 截面局部向量默认高度方向指向全局Y向

  31. /// 默认不考虑刚域

  32. /// </summary>

  33. /// <param name="iNodeTag"> I端节点编号 </param>

  34. /// <param name="jNodeTag"> J端节点编号 </param>

  35. /// <param name="width"> 截面宽度 </param>

  36. /// <param name="height"> 截面高度 </param>

  37. /// <returns> 单元对象 </returns>

  38. WElementNet column = model.AddRectConcreteColumn(int iNodeTag, int jNodeTag, double width, double height);


  39. /// <summary>

  40. /// WModelNet:添加矩形梁单元,默认不考虑P-Delta

  41. /// 截面局部向量默认高度方向指向全局Z向

  42. /// 默认不考虑刚域

  43. /// </summary>

  44. /// <param name="iNodeTag"> I端节点编号 </param>

  45. /// <param name="jNodeTag"> J端节点编号 </param>

  46. /// <param name="width"> 截面宽度 </param>

  47. /// <param name="height"> 截面高度 </param>

  48. /// <returns> 单元对象 </returns>

  49. WElementNet beam = model.AddRectConcreteBeam(int iNodeTag, int jNodeTag, double width, double height);


  50. /// <summary>

  51. /// WElementNet:修改单元是否考虑P-Delta

  52. /// </summary>

  53. /// <param name="isPDelta"> 是否考虑P-Delta </param>

  54. /// <returns> 是否修改成功 </returns>

  55. bool isSuccess = column.SetPDelta(bool isPDelta);


  56. /// <summary>

  57. /// WModelNet:创建有限元模型

  58. /// </summary>

  59. /// <param name="clearLoadCases"> 是否清空荷载 </param>

  60. /// <returns> 是否创建成功 </returns>

  61. bool isSuccess = model.CreateFEModel(bool clearLoadCases);


  62. /// <summary>

  63. /// WModelNet:基于荷载的线性求解器

  64. /// </summary>

  65. /// <returns> 是否求解成功 </returns>

  66. bool isSuccess = model.DoLinearStaticAnalyze();


  67. /// <summary>

  68. /// WModelNet:基于荷载的非线性求解器

  69. /// </summary>

  70. /// <param name="stepNumber"> 分析步数 </param>

  71. /// <returns> 是否求解成功 </returns>

  72. bool isSuccess = model.DoGeneralStaticAnalyze(int stepNumber);

悬臂柱测试

通过AddRectConcreteColumn建立悬臂柱通过SetPDelta设定构件是否考虑二阶效应,通过AddNodeLoad施加水平推覆力,最后采用DoGeneralStaticAnalyze完成几何非线性分析,分析结果对比如图1所示。由图1可知,在不对单元进行剖分的前提下,SAP2000考虑二阶效应的挠度值大于WSAP的分析结果。由SAP2000的技术文档(图2)可知,SAP2000默认考虑小P-Delta效应,而WSAP框架单元仅考虑大P-Delta效率,因此存在0.39%相对误差。WSAP可通过单元剖分来考虑小P-Delta效应,剖分后相对误差为0.0017%。

图1 WSAP与SAP2000悬臂柱加载结果对比

图2 WSAP可通过单元剖分考虑小P-Delta效应


框架结构测试
通过AddRectConcreteBeamAddRectConcreteColumn建立框架结构模型通过AddNodeLoad施加水平推覆力,最后采用DoGeneralStaticAnalyze完成几何非线性分析,分析结果对比如图3所示。结论与悬臂柱相近:在不对单元进行剖分的前提下,SAP2000默认考虑小P-Delta效应WSAP框架单元仅考虑大P-Delta效应,因此存在较小的相对误差。

图3 WSAP与SAP2000框架结构加载结果对比

图4 WSAP加载动图

点击“阅读原文”可直接查看WSAP开源项目及SAP2000算例

精彩回顾:

【会议总结】OpenSEES Days Eurasia 2019 in PolyU

【PBSD】【OpenSees】在2019日本E-Defense盲测比赛的表现

【YJK】弹性时程分析如何考虑周期折减系数

  • PBSD

【PBSD】2019年更新历史——结构抗震性能设计软件PBSD

【PBSD】超限工程好助手:结构抗震性能设计软件PBSD功能简介

【PBSD】【PERFORM-3D】YTP导模工具使用手册

【PBSD】【OpenSEES】【YTO】智能化的结构弹塑性分析全套解决方案

【PBSD】V1.0.5.0版正式发布:免费地震动工具箱之教学视频

【PBSD】地震动工具箱:多频段选波方法详解

【PBSD】一键弹塑性报告功能演示

【PBSD】【PERFORM-3D】性能前馈集中塑性铰单元的定义、优势与测试

【PBSD】性能前馈集中塑性单元PFLPH与纤维单元力学性能对比

【PBSD】【PERFORM-3D】弹塑性模型刚度调整

【PBSD】人工波生成功能测试 [开源]

【PBSD】弹性时程分析的实现与功能测试

【PBSD】【OpenSEES】2019年精选推送集锦

【广东省性能设计规程】与国家高规对比浅谈反应谱的修正与完善

【广东省性能设计规程】性能设计基本方法与PBSD的实现
  • OpenSees

【OpenSEES】OpenSEES历史版本下载:v1.7.2-v3.1.0

【OpenSees】浅析两类纤维单元:位移元与应力元

【OpenSEES】24类纤维截面剖分TCL函数

【OpenSees】浅析纤维单元的数值积分方法

【OpenSees】浅析分布塑性铰单元的数值积分方法

【OpenSees】应力元纤维单元的Localization Issues

【OpenSees】宏观梁柱单元的强度软化模拟

【OpenSEES】浅析纤维单元(一):单元剖分数对刚度法纤维单元力学性能的影响

【OpenSEES】浅析纤维单元(二):积分点数对刚度法纤维单元力学性能的影响

【OpenSees】浅析剪力墙宏观单元:MVLEM

【OpenSees】浅析剪力墙宏观单元:SFI-MVLEM

【OpenSees】浅析剪力墙宏观单元:分层壳单元

【OpenSEES】浅析迭代(一)

【OpenSEES】浅析迭代(二):基于LineSearch优化迭代算法

【OpenSEES】浅析迭代(三):基于Krylov优化迭代算法

【OpenSees】SecAggregator为DispBC赋予剪切刚度乃无用功

【OpenSEES】PM截面分析实例

【OpenSees】如何利用应变控制截面分析的进程

【OpenSEES】低周往复加载实例:荷载位移双控

【OpenSees】SDOF非线性动力时程分析的实现与算例

  • 编程

【编程】Python效率测试与调用.Net的基本方法

【编程】分段解析法及多软件反应谱求解结果对比探究[开源]

【编程】基于神经网络预测加速度反应谱——SRP第一课

【编程】基于C#绘制反应谱曲线——SRP第一课
  • 工具

【工具】PC端文字识别小工具2.0[Mini_OCR]

【工具】OpenSEES_XML分析结果提取工具[开源]

【工具】OSRun [OpenSees运行辅助工具][开源]

【工具】FSV [OpenSees纤维截面可视化工具][开源]



本文来自网络,不代表钢构人的立场,转载请注明出处。搜索工程类文章,就用钢构人网站。 https://www.ganggouren.com/2020/08/c36f97d8b5/
上一篇
下一篇

作者: ganggouren

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

联系我们

17717621528

在线咨询: QQ交谈

邮箱: 1356745727@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部