一维梁上剪力和弯矩可视化教学包

beambending的Python项目详细描述


梁弯曲:一维剪力和弯矩图的教具

versionlicensestatus构建状态binder

beambending是一个教育模块和一个python包,在第一节静力学课程中用作教学辅助。 本模块的目的是在介绍以下概念的同时提高清晰度并提供直观的实际操作示例:

  • 细长体上的应力一维固体(即梁)
  • 法向力、剪力和弯矩图

软件包文档包括对背景理论的简单(但仍然严格)解释,灵感来自于[@beer2017]和[@bell2015]。 假设学生了解平面刚体的静态平衡,但提供了简短的概述。 在每个结果旁边都会显示再现理论示例的代码片段。

该软件包可由

  • 希望用自己的解决方案自动创建问题集的教师(易于编写脚本,对随机问题生成器友好);
  • 想验证自己对入门问题集的解决方案的学生;
  • 喜欢处理示例问题并立即收到视觉反馈的学生,了解对施加荷载的简单修改如何影响所产生的反作用力和内应力。

这些材料是根据知识共享署名许可证公开分发的,cc-by 4.0

需求声明

本科工程课程中的静力学课程有时在相关数学工具(即简单微积分和线性向量代数)的知识完全成熟之前教授。 引入一个类似微积分思维的主题,在一个摇摇欲坠的数学基础之上,使用一个非直觉的标准符号约定,使学生在计算中迷失。

本课程旨在通过同时在两个方面开展工作,弥合这一差距,简化学生与这一富有挑战性的新课题的首次接触:

  1. 解释背景理论来自一个简单的示例,重点是将数学描述与物理束模型连接起来(beambending为了说明包是如何工作的,代码片段被交织起来)。
  2. 提供临时脚手架,有助于在梁荷载状态和内应力之间建立直接的视觉关联。

功能和使用

beambending包的一个典型用例总是涉及创建beam类的实例。类构造函数接受一个可选的长度参数,如果没有提供参数,则默认为10。

frombeambendingimportBeambeam=Beam(9)# Initialize a Beam object of length 9m

创建对象后,必须定义与固定和滚动支座的x坐标相对应的特性。

beam.pinned_support=2# x-coordinate of the pinned supportbeam.rolling_support=7# x-coordinate of the rolling support

请注意,梁类当前仅支持静态确定的梁,其中正好一个销轴和一个滚柱支架。

施加到梁上的每个荷载都需要一个荷载类分布荷载h分布荷载v点荷载h点荷载v的实例。 加载类是简单的namedtuples,通过明确用户的意图,使生成的脚本更易于阅读。 符号变量x也由模块定义,用于定义变量分布负载。

frombeambendingimportDistributedLoadV,PointLoadH,PointLoadV,x

通过将iterable(list或tuple)传递给方法add-loads,可以将负载应用于梁。

beam.add_loads((PointLoadH(10,3),# 10kN pointing right, at x=3mPointLoadV(-20,3),# 20kN downwards, at x=3mDistributedLoadV(-10,(3,9)),# 10 kN/m, downward, for 3m <= x <= 9mDistributedLoadV(-20+x**2,(0,2)),# variable load, for 0m <= x <= 2m))

在问题完全确定(梁长度+支架位置+荷载)后,可以调用绘图方法绘制荷载梁的草图及其相应的荷载图(法向力、剪力和弯矩)。

fig=beam.plot()

plot方法实际上是一个包装器,它将以下四种方法结合在一起:plot_beam_diagram,plot_normal_forceplot_shear_forceplot_bench_moment成一个A4大小的打印机友好绘图。

上面的脚本生成下图: 以上示例代码对应的输出

您可以在文档中的上下文中阅读此示例,也可以在在线托管的jupyter笔记本中进行尝试:binder

对于更复杂的应用程序,如自动生成问题,您应该阅读包文档

安装软件包

如果要安装beambending软件包,请运行这一行代码:

pip install --user beambending
< Buff行情>

注意:您需要python 3来安装这个包(您可能需要编写pip3而不是pip)。

库依赖项列在文件requirements.txt中,但只有在克隆存储库时才需要查看它们。 如果通过pip安装软件包,则应自动安装列出的依赖项。

如何促进波束弯曲

指定了投稿指南这里

版权和许可

(c)2018年Alfredo R.Carella。所有内容都在creative commons attribution下cc-by 4.0

欢迎您以任何方式重新使用此内容。

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

推荐PyPI第三方库


热门话题
java JavaFX TableView更新单元格,不更新对象值   在扫描器中使用分隔符的java   java OkHttp 4.9.2,连接无法重用,导致端口耗尽   eclipse中的c JNI:运行Java代码   java是否在出厂的所有硬件设备中都有/mnt/sdcard/Android/data文件夹(或等效文件夹)?   Java,在eclipse中访问资源文件夹中的图像   java为什么Bluemix dashDB操作抛出SqlSyntaxErrorException,SQLCODE=1667?   JavaHtmlUnitWebClient。getPage不处理javascript   Google API认证的java问题   java如何将JSON数组反序列化为Apache beam PCollection<javaObject>   ServerSocket停止接收命令,java/安卓   来自Java类的安卓 Toast消息   java如何自动重新加载应用程序引擎开发服务器?   java是否可以尝试/捕获一些东西来检查是否抛出了异常?   java如何做到这一点当我按下load game时,它不仅会加载信息,还会将您带到游戏中?   Java选项Xmx代表什么?   Java映射,它在插入时打印值   设置“ulimit c unlimited”后,java无法生成系统核心转储