Cosserat Rod 理论学习

前言

最近做的本科毕设中有一部分的工作是要对缝合线进行仿真,老师推荐用 Cosserat Rod 模型对缝合线建模,于是我就查阅了很多关于 Cosserat Rod 的资料,并以本文作为学习笔记。

本文首先介绍了描述空间曲线的 TNB Frame 和 Darboux Vector,然后以此为基础介绍了 Cosserat Rod 模型的相关理论,最后根据 Position and Orientation Based Cosserat Rods 这篇论文介绍了 Cosserat Rod 的离散形式以及如何用 PBD 算法进行仿真。


TNB Frame

大多数的对缝合线、毛发、绳子等物体仿真使用的模型都是线型模型,也就是要对空间曲线的运动进行模拟。因此首先介绍一下 TNB Frame 的相关理论。

TNB Frame(中文翻译应该是 TNB 框架或者 TNB 参考系?)也叫作 Frenet–Serret frame,是由这两个人分别独立研究提出来的理论,所以以这两个人的名字命名。TNB Frame 理论描述了一个粒子沿着三维空间中连续可微曲线的运动。所谓的 “TNB”,指的是三维空间中的一组正交基,即三个相互垂直的单位向量:

  • T:Tangent,曲线的单位切向量;
  • N:Normal,曲线的单位法向量;
  • B:Binormal,曲线的单位副法向量;

假设空间曲线的方程定义为 r ( s ) \boldsymbol{r}(s) r(s),其中 s s s 表示弧长且 s ∈ [ 0 , L ] s\in[0,L] s[0,L],那么 TNB 三个向量可以通过 r ( s ) \boldsymbol{r}(s) r(s) 计算得到:

首先单位切向量 T = d r d s / ∣ ∣ d r d s ∣ ∣ \boldsymbol{T}=\frac{d\boldsymbol{r}}{ds}/||\frac{d\boldsymbol{r}}{ds}|| T=dsdr/dsdr ,它指向了粒子在曲线当前位置运动的前进方向,而 d T d s \frac{d\boldsymbol{T}}{ds} dsdT 则可以表示这个粒子的加速度的方向,注意我们这里的速度和加速度的定义不是严格的物理意义的定义,而是为了方便描述曲线才假设有个粒子在曲线上面运动,并给粒子赋予了速度和加速度,用同样为标量的弧长 s s s 的变化替代时间变化。曲线的曲率 κ ( s ) = ∣ ∣ d T d s ∣ ∣ \kappa(s)=||\frac{d\boldsymbol{T}}{ds}|| κ(s)=dsdT,则单位法向量 N = 1 κ d T d s \boldsymbol{N}=\frac{1}{\kappa}\frac{d\boldsymbol{T}}{ds} N=κ1dsdT 。TNB 三个向量组成了正交基,因此单位副法向量 B = T × N \boldsymbol{B}=\boldsymbol{T}\times\boldsymbol{N} B=T×N 。总体来说,假设有一个粒子沿着曲线匀速运动,那么 T \boldsymbol{T} T 就是这个粒子的速度方向, N \boldsymbol{N} N 是这个粒子的加速度方向, B \boldsymbol{B} B 则垂直于上面两个方向。总结一下:

  • T = d r d s / ∣ ∣ d r d s ∣ ∣ \boldsymbol{T}=\frac{d\boldsymbol{r}}{ds}/||\frac{d\boldsymbol{r}}{ds}|| T=dsdr/dsdr
  • N = 1 κ d T d s \boldsymbol{N}=\frac{1}{\kappa}\frac{d\boldsymbol{T}}{ds} N=κ1dsdT,其中曲率 κ ( s ) = ∣ ∣ d T d s ∣ ∣ \kappa(s)=||\frac{d\boldsymbol{T}}{ds}|| κ(s)=dsdT
  • B = T × N \boldsymbol{B}=\boldsymbol{T}\times\boldsymbol{N} B=T×N

