任意形状复合材料梁的截面分析。

abdbeam的Python项目详细描述


Abdbeam:复合材料横截面分析

用于分析任意形状的复合材料梁的横截面的python包。

Abdbeam Hat Example

主要功能

以下是使用abdbeam可以做的一些事情

  • 使用快速薄壁各向异性组合梁理论,包括闭孔单元、开口分支、剪力连接件和吊杆(包含轴向和扭转刚度的离散加强件);
  • 恢复具有任意叠层和形状的梁的替换刚度(ea、eiyy、eizz、eiyz、gj)和/或完整的4x 4刚度矩阵;
  • 恢复质心和剪切中心位置;
  • 获取大量横截面载荷情况下(由Px、My、Mz、Tz、Vy和Vz截面载荷定义)的内部载荷分布(Nx、Nxy、MX、My、MXy用于节段;Px和Tx用于吊杆);
  • 绘制横截面、横截面特性和内部荷载。

安装

使用pypi(Python package index)安装:

pip install abdbeam

来源和文档

源代码托管在github上的https://github.com/victorazzo/abdbeam,文档可以在https://docs.abdbeam.org找到。

依赖关系

示例

让我们使用abdbeam分析下面两个封闭单元的横截面:

开始创建截面材质、其点和线段(我们还将计算截面属性并在末尾请求摘要):

importabdbeamasabsc=ab.Section()# Create a materials dictionary:mts=dict()mts[1]=ab.Laminate()ply_mat=ab.PlyMaterial(0.166666,148000,9650,4550,0.3)mts[1].ply_materials[1]=ply_matmts[1].plies=[[0,1]]*6+[[45,1]]*6# Create a points dictionary based on Y and Z point coordinates:pts=dict()pts[1]=ab.Point(0,-35)pts[2]=ab.Point(-50,-35)pts[3]=ab.Point(-50,35)pts[4]=ab.Point(0,35)pts[5]=ab.Point(50,35)pts[6]=ab.Point(50,-35)# Create a segments dictionary referencing point and material ids:sgs=dict()sgs[1]=ab.Segment(1,2,1)sgs[2]=ab.Segment(2,3,1)sgs[3]=ab.Segment(3,4,1)sgs[4]=ab.Segment(4,1,1)sgs[5]=ab.Segment(4,5,1)sgs[6]=ab.Segment(5,6,1)sgs[7]=ab.Segment(6,1,1)# Point the dictionaries to the sectionsc.materials=mtssc.points=ptssc.segments=sgs# Calculate and output section propertiessc.calculate_properties()sc.summary()

哪个打印:

Section Summary===============

Number of points: 6
Number of segments: 7
Number of cells: 2

Centroid
--------
yc= -2.67780636e-01
zc=0.00000000e+00

Shear Center
------------
ys=2.35301214e-03
zs= -1.45758049e-03

Replacement Stiffnesses
-----------------------
EA=6.80329523e+07
EIyy=5.24834340e+10
EIzz=8.36408748e+10
EIyz=0.00000000e+00
GJ=1.23762317e+10
EImax=8.36408748e+10
EImin=5.24834340e+10
Angle=0.00000000e+00

[P_c] - Beam Stiffness Matrix at the Centroid
---------------------------------------------
[[6.80329523e+07  0.00000000e+00  2.46320132e+05 -1.43701515e+08][0.00000000e+00  5.24834340e+10  0.00000000e+00  0.00000000e+00][2.46320132e+05  0.00000000e+00  8.36408748e+10 -2.12142163e+07][-1.43701515e+08  0.00000000e+00 -2.12142163e+07  1.23762317e+10]][W_c] - Beam Compliance Matrix at the Centroid
----------------------------------------------
[[1.50683149e-08 0.00000000e+00 1.66286490e-28 1.74959530e-10][0.00000000e+00 1.90536313e-11 0.00000000e+00 0.00000000e+00][1.57282135e-25 0.00000000e+00 1.19558821e-11 2.04936911e-14][1.74959530e-10 0.00000000e+00 2.04936911e-14 8.28315446e-11]][P] - Beam Stiffness Matrix at the Origin
-----------------------------------------
[[6.80329523e+07  0.00000000e+00 -1.79715871e+07 -1.43701515e+08][0.00000000e+00  5.24834340e+10  0.00000000e+00  0.00000000e+00][-1.79715871e+07  0.00000000e+00  8.36456213e+10  1.72662667e+07][-1.43701515e+08  0.00000000e+00  1.72662667e+07  1.23762317e+10]][W] - Beam Compliance Matrix at the Origin
------------------------------------------
[[1.50691722e-08 0.00000000e+00 3.20155371e-12 1.74965018e-10][0.00000000e+00 1.90536313e-11 0.00000000e+00 0.00000000e+00][3.20155371e-12 0.00000000e+00 1.19558821e-11 2.04936911e-14][1.74965018e-10 0.00000000e+00 2.04936911e-14 8.28315446e-11]]

现在,让我们创建两个荷载工况(101和102)并计算它们的内部荷载:

sc.loads=dict()sc.loads[101]=ab.Load(My=5e6)sc.loads[102]=ab.Load(Tx=250000,Vz=5000.0)sc.calculate_internal_loads()

下一步打印所有内部负载(输出大量数据,此处不显示):

sc.print_internal_loads()

或者直接访问包含这些内部负载的pandas数据框:

df=sc.sgs_int_lds_df

下一步绘制截面及其属性(我们将展示片段方向、隐藏传说、改变形心、剪切中心和主轴颜色并使用自定义图形大小):

ab.plot_section(sc,segment_coord=True,title='Abdbeam - Example',legend=False,prop_color='#471365',figsize=(5.12,3.84))

Abdbeam Plot Section Example

最后,为负载情况101绘制nx和nxy(我们将更改matplotlib轮廓调色板,减少内部负载图比例,并使用自定义图形大小):

ab.plot_section_loads(sc,101,contour_color='viridis',diagram_scale=0.7,int_load_list=['Nx','Nxy'],figsize=(5.12,3.84))

Abdbeam Plot Loads Example

许可证

BSD-3

贡献

abdbeam正处于早期开发阶段,我们鼓励您投入并contribute on GitHub。对贡献者的指导正在制定中,所以请继续关注。

理论

对于abdbeam背后的理论,最完整的参考是:

Victorazzo DS, De Jesus A. A Kollár and Pluzsik anisotropic composite beam theory for arbitrary multicelled cross sections. Journal of Reinforced Plastics and Composites. 2016 Dec;35(23):1696-711.

这些也是对其原始理论的重要参考:

注:在abdbeam中,剪切变形和约束翘曲的影响可以忽略不计。查看上面的参考资料了解更多详细信息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
一组点之间的java快速插值   安卓 Java应用程序崩溃(NullPointerException)   java为什么我的回归不为冰雹工作?   java根据用户需要自动创建新变量   java UnsupportedClassVersionError在执行支持JDK8和JDK11的Jar文件时发生,这些文件是使用Maven的多版本Jar创建的   如何在Java中创建通用数组?   java io。grpc。StatusRuntimeException:未实现:未知服务manipula。核心2。果心原型。离心机   java有没有办法在安卓 studio中更新listView项目布局?   为什么@PostConstruct方法只能启动一个线程?   java Hibernate删除多对多惰性集合   如何从另一个Java类获取文本字段值   java从其他类访问数据   java正确持久化JSON对象   java Camel JMS SQS长轮询