Skip to content

RibleTensegrity

RibleTensegrity 提供了张拉整体结构(Tensegrity Structures)的建模和仿真工具。

概述

张拉整体结构是一种由受压杆件和受拉索组成的自平衡结构系统。该包实现了张拉整体结构的完整动力学模型,包括形态设计、静力学分析和动力学仿真。

主要特性

  • 形态设计:张拉整体结构的几何设计和优化

  • 静力学分析:预应力状态计算和稳定性分析

  • 动力学仿真:考虑索松弛的非光滑动力学

  • 控制设计:主动张拉整体结构的控制算法

核心概念

结构组成

  • 压杆(Struts):承受压力的刚性杆件

  • 拉索(Cables):只能承受拉力的柔性索

  • 节点(Nodes):杆件和索的连接点

特性

  • 自平衡:内力系统自我平衡

  • 预应力:结构需要预应力才能保持形状

  • 轻质高强:优秀的强度重量比

应用领域

工程应用

  • 空间结构(体育馆屋顶)

  • 可展开结构(卫星天线)

  • 桥梁和塔架

机器人应用

  • 软体机器人

  • 可变形机器人

  • 仿生机器人

分析功能

形态分析

  • 节点位置优化

  • 索长度计算

  • 预应力分布

动力学分析

  • 索松弛检测

  • 接触碰撞

  • 大变形运动

逆静力学 (Inverse Statics)

逆静力学旨在寻找满足特定几何构型和外力平衡条件的结构参数(如索的静止长度或预应力)。这对于张拉整体结构的找形和控制至关重要。

核心功能

  • inverse_for_restlength: 给定目标构型和外力,计算使结构平衡所需的索静止长度。

  • inverse_for_actuation: 计算驱动变量(如电机位置),以达到目标平衡状态。

  • inverse_for_multipliers: 计算给定构型下的拉格朗日乘子(对应约束力)。

原理

逆静力学问题通常转化为求解线性方程组 Bx=F~,其中 x 是待求参数(如静止长度或力密度),B 是平衡矩阵,F~ 是广义外力。

julia
# 示例:计算平衡所需的索静止长度
u0 = inverse_for_restlength(structure, target_structure, gravity_field)

刚度分析 (Stiffness Analysis)

张拉整体结构的刚度由两部分组成:材料刚度和几何刚度。

刚度矩阵

  • 材料刚度 (Km): 由构件本身的弹性变形产生。

  • 几何刚度 (Kg): 由结构内部预应力产生,对张拉整体结构的稳定性起关键作用。

总切线刚度矩阵为 KT=Km+Kg

机构位移与自应力模态

使用 static_kinematic_determine 函数可以对平衡矩阵进行奇异值分解 (SVD),从而识别:

  • 自应力模态 (Self-stress states): 维持结构平衡的内部预应力分布。

  • 机构位移 (Mechanism modes): 结构在不发生弹性变形情况下的无穷小运动。

稳定性分析 (Stability Analysis)

稳定性分析主要关注结构在平衡位置抵抗扰动的能力。

判据

  • 切线刚度矩阵的正定性: 如果切线刚度矩阵 KT 是正定的,则结构在当前平衡位置是稳定的。

  • 索松弛 (Slackness): 索只能承受拉力。如果索的内力为负或长度小于静止长度,则发生松弛,可能导致结构失效。

工具

  • analyse_slackness(structure, q): 检查给定构型下所有索的松弛状态。

  • check_static_equilibrium: 验证结构是否处于静力平衡状态。

示例

julia
using Rible
import Rible as RB

# 创建简单的张拉整体结构
# (具体示例代码)

相关包