一维梁上剪力和弯矩可视化教学包
beambending的Python项目详细描述
梁弯曲:一维剪力和弯矩图的教具
beambending是一个教育模块和一个python包,在第一节静力学课程中用作教学辅助。 本模块的目的是在介绍以下概念的同时提高清晰度并提供直观的实际操作示例:
- 细长体上的应力一维固体(即梁)
- 法向力、剪力和弯矩图
软件包文档包括对背景理论的简单(但仍然严格)解释,灵感来自于[@beer2017]和[@bell2015]。 假设学生了解平面刚体的静态平衡,但提供了简短的概述。 在每个结果旁边都会显示再现理论示例的代码片段。
该软件包可由
- 希望用自己的解决方案自动创建问题集的教师(易于编写脚本,对随机问题生成器友好);
- 想验证自己对入门问题集的解决方案的学生;
- 喜欢处理示例问题并立即收到视觉反馈的学生,了解对施加荷载的简单修改如何影响所产生的反作用力和内应力。
这些材料是根据知识共享署名许可证公开分发的,cc-by 4.0
需求声明
本科工程课程中的静力学课程有时在相关数学工具(即简单微积分和线性向量代数)的知识完全成熟之前教授。 引入一个类似微积分思维的主题,在一个摇摇欲坠的数学基础之上,使用一个非直觉的标准符号约定,使学生在计算中迷失。
本课程旨在通过同时在两个方面开展工作,弥合这一差距,简化学生与这一富有挑战性的新课题的首次接触:
- 解释背景理论来自一个简单的示例,重点是将数学描述与物理束模型连接起来(
beambending
为了说明包是如何工作的,代码片段被交织起来)。 - 提供临时脚手架,有助于在梁荷载状态和内应力之间建立直接的视觉关联。
功能和使用
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,可以将负载应用于 在问题完全确定(梁长度+支架位置+荷载)后,可以调用 plot梁。
方法实际上是一个包装器,它将以下四种方法结合在一起:plot_beam_diagram,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_normal_force
,plot_shear_force
和plot_bench_moment
成一个A4大小的打印机友好绘图。
上面的脚本生成下图:
您可以在文档中的上下文中阅读此示例,也可以在在线托管的jupyter笔记本中进行尝试:
对于更复杂的应用程序,如自动生成问题,您应该阅读包文档
安装软件包
如果要安装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
欢迎您以任何方式重新使用此内容。