TNB Frame 的相关理论中有一套公式 Frenet–Serret formulas:
d T d s = κ N d N d s = − κ T + τ B d B d s = − τ N \begin{aligned} \frac{d\boldsymbol{T}}{ds}&=\kappa\boldsymbol{N} \\ \frac{d\boldsymbol{N}}{ds}&=-\kappa\boldsymbol{T}+\tau\boldsymbol{B}\\ \frac{d\boldsymbol{B}}{ds}&=-\tau\boldsymbol{N} \end{aligned} dsdTdsdNdsdB=κN=κT+τB=τN
其中 κ \kappa κ 在前面说过了表示的是曲率(curvature), τ \tau τ 表示的是曲线的扭率(torsion),两者都可以反推回来计算出来:
κ ( s ) = ∣ ∣ d T d s ∣ ∣ τ ( s ) = − N ⋅ d B d s \begin{aligned} \kappa(s)&=||\frac{d\boldsymbol{T}}{ds}||\\ \tau(s)&=-\boldsymbol{N}\cdot\frac{d\boldsymbol{B}}{ds} \end{aligned} κ(s)τ(s)=dsdT=NdsdB
其中 τ \tau τ 的计算公式成立是因为 N \boldsymbol{N} N 为单位向量。从直观上来说,曲率 κ \kappa κ 刻画了曲线的弯曲程度(刻画了 B \boldsymbol{B} B 的转动),扭率 τ \tau τ 刻画了曲线的扭曲程度(刻画了 T \boldsymbol{T} T 的转动)。

上面的叙述可能有点乱,但是从实际运用的角度来说,一般情况下空间曲线 r ( s ) \boldsymbol{r}(s) r(s) 是已知的,其他的相关量 { T , N , B , κ , τ } \{\boldsymbol{T},\boldsymbol{N},\boldsymbol{B},\kappa,\tau\} {T,N,B,κ,τ} 都可以计算出来。


Darboux Vector

