Wolfram 语言

最佳桁架设计

设计一个最小重量的桁架,一端固定在墙上,必须能够承受另一端的负载。

这个例子演示了可以将 Wolfram 语言的多少特征一起使用以形成符号形式的线性优化问题,然后通过 LinearOptimization 高效求解。

选择桁架固定在墙上的几个特定位置。

施加负载的位置在桁架的末端。

可以用 link 和节点对桁架进行建模。每个节点通过 link 连接到相邻节点。这里给出了一种可能的连接模式。

将候选节点放在矩形点阵中。

可视化节点位置、锚点位置、施加力的位置以及桁架中部单个节点的连接性。

每个节点与一个唯一索引关联。Association 提供了一个可高效进行查找的表格。

找到与锚点和着力点相关联的索引。

构建一个函数,提供任一阵点对给定的连接模式的连接性。

对于给定节点 ,用连接性来确定哪些 link 包含该节点。如果节点 相连,那么 表示相同的 link。为了避免重复,只考虑 的那一个。

描述一组 link,如果节点 和节点 形成一个 link,则

假设 link 的厚度以及每单位长度的质量需要与将施加在该 link 上的力成比例。描述 中的 link 的一种简便方法是对 link 建立索引,使得对应于每对连接 ,有一个唯一的索引

目标是最小化 ,其中 是索引为 的节点 之间的 link 的长度, 是 link 在末端施加的力。

函数 是非线性的,但可以通过引入 ,使得 来表示为线性函数。目标函数是

在除施力点之外的每个节点处不施加外力。

在施力点处,施加垂直向下的单位力。

在每个非锚定节点 处,要处于力平衡状态 ,其中 是节点 的位置, 是节点 处的外力。定义一个函数,给出节点 处的力平衡约束条件。

Complement 避免将锚点包含在内。

最终的约束条件为:

对所得系统进行求解。

可视化最佳桁架,用蓝色系表示 link 的压缩,用红色系表示 link 的扩展。

相关范例

de en es fr ja ko pt-br