线性约束方程及求解

线性约束方程

概述

线性多点约束要求节点自由度上的数值可以线性组合,即
A 1 u i P + A 2 u j Q + . . . + A N u k R = 0 A_1u_i^P+A_2u_j^Q+...+A_Nu_k^R=0 A1uiP+A2ujQ+...+ANukR=0
其中, u i P u_i^P uiP代表节点P,自由度i上的数值。 A n A_n An为定义节点运动关系的系数。

定义线性约束方程

线性约束方程需要指定:

  • 方程包含的项目数,N;
  • 节点P,以及自由度i,相应地自由度上的数值为 u i P u_i^P uiP;
  • 系数 A n A_n An

例如,实现方程
u 3 5 = u 1 6 − u 3 1000 u_3^5=u_1^6-u_3^{1000} u35=u16u31000
首先将方程写成
u 3 5 − u 1 6 + u 3 1000 = 0 u_3^5-u_1^6+u_3^{1000}=0 u35u16+u31000=0
方程包含三项(N=3).P=5,i=3, A 1 A_1 A1=1.0,Q=6,j=1, A 2 A_2 A2=-1.0,R=1000,k=3, A 3 A_3 A3=1.0

线性约束方程的求解

解决多点约束问题可采用的方法

  • 罚函数法
  • 拉格朗日乘子法
  • 从自由度消去法

从自由度消去方法的列式

将所有自由度分为主自由度 u m u_m um,从自由度 u s u_s us,单点约束自由度 u d u_d ud,按照主自由度、从自由度和单点约束自由度顺序排序所有自由度。
计算模型自由度记为 u = { u m , u s , u d } u=\{u_m,u_s,u_d\} u={um,us,ud}
线性约束关系描述为
u s = T 1 u m + T 2 u d u_s=T_1u_m+T_2u_d us=T1um+T2ud
其中 T 1 T_1 T1 T 2 T_2 T2分别描述从自由度和主自由度、从自由度和单点约束自由度之间的线性关系矩阵,即主从关系的矩阵。那么整体位移向量可以表示为:
u = { u m u s u d } = { I m 0 T 1 T 2 0 I d } { u m u d } = C { u m u d } u=\left\{ \begin{matrix} u_m \\ u_s \\ u_d \\ \end{matrix} \right\}= \left\{ \begin{matrix} I_m && 0 \\ T_1&&T_2 \\ 0 &&I_d \\ \end{matrix} \right\} \left\{ \begin{matrix} u_m \\ u_d \\ \end{matrix} \right\}=C \left\{ \begin{matrix} u_m\\ u_d \\ \end{matrix} \right\} u= umusud = ImT100T2Id {umud}=C{umud}
代入 K u = f Ku=f Ku=f,左乘 { I m T 1 T 0 0 T 2 T I d } \left\{ \begin{matrix} I_m&&T_1^T&&0\\ 0&&T_2^T&&I_d\\ \end{matrix} \right\} {Im0T1TT2T0Id},得到
{ I m T 1 T 0 0 T 2 T I d } { K m m K m s K m d K s m K s s K s d K d m K d s K d d } { I m 0 T 1 T 2 0 I d } { u m u d } = { I m T 1 T 0 0 T 2 T I d } { f m f s f d } \left\{ \begin{matrix} I_m&&T_1^T&&0\\ 0&&T_2^T&&I_d\\ \end{matrix} \right\} \left\{ \begin{matrix} K_{mm}&&K_{ms}&&K_{md}\\ K_{sm}&&K_{ss}&&K_{sd}\\ K_{dm}&&K_{ds}&&K_{dd}\\ \end{matrix} \right\} \left\{ \begin{matrix} I_m&&0\\ T_1&&T_2\\ 0&&I_d\\ \end{matrix} \right\} \left\{ \begin{matrix} u_m\\ u_d \\ \end{matrix} \right\}= \left\{ \begin{matrix} I_m&&T_1^T&&0\\ 0&&T_2^T&&I_d\\ \end{matrix} \right\} \left\{ \begin{matrix} f_m\\ f_s \\ f_d \\ \end{matrix} \right\} {Im0T1TT2T0Id} KmmKsmKdmKmsKssKdsKmdKsdKdd ImT100T2Id {umud}={Im0T1TT2T0Id} fmfsfd
将此式展开,注意到 u d u_d ud 的位移已经指定,只有关于 u m u_m um 的方程的是需要求解的,即:
( K m m + K m s T 1 + T 1 T K s m + T 1 T K s s T 1 ) u m = I m f m + T 1 T f s − ( K m d + K m s T 2 + T 2 T K s m + T 1 T K s s T 2 ) u d (K_{mm}+K_{ms}T_1+T_1^TK_{sm}+T_1^TK_{ss}T_1)u_m=I_mf_m+T_1^Tf_s-(K_{md}+K_{ms}T_2+T_2^TK_{sm}+T_1^TK_{ss}T_2)u_d (Kmm+KmsT1+T1TKsm+T1TKssT1)um=Imfm+T1Tfs(Kmd+KmsT2+T2TKsm+T1TKssT2)ud

基于拉格朗日乘子法的列示

假定系统总自由度数为n(包含所有自由度,包括主、从以及单自由度约束),附加m个线性独立的离散约束(从自由度和单自由度约束之和为m)。
将从自由度和单自由度约束写成方程组形式
B u = V Bu=V Bu=V
其中B矩阵是一个m*n的系数矩阵。
离散系统的拉格朗日变分形式可写为
Π ∗ ( u , λ ) = 0.5 u T K u − u T R + λ T ( B u − V ) \Pi^*(u,\lambda)=0.5u^TKu-u^TR+\lambda^T(Bu-V) Π(u,λ)=0.5uTKuuTR+λT(BuV)

δ Π ∗ = 0 \delta\Pi^*=0 δΠ=0
可得如下的平衡方程
{ K B T B 0 } { u λ } = { R V } \left\{ \begin{matrix} K&&B^T \\ B&&0 \\ \end{matrix} \right\} \left\{ \begin{matrix} u \\ \lambda \\ \end{matrix} \right\}= \left\{ \begin{matrix} R \\ V\\ \end{matrix} \right\} {KBBT0}{uλ}={RV}

基于罚函数的列示

和拉格朗日方法取相同的B矩阵约束形式,加入罚函数的离散形式的变分形式为
Π ∗ ( u ) = 0.5 u T K u − u T R + 0.5 α ( B u − V ) T ( B u − V ) \Pi^*(u)=0.5u^TKu-u^TR+0.5\alpha(Bu-V)^T(Bu-V) Π(u)=0.5uTKuuTR+0.5α(BuV)T(BuV)

δ Π ∗ = 0 \delta\Pi^*=0 δΠ=0
得到
( K + α B T B ) U = R + α B T V (K+\alpha B^TB)U=R+\alpha B^TV (K+αBTB)U=R+αBTV

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值