达布向量 ω \boldsymbol{\omega} ω 描述的是 TNB Frame 中三个单位向量基的转动,定义为 ω = ω T + ω N + ω B \boldsymbol{\omega}=\boldsymbol{\omega_{T}}+\boldsymbol{\omega_{N}}+\boldsymbol{\omega_{B}} ω=ωT+ωN+ωB ,其中后面三个 ω x \boldsymbol{\omega_{x}} ωx 分别描述 TNB 三个单位向量的略面速度,例如
ω T = lim ⁡ Δ t → 0 T ( t ) × T ( t + Δ t ) 2 Δ t = T × T ′ 2 \boldsymbol{\omega_{T}}=\lim_{\Delta t\rightarrow 0}{\frac{\boldsymbol{T}(t)\times\boldsymbol{T}(t+\Delta t)}{2\Delta t}} =\frac{\boldsymbol{T}\times\boldsymbol{T'}}{2} ωT=Δt0lim2ΔtT(t)×T(t+Δt)=2T×T
根据定义可以将 ω \boldsymbol{\omega} ω 的计算公式简化得到
ω = τ T + κ B \boldsymbol{\omega}=\tau\boldsymbol{T}+\kappa\boldsymbol{B} ω=τT+κB
达布向量具有如下性质:
T ′ = ω × T N ′ = ω × N B ′ = ω × B \begin{aligned} \boldsymbol{T}'&=\boldsymbol{\omega}\times\boldsymbol{T}\\ \boldsymbol{N}'&=\boldsymbol{\omega}\times\boldsymbol{N}\\ \boldsymbol{B}'&=\boldsymbol{\omega}\times\boldsymbol{B}\\ \end{aligned} TNB=ω×T=ω×N=ω×B
结合我们熟知的公式 v = ω × r \boldsymbol{v}=\boldsymbol{\omega}\times\boldsymbol{r} v=ω×r 来看达布向量可以发现,达布向量类似于 TNB Frame 里面的角速度。


Cosserat Rod


Cosserat Rod(图片来自文献Position and Orientation Based Cosserat Rods)

在 Cosserat Rod 理论中认为线型模型的长度远远大于横截面半径,即 L > > r L>>r L>>r,在使用时直接认为是一段空间曲线。有两个坐标系,一个是全局的坐标系 { e 1 , e 2 , e 3 } \{\boldsymbol{e}_1,\boldsymbol{e}_2,\boldsymbol{e}_3\} {e1,e2,e3},另一个是与弧长 s s s 相关的局部坐标系 { d 1 ( s ) , d 2 ( s ) , d 3 ( s ) } \{\boldsymbol{d}_1(s),\boldsymbol{d}_2(s),\boldsymbol{d}_3(s)\} {d1(s),d2(s),d3(s)} ,在局部坐标系中, { d 1 ( s ) , d 2 ( s ) } \{\boldsymbol{d}_1(s),\boldsymbol{d}_2(s)\} {d1(s),d2(s)} 构成了曲线上某一个点的横截面,而 d 3 ( s ) \boldsymbol{d}_3(s) d3(s) 是这个横截面的法向量,注意这个 d 3 ( s ) \boldsymbol{d}_3(s) d3(s) 不一定要和曲线切线 d r ( s ) d s \frac{d\boldsymbol{r}(s)}{ds} dsdr(s) 同方向,当它们方向不同时说明在 s s s 处有剪切。

可以看出 Cosserat Rod 局部坐标系的定义和 TNB Frame 很相似,唯一不同的就是它不严格要求空间曲线一定连续可微。

关于全局坐标系和局部坐标系的变换,我们可以看成是一种旋转,定义表示旋转的四元数 q ( s ) q(s) q(s),则有
d k = q e k q ∗ d_k=qe_kq^* dk=qekq
Cosserat Rod 模型的好处在于,它可以度量线型模型的延展(stretch)、剪切(shear)、弯曲(bend)和扭转(twist)四种应变,因此可以更加真实地模拟线型物体的物理运动。

定义
Γ ( s ) = d r ( s ) d s − d 3 ( s ) \boldsymbol{\Gamma}(s)=\frac{d\boldsymbol{r}(s)}{ds}-\boldsymbol{d}_3(s) Γ(s)=dsdr(s)d3(s)
用于度量曲线的延展和剪切应变, d 3 ( s ) \boldsymbol{d}_3(s) d3(s) d r ( s ) d s \frac{d\boldsymbol{r}(s)}{ds} dsdr(s) 的方向关系表示了其剪切应变, d 3 ( s ) \boldsymbol{d}_3(s) d3(s) d r ( s ) d s \frac{d\boldsymbol{r}(s)}{ds} dsdr(s) 的长度关系表示了其延展应变。

定义
Δ ω = ω − ω 0 \Delta\omega=\omega-\omega^0 Δω=ωω0
用于度量曲线的弯曲和扭转应变,其中 ω \omega ω 对应达布向量 ω \boldsymbol{\omega} ω 的四元数,上标 0 0 0 表示初始值。在上一个部分中我们知道了达布向量的计算方法
ω = 1 2 ∑ k = 1 3 d k × d k ′ \boldsymbol{\omega}=\frac{1}{2}\sum_{k=1}^3{\boldsymbol{d}_k\times\boldsymbol{d}_k'} ω=21k=13dk×dk
也知道了达布向量 ω \boldsymbol{\omega} ω 描述了 { d 1 ( s ) , d 2 ( s ) , d 3 ( s ) } \{\boldsymbol{d}_1(s),\boldsymbol{d}_2(s),\boldsymbol{d}_3(s)\} {d1(s),d2(s),d3(s)} 随着 s s s 的变化的角速度,因此可以发现达布向量的前两个元素 { ω 1 , ω 2 } \{\omega_1,\omega_2\} {ω1,ω2} 描述了曲线的弯曲应变(影响的是曲率),而最后一个元素 ω 3 \omega_3 ω3 描述了曲线的扭转应变(影响的是扭率)。

结合局部坐标系和全局坐标系的变换四元数 q q q ,我们可以将两个应变度量函数改写为
Γ ( s ) = R ( q ) T d r ( s ) d s − e 3 Δ ω = 2 ( q ∗ q ′ − q ∗ 0 q ′ 0 ) (1) \begin{aligned} \boldsymbol{\Gamma}(s)&=\boldsymbol{R}(q)^T\frac{d\boldsymbol{r}(s)}{ds}-\boldsymbol{e}_3 \\ \Delta\omega&=2(q^*q'-q^{*0}q'^0) \end{aligned} \tag{1} Γ(s)Δω=R(q)Tdsdr(s)e3=2(qqq0q0)(1)
其中 R ( q ) \boldsymbol{R}(q) R(q) 为四元数 q q q 对应的旋转矩阵( q v q ∗ qvq^* qvq R ( q ) v \boldsymbol{R}(q)\boldsymbol{v} R(q)v 表示同一种旋转变换,相互可以推导,过程比较复杂所以这里省略了), q ′ q' q 为四元数的导数,有 q ′ = 1 2 q ω q'=\frac{1}{2}q\omega q=21qω


离散形式的 Cosserat Rod

物理仿真算法中都是对离散节点的运动进行仿真,因此 Position and Orientation Based Cosserat Rods 这篇论文构建了离散形式的 Cosserat Rod,并且成功套用了 PBD 的约束作用于节点位置和节点间的四元数。


离散形式的 Cosserat Rod(图片来自文献Position and Orientation Based Cosserat Rods)

假设曲线由 n 个节点 x k \boldsymbol{x}_k xk 组成,那么相邻节点之间还添加了一个表示一段杆(rod)的节点 q k − 1 2 q_{k-\frac{1}{2}} qk21

在杆节点处构建约束最小化延展和剪切应变,在位置节点处构建约束最小化弯曲和扭转,于是我们需要把原本公式 (1) 中的一些量进行离散化处理。对于 d r ( s ) d s \frac{d\boldsymbol{r}(s)}{ds} dsdr(s) 离散化为 d r ( s ) d s ≈ 1 l ( x i + 1 − x i ) \frac{d\boldsymbol{r}(s)}{ds}\approx \frac{1}{l}(\boldsymbol{x}_{i+1}-\boldsymbol{x}_i) dsdr(s)l1(xi+1xi) ,其中 l l l 表示杆节点的长度;对于 ω \boldsymbol{\omega} ω 离散化为 ω ≈ 2 l ς ( q i − 1 2 ∗ q i + 1 2 ) \boldsymbol{\omega}\approx \frac{2}{l}\varsigma(q^*_{i-\frac{1}{2}}q_{i+\frac{1}{2}}) ωl2ς(qi21qi+21) ,其中 ς \varsigma ς 表示取四元数的向量部分,这个离散化的推导我看了相关论文还不明白,之后有时间再慢慢去学习吧。

离散化之后的方程变为
Γ i + 1 2 ≈ 1 l ( x i + 1 − x i ) − ς ( q i + 1 2 e 3 q i + 1 2 ∗ ) Δ ω ≈ 2 l ς ( q i − 1 2 ∗ q i + 1 2 − q i − 1 2 ∗ 0 q i + 1 2 0 ) (2) \begin{aligned} \boldsymbol{\Gamma}_{i+\frac{1}{2}}&\approx \frac{1}{l}(\boldsymbol{x}_{i+1}-\boldsymbol{x}_i)-\varsigma(q_{i+\frac{1}{2}}e_3q^*_{i+\frac{1}{2}}) \\ \Delta\boldsymbol{\omega}&\approx \frac{2}{l}\varsigma(q^*_{i-\frac{1}{2}}q_{i+\frac{1}{2}}-q^{*0}_{i-\frac{1}{2}}q^0_{i+\frac{1}{2}}) \end{aligned} \tag{2} Γi+21Δωl1(xi+1xi)ς(qi+21e3qi+21)l2ς(qi21qi+21qi210qi+210)(2)
那么对于 PBD 中如何构建约束,只要把位置 x i \boldsymbol{x}_i xi 和表示转动的四元数 q i − 1 2 q_{i-\frac{1}{2}} qi21 当成被约束量,根据公式 (2) 令它们等于 0 0 0 即可:
C s ( p 1 , p 2 , q ) = 1 l ( p 2 − p 1 ) − R ( q ) e 3 = 0 C b ( q , u ) = ς ( q ∗ u − q ∗ 0 u 0 ) = ω − s ω 0 (3) \begin{aligned} \boldsymbol{C_s}(\boldsymbol{p}_1,\boldsymbol{p}_2,q)&=\frac{1}{l}(\boldsymbol{p}_2-\boldsymbol{p}_1)-\boldsymbol{R}(q)\boldsymbol{e}_3=\boldsymbol{0} \\ \boldsymbol{C_b}(q,u)&=\varsigma(q^*u-q^{*0}u^0)=\boldsymbol{\omega}-s\boldsymbol{\omega}^0 \end{aligned} \tag{3} Cs(p1,p2,q)Cb(q,u)=l1(p2p1)R(q)e3=0=ς(quq0u0)=ωsω0(3)
其中
s = { + 1 if  ∣ ω − ω 0 ∣ 2 < ∣ ω + ω 0 ∣ 2 − 1 if  ∣ ω − ω 0 ∣ 2 > ∣ ω + ω 0 ∣ 2 s= \left \{ \begin{array}{lr} +1 & \text{if } |\boldsymbol{\omega}-\boldsymbol{\omega}^0|^2<|\boldsymbol{\omega}+\boldsymbol{\omega}^0|^2 \\ -1 & \text{if } |\boldsymbol{\omega}-\boldsymbol{\omega}^0|^2>|\boldsymbol{\omega}+\boldsymbol{\omega}^0|^2 \end{array} \right. s={+11if ωω02<ω+ω02if ωω02>ω+ω02
因为四元数 + q +q +q − q -q q 描述的是同一种转动,所以要加一个 s s s 变量来确定初始值的唯一性。

根据 PBD 算法的公式可以得到每一帧的更新方程,对于约束 C s \boldsymbol{C_s} Cs,更新方程为
Δ p 1 = + w 1 l w 1 + w 2 + 4 w q l 2 ( 1 l ( p 2 − p 1 ) − d 3 ) Δ p 2 = − w 2 l w 1 + w 2 + 4 w q l 2 ( 1 l ( p 2 − p 1 ) − d 3 ) Δ q = + w q l w 1 + w 2 + 4 w q l 2 ( 1 l ( p 2 − p 1 ) − d 3 ) q e 3 ∗ \begin{aligned} \Delta\boldsymbol{p}_1 &= +\frac{w_1l}{w_1+w_2+4w_ql^2}(\frac{1}{l}(\boldsymbol{p}_2-\boldsymbol{p}_1)-\boldsymbol{d}_3) \\ \Delta\boldsymbol{p}_2 &= -\frac{w_2l}{w_1+w_2+4w_ql^2}(\frac{1}{l}(\boldsymbol{p}_2-\boldsymbol{p}_1)-\boldsymbol{d}_3) \\ \Delta q &= +\frac{w_ql}{w_1+w_2+4w_ql^2}(\frac{1}{l}(\boldsymbol{p}_2-\boldsymbol{p}_1)-\boldsymbol{d}_3)qe^*_3 \end{aligned} Δp1Δp2Δq=+w1+w2+4wql2w1l(l1(p2p1)d3)=w1+w2+4wql2w2l(l1(p2p1)d3)=+w1+w2+4wql2wql(l1(p2p1)d3)qe3
对于约束 C b \boldsymbol{C_b} Cb ,更新方程为
Δ q = + w q w q + w u u ( ω − s ω 0 ) Δ u = − w u w q + w u q ( ω − s ω 0 ) \begin{aligned} \Delta q &= +\frac{w_q}{w_q+w_u}u(\omega-s\omega^0) \\ \Delta u &= -\frac{w_u}{w_q+w_u}q(\omega-s\omega^0) \end{aligned} ΔqΔu=+wq+wuwqu(ωsω0)=wq+wuwuq(ωsω0)

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cosserat rod理论是一种数学模型,用于描述具有微小尺度非线性变形的细长物体的力学行为。它被命名为Cosserat rod,以纪念法国科学家Cosserat兄弟,他们在20世纪初提出了该理论。 该理论的基本思想是将纤维材料视为由无数微观结构单元组成的连续体,这些微观结构单元受到剪切力和转动力的影响。与传统的连续介质力学模型不同,这些微观结构单元在变形过程中可以发生相对旋转,而不仅仅是纯粹的弯曲和伸长。 Cosserat rod理论采用了扭转张量和剪切张量这两个额外的物理量,来描述杆件的非线性变形。通过引入这些额外的物理量,该理论能够更准确地描述杆件在多个方向上的力学行为,并能够模拟出许多复杂的物理现象,如摩擦、弯曲、扭转、屈曲等。 Cosserat rod理论在各个领域中都有广泛的应用。例如,在生物医学领域,它可以用来模拟DNA、RNA以及蛋白质等生物分子的力学性质。在工程领域,它可以用于设计和优化纤维材料制品,如纤维织物、电缆和输电线路等。此外,它还在仿真和计算领域中起着重要的作用,可以用于模拟类似于鞭毛和纤维振动等动力学问题。 总之,Cosserat rod理论是一种重要的数学模型,能够准确地描述细长物体的力学行为。通过该理论,我们可以更全面地理解和预测杆件的变形和响应,进而在工程设计和科学研究中发挥重要作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值