system: [SYSTEM]

user: 3. 微分求积法求解控制方程 微分求积法的基本原理是将函数在求解区域内的每个网格点处的导数值用域内全部网格点上的函数值的加权线性和近似表示。关于微分求积法的理论在文献 [ 20 ] 中有详细的论述，包括权系数的计算、节点的选取、边界条件的处理等。 3.1. 控制方程的离散 假设梁的长度 = 1 m，则方程(1)的求解区间为 [ 0 ， 1 ] 。在区间 [ 0 ， 1 ] 上取 N 个互异节点 0 = x 1 < x 2 < ⋯ < x N − 1 < x N = 1 。取 N = 11 ，节点坐标如下 x i = ( 1 2 ) [ 1 − cos ( i − 1 ) π N − 1 ] ，   ( i = 1 ， 2 ， ⋯ ， N ) . (3) 利用微分求积法则，方程中的未知函数在各节点处的各阶导数值表示如下 v ， x ( x i ， t ) = ∑ j = 1 N a i j ( 1 ) v ( x j ， t ) ，   v ， x x ( x i ， t ) = ∑ j = 1 N a i j ( 2 ) v ( x j ， t ) ，   v ， x x x ( x i ， t ) = ∑ j = 1 N a i j ( 3 ) v ( x j ， t ) v ， x x x x ( x i ， t ) = ∑ j = 1 N a i j ( 4 ) v ( x j ， t ) ，   v ， x t ( x i ， t ) = ∑ j = 1 N a i j ( 1 ) v ˙ ( x j ， t ) ， v ， x x t ( x i ， t ) = ∑ j = 1 N a i j ( 2 ) v ˙ ( x j ， t ) ，   v ， x x x x t ( x i ， t ) = ∑ j = 1 N a i j ( 4 ) v ˙ ( x j ， t ) (4) 其中 a i j ( 1 ) ， a i j ( 2 ) ， a i j ( 3 ) ， a i j ( 4 ) 分别是微分求积法中一阶导数、二阶导数、三阶导数、四阶导数的权系数， v ˙ ( x i ， t ) 表示函数 v ( x ， t ) 在各节点处对时间 t 的一阶导数。(4)式写成矩阵的形式如下 [ v ， x ( x 1 ， t ) v ， x ( x 2 ， t ) ⋮ v ， x ( x N − 1 ， t ) v ， x ( x N ， t ) ] = [ a 11 ( 1 ) a 12 ( 1 ) ⋯ a 1 ， N − 1 ( 1 ) a 1 ， N ( 1 ) a 21 ( 1 ) a 22 ( 1 ) ⋯ a 2 ， N − 1 ( 1 ) a 2 ， N ( 1 ) ⋮ ⋮ ⋱ ⋮ ⋮ a N − 1 ， 1 ( 1 ) a N − 1 ， 2 ( 1 ) ⋯ a N − 1 ， N − 1 ( 1 ) a N − 1 ， N ( 1 ) a N ， 1 ( 1 ) a N ， 2 ( 1 ) ⋯ a N ， N − 1 ( 1 ) a N ， N ( 1 ) ] ︸ A ( 1 ) × [ v ( x 1 ， t ) v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] (5a) [ v ， x x ( x 1 ， t ) v ， x x ( x 2 ， t ) ⋮ v ， x x ( x N − 1 ， t ) v ， x x ( x N ， t ) ] = [ a 11 ( 2 ) a 12 ( 2 ) ⋯ a 1 ， N − 1 ( 2 ) a 1 ， N ( 2 ) a 21 ( 2 ) a 22 ( 2 ) ⋯ a 2 ， N − 1 ( 2 ) a 2 ， N ( 2 ) ⋮ ⋮ ⋱ ⋮ ⋮ a N − 1 ， 1 ( 2 ) a N − 1 ， 2 ( 2 ) ⋯ a N − 1 ， N − 1 ( 2 ) a N − 1 ， N ( 2 ) a N ， 1 ( 2 ) a N ， 2 ( 2 ) ⋯ a N ， N − 1 ( 2 ) a N ， N ( 2 ) ] ︸ A ( 2 ) × [ v ( x 1 ， t ) v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] (5b) [ v ， x x x ( x 1 ， t ) v ， x x x ( x 2 ， t ) ⋮ v ， x x x ( x N − 1 ， t ) v ， x x x ( x N ， t ) ] = [ a 11 ( 3 ) a 12 ( 3 ) ⋯ a 1 ， N − 1 ( 3 ) a 1 ， N ( 3 ) a 21 ( 3 ) a 22 ( 3 ) ⋯ a 2 ， N − 1 ( 3 ) a 2 ， N ( 3 ) ⋮ ⋮ ⋱ ⋮ ⋮ a N − 1 ， 1 ( 3 ) a N − 1 ， 2 ( 3 ) ⋯ a N − 1 ， N − 1 ( 3 ) a N − 1 ， N ( 3 ) a N ， 1 ( 3 ) a N ， 2 ( 3 ) ⋯ a N ， N − 1 ( 3 ) a N ， N ( 3 ) ] ︸ A ( 3 ) × [ v ( x 1 ， t ) v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] (5c) [ v ， x x x x ( x 1 ， t ) v ， x x x x ( x 2 ， t ) ⋮ v ， x x x x ( x N − 1 ， t ) v ， x x x x ( x N ， t ) ] = [ a 11 ( 4 ) a 12 ( 4 ) ⋯ a 1 ， N − 1 ( 4 ) a 1 ， N ( 4 ) a 21 ( 4 ) a 22 ( 4 ) ⋯ a 2 ， N − 1 ( 4 ) a 2 ， N ( 4 ) ⋮ ⋮ ⋱ ⋮ ⋮ a N − 1 ， 1 ( 4 ) a N − 1 ， 2 ( 4 ) ⋯ a N − 1 ， N − 1 ( 4 ) a N − 1 ， N ( 4 ) a N ， 1 ( 4 ) a N ， 2 ( 4 ) ⋯ a N ， N − 1 ( 4 ) a N ， N ( 4 ) ] ︸ A ( 4 ) × [ v ( x 1 ， t ) v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] (5d) [ v ， x t ( x 1 ， t ) v ， x t ( x 2 ， t ) ⋮ v ， x t ( x N − 1 ， t ) v ， x t ( x N ， t ) ] = [ a 11 ( 1 ) a 12 ( 1 ) ⋯ a 1 ， N − 1 ( 1 ) a 1 ， N ( 1 ) a 21 ( 1 ) a 22 ( 1 ) ⋯ a 2 ， N − 1 ( 1 ) a 2 ， N ( 1 ) ⋮ ⋮ ⋱ ⋮ ⋮ a N − 1 ， 1 ( 1 ) a N − 1 ， 2 ( 1 ) ⋯ a N − 1 ， N − 1 ( 1 ) a N − 1 ， N ( 1 ) a N ， 1 ( 1 ) a N ， 2 ( 1 ) ⋯ a N ， N − 1 ( 1 ) a N ， N ( 1 ) ] ︸ A ( 1 ) × [ v ˙ ( x 1 ， t ) v ˙ ( x 2 ， t ) ⋮ v ˙ ( x N − 1 ， t ) v ˙ ( x N ， t ) ] (5e) [ v ， x x t ( x 1 ， t ) v ， x x t ( x 2 ， t ) ⋮ v ， x x t ( x N − 1 ， t ) v ， x x t ( x N ， t ) ] = [ a 11 ( 2 ) a 12 ( 2 ) ⋯ a 1 ， N − 1 ( 2 ) a 1 ， N ( 2 ) a 21 ( 2 ) a 22 ( 2 ) ⋯ a 2 ， N − 1 ( 2 ) a 2 ， N ( 2 ) ⋮ ⋮ ⋱ ⋮ ⋮ a N − 1 ， 1 ( 2 ) a N − 1 ， 2 ( 2 ) ⋯ a N − 1 ， N − 1 ( 2 ) a N − 1 ， N ( 2 ) a N ， 1 ( 2 ) a N ， 2 ( 2 ) ⋯ a N ， N − 1 ( 2 ) a N ， N ( 2 ) ] ︸ A ( 2 ) × [ v ˙ ( x 1 ， t ) v ˙ ( x 2 ， t ) ⋮ v ˙ ( x N − 1 ， t ) v ˙ ( x N ， t ) ] (5f) [ v ， x x x x t ( x 1 ， t ) v ， x x x x t ( x 2 ， t ) ⋮ v ， x x x t ( x N − 1 ， t ) v ， x x x t ( x N ， t ) ] = [ a 11 ( 4 ) a 12 ( 4 ) ⋯ a 1 ， N − 1 ( 4 ) a 1 ， N ( 4 ) a 21 ( 4 ) a 22 ( 4 ) ⋯ a 2 ， N − 1 ( 4 ) a 2 ， N ( 4 ) ⋮ ⋮ ⋱ ⋮ ⋮ a N − 1 ， 1 ( 4 ) a N − 1 ， 2 ( 4 ) ⋯ a N − 1 ， N − 1 ( 4 ) a N − 1 ， N ( 4 ) a N ， 1 ( 4 ) a N ， 2 ( 4 ) ⋯ a N ， N − 1 ( 4 ) a N ， N ( 4 ) ] ︸ A ( 4 ) × [ v ˙ ( x 1 ， t ) v ˙ ( x 2 ， t ) ⋮ v ˙ ( x N − 1 ， t ) v ˙ ( x N ， t ) ] (5g) 3.2. 边界条件的处理 由于在端点 x = 0 处，未知函数的一阶导数为0，即 v ， x ( x 1 ， t ) = 0 ，因此 A ( 1 ) 的第一行为0。同理，在端点 x = l 处，未知函数的二阶导数为0，即 v ， x x ( x N ， t ) = 0 ，因此 A ( 2 ) 的最后一行为0。一阶导数和二阶导数的权系数矩阵分别修正 [ 20 ] 为 [ 0 v ， x ( x 2 ， t ) ⋮ v ， x ( x N − 1 ， t ) v ， x ( x N ， t ) ] = [ 0 0 ⋯ 0 0 a 21 ( 1 ) a 22 ( 1 ) ⋯ a 2 ， N − 1 ( 1 ) a 2 ， N ( 1 ) ⋮ ⋮ ⋱ ⋮ ⋮ a N − 1 ， 1 ( 1 ) a N − 1 ， 2 ( 1 ) ⋯ a N − 1 ， N − 1 ( 1 ) a N − 1 ， N ( 1 ) a N ， 1 ( 1 ) a N ， 2 ( 1 ) ⋯ a N ， N − 1 ( 1 ) a N ， N ( 1 ) ] ︸ A ˜ ( 1 ) × [ v ( x 1 ， t ) v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] (6) [ v ， x x ( x 1 ， t ) v ， x x ( x 2 ， t ) ⋮ v ， x x ( x N − 1 ， t ) 0 ] = [ a 11 ( 2 ) a 12 ( 2 ) ⋯ a 1 ， N − 1 ( 2 ) a 1 ， N ( 2 ) a 21 ( 2 ) a 22 ( 2 ) ⋯ a 2 ， N − 1 ( 2 ) a 2 ， N ( 2 ) ⋮ ⋮ ⋱ ⋮ ⋮ a N − 1 ， 1 ( 2 ) a N − 1 ， 2 ( 2 ) ⋯ a N − 1 ， N − 1 ( 2 ) a N − 1 ， N ( 2 ) 0 0 ⋯ 0 0 ] ︸ A ˜ ( 2 ) × [ v ( x 1 ， t ) v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] (7) 在计算三阶导数矩阵和四阶导数矩阵时，可以用矩阵乘积得到，即 A ( 3 ) = A ˜ ( 1 ) × A ˜ ( 2 ) ， A ( 4 ) = A ˜ ( 1 ) × A ( 3 ) (8) 这样就引入了这两个边界条件。又由于端点 x = 0 处，函数值也为0，即 v ( x 1 ， t ) = 0 ，因而不用求，只求内部节点及端点 x = l 处的函数值即可，因此权系数矩阵的第一行，最后一行，第一列及最后一列划掉。此时只剩边界条件 x = l ，               ∂ 3 v ∂ x 3 ( l ， t ) = 0 . (9) 内部节点及端点 x = l 处的各阶导数表达式用矩阵可以表示为 [ v ， x ( x 2 ， t ) ⋮ v ， x ( x N − 1 ， t ) ] = [ a 22 ( 1 ) ⋯ a 2 ， N − 1 ( 1 ) a 2 ， N ( 1 ) ⋮ ⋱ ⋮ ⋮ a N − 1 ， 2 ( 1 ) ⋯ a N − 1 ， N − 1 ( 1 ) a N − 1 ， N ( 1 ) ] ︸ A ¯ ( 1 ) × [ v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] ， (10a) [ v ， x x ( x 2 ， t ) ⋮ v ， x x ( x N − 1 ， t ) ] = [ a 22 ( 2 ) ⋯ a 2 ， N − 1 ( 2 ) a 2 ， N ( 2 ) ⋮ ⋱ ⋮ ⋮ a N − 1 ， 2 ( 2 ) ⋯ a N − 1 ， N − 1 ( 2 ) a N − 1 ， N ( 2 ) ] ︸ A ¯ ( 2 ) × [ v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] ， (10b) 类似地 [ v ， x x x x ( x 2 ， t ) ⋮ v ， x x x x ( x N − 1 ， t ) ] = A ¯ ( 4 ) × [ v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] ， [ v ， x t ( x 2 ， t ) ⋮ v ， x t ( x N − 1 ， t ) ] = A ¯ ( 1 ) × [ v ˙ ( x 2 ， t ) ⋮ v ˙ ( x N − 1 ， t ) v ˙ ( x N ， t ) ] ， (10c) [ v ， x x t ( x 2 ， t ) ⋮ v ， x x t ( x N − 1 ， t ) ] = A ¯ ( 2 ) × [ v ˙ ( x 2 ， t ) ⋮ v ˙ ( x N − 1 ， t ) v ˙ ( x N ， t ) ] ， [ v ， x x x x t ( x 2 ， t ) ⋮ v ， x x x x t ( x N − 1 ， t ) ] = A ¯ ( 4 ) × [ v ˙ ( x 2 ， t ) ⋮ v ˙ ( x N − 1 ， t ) v ˙ ( x N ， t ) ] ， (10d) w ， x x x ( x N ， t ) = [   a N ， 2 ( 3 ) ⋯ a N ， N − 1 ( 3 ) a N ， N ( 3 ) ] ︸ A ¯ ( 3 ) × [ w ( x 2 ， t ) ⋮ w ( x N − 1 ， t ) w ( x N ， t ) ] . (10e) 将(10)代入控制方程及边界方程得 ρ A [ v ¨ ( x 2 ， t ) ⋮ v ¨ ( x N − 1 ， t ) ] + J y η A ¯ ( 4 ) × [ v ˙ ( x 2 ， t ) ⋮ v ˙ ( x N − 1 ， t ) v ˙ ( x N ， t ) ] + ( J y E A ¯ ( 4 ) − P A A ¯ ( 2 ) ) × [ v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] = 3 2 E A ( A ¯ ( 1 ) × [ v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] ) • ( A ¯ ( 1 ) × [ v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] ) • ( A ¯ ( 2 ) × [ v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] )       + 2 η A ( A ¯ ( 1 ) × [ v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] ) • ( A ¯ ( 1 ) × [ v ˙ ( x 2 ， t ) ⋮ v ˙ ( x N − 1 ， t ) v ˙ ( x N ， t ) ] ) • ( A ¯ ( 2 ) × [ v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] )       + η A ( A ¯ ( 1 ) × [ v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] ) • ( A ¯ ( 1 ) × [ v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] ) • ( A ¯ ( 2 ) × [ v ˙ ( x 2 ， t ) ⋮ v ˙ ( x N − 1 ， t ) v ˙ ( x N ， t ) ] ) + F 0 sin ω t (11) v ， x x x ( x N ， t ) = [   a N ， 2 ( 3 ) ⋯ a N ， N − 1 ( 3 ) a N ， N ( 3 ) ] ︸ A ¯ ( 3 ) × [ v ( x 2 ， t ) ⋮ v ( x N − 1 ， t ) v ( x N ， t ) ] = 0 .(12) 其中 • 表示两向量对应元素的乘积。(11)是一常微分方程组，含有 N − 2 个方程， N − 1 个未知量 v ( x 2 ， t ) ， ⋯ ， v ( x N − 1 ， t ) ， v ( x N ， t ) ，要求解该方程，还需一个条件，而(12)是一代数方程，可以通过(12)得到 一个未知量的表达式 [ 20 ] ，代入方程(11)，则方程(11)成为一完全的常微分方程组，进而可以求其解。 这个代入求解过程需要非常大的计算量且不利于编制程序。因为 a N ， N ( 3 ) ≠ 0 ，因此方程组(11)、(12)联合 组成指标 [ 21 ] 为1的微分代数方程组，可以应用隐式龙格库塔方法直接求解。因此本文针对悬臂边界条件中三阶导数为0，没有采取微分求积法中传统的处理边界条件方法，而是将边界条件用微分求积法则离散得到的代数方程连同内部控制常微分方程组联合组成微分代数方程组直接求解，这样就省去代入法求解的计算量且可以直接编制程序进行计算。