![基于仿真的结构优化方法](https://wfqqreader-1252317822.image.myqcloud.com/cover/271/26351271/b_26351271.jpg)
2.1 谱元法
谱元法[42]是Patera在1984年提出来的,应用于流体动力学,其将有限元法处理边界和结构的灵活性与谱方法的快算收敛性结合起来。在要求相同精度的情况下,谱元法能够采用较少的单元减小计算开销。在一个单元内,谱元法将时间离散为与GLL多项式零点相对应的网格点,在这些点上进行Lagrange插值。
在一定点数上插值,从理论上讲,当这些点是对应正交多项式的零点时,获得的插值精度最高[86]。如图2.1所示,均匀点分布和GLL点分布近似Runge函数[见式(2.1)]。在均匀分布的有限元法中,随着插值次数的增加,近似的数值误差极大或近似失败,此时GLL插值有明显的优势。GLL点在标准区间的分布如图2.2所示。
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_1.jpg?sign=1739028718-eKIkzxGv373S91XOrwKeBplw9gSMbjPl-0-96643c6544062e6c49afdab06dc21c5d)
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_2.jpg?sign=1739028718-4UCHoPOafNydZfZ5z86TvxDZQYarUGBi-0-e11884105a9aec7c945b22ade5701533)
图2.1 均匀点和GLL点插值近似Runge函数
微分方程包括动力学方程或方程组,常用来描述自然界的一些物理现象。差分法是直接基于这些微分方程或方程组进行离散化的。但在多数情况下,描述同一物理过程或现象,可用不同的形式。从物理意义上的守恒定律出发,可以推导出变分原理。而变分问题与微分方程定解问题在某种意义下等价。谱元法是基于变分原理的一种离散计算方法。下面讨论一阶线性微分方程的初值问题[见式(2.2)]。高阶线性微分方程可以化成一阶线性微分方程组。
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_3.jpg?sign=1739028718-hsBNSuD4sQ29YG3r6P1RyUa51IgQQ4LE-0-46cab6eafa7648f73af8508ef38b6cbc)
式中,x是依赖于时间的状态变量,且,Nv是状态变量的个数;t是时间;f(x,t)是状态变量x和时间t的函数;As是状态变量的耦合矩阵,与时间无关。
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_5.jpg?sign=1739028718-X3QBhzpZW9iR71femuSPLtjD2SKNbnzf-0-ffc3fbce6cdeb67d34c93a0d9afe53c0)
图2.2 GLL点在标准区间的分布
注:ratio表示最后一个单元与第一个单元的比值;Nel表示单元数;p表示单元内插值节点数。
2.1.1 瞬态和稳态响应分析
应用谱元法将每个状态变量在给定时间段内离散化,并近似为m次Lagrange多项式:
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_6.jpg?sign=1739028718-rHclqBcLHPUnM7HVJtqoOXTeMUqMad3Z-0-568a7c00897645e788110d618936def9)
式中,为第j个单元的第k个m次Lagrange多项式;ξk为定义在[-1,1]上的GLL点;
为第j个单元上未知节点在GLL点的值。Lobatto多项式是Legendre多项式微分定义的正交多项式,见文献[86]第146~151页。其中,ξ∈[-1,1]是经过式(2.4)映射获得的。
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_9.jpg?sign=1739028718-l0c6xZB774U33yEjdRZHikDwwMRrbzxv-0-cc6b1b1f61e4da614c8993e31f2562ee)
式中,分别为第j个单元的第一个节点和第二个节点;ξ为经过域变换后的变量,且ξ∈[-1,1]。这个域如图2.3所示。
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_11.jpg?sign=1739028718-mGG4fEoEizYno2D6kdpOKqUMViIVV7rY-0-91331df32d9ab46b43c0f4e337969d51)
图2.3 时间域可离散为谱单元,每个单元近似为基于GLL点的m次Lagrange多项式
将式(2.3)代入式(2.2),在每个单元上应用Bubnov-Galerkin法[87]使得插值误差最小,得到
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_12.jpg?sign=1739028718-teCiI6rqYHYdbyoirQh7HIENtQzWdoJ0-0-51d00e86666d8ec1ba75397a5804e8fc)
式中,n=0,1,…,m;h(j)是第j个单元的长度;是m次Lagrange多项式的第n个插值的基函数。对式(2.5)每一部分得到
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_14.jpg?sign=1739028718-4nJIv5oOOSY4yILfoM1f8p4ReSxbeP9F-0-8b8998c5ec5b2cbc731ea2932d8f6de9)
式(2.6)中的积分是用Gauss-Lobatto求积公式[见式(2.7)]求的。
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_15.jpg?sign=1739028718-VLILM9ApZdMPZ8u4THqAWM5O99f5aR3Z-0-d07e746008190d1c5c22ece9a3378a24)
式中,I是ξ的一般函数;ωq是Gauss-Lobatto积分在q点的权值[87]。每个单元可用矩阵形式表示为
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_16.jpg?sign=1739028718-coCaqadV3YxxxqkTr5IM5mq1dJ6EBBzg-0-9a32a9dbf518a828ed8208441c45d54f)
其中,
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_17.jpg?sign=1739028718-o0wnAhcX0ay1E2k9oEZbnEOtBPjIwmKb-0-31cabd2dcfffeaac020c5f3dd70d5c2e)
由于相邻两个单元共享其中一个元素,所以应满足:
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_18.jpg?sign=1739028718-3EPvLxauVEdPcIBCOhqoYZbeI9ZJBYWE-0-d9232b57c5fe077b4a13400581531b1d)
通过式(2.8),利用连接矩阵[86]C,将一个状态变量的所有谱单元组装起来,就得到了一个状态变量的Galerkin近似方程:
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_19.jpg?sign=1739028718-KoSHz6yn7Nr86Ic8CPwiSu7mRcnWy3NV-0-ae27d6c7f8b2f3487b847b2e196dd911)
式中,Bu、Bω是全局微分矩阵与全局权矩阵;F(Xu)是激励力的全局形式,其中,
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_20.jpg?sign=1739028718-ztIf7qHPNDHSpBhcWX9jDtwWCa9FYSvP-0-1974c4e68b4b21507495d671d5faed40)
是用谱元法表示的状态变量x的所有时间节点变量。对式(2.12)进行初始条件处理,将Bu第一行和第一列的第一个元素设为1,Bu的第一行和第一列的其余元素设为0;再将Bω的第一个元素设为0,同时将-Bω F(Xu)的第一个元素设为式(2.2)中的初始值,即x|t=0=x0。
稳态响应分析时的谱离散和瞬态响应分析时的相同,但组装全局微分矩阵和全局权矩阵时有所区别。由于初始条件不影响稳态响应,因此不需要进行初始条件处理。由于周期的特殊性,要求第一个单元的第一个节点和最后一个单元的最后一个节点相等,即
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_21.jpg?sign=1739028718-3KNY5ySZQqRdFwgnojIFXrrr7oZZbGRW-0-5f3a366bf495d1965b7d7aa1c505d71c)
对第一行、第一列和最后一行、最后一列进行处理:将全局微分矩阵Bu的最后一行加到第一行上,将最后一列加到第一列上,然后去掉最后一行和最后一列;全局权矩阵Bω也做同样的处理;对F(Xu),将最后一个元素加到第一个元素上,去掉最后一个元素,则Xu变成
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_22.jpg?sign=1739028718-hxIsqT7f3tHInS66wGoyDCzUU9uDeWgG-0-142b8d0d8b40138d1edf7d65d90f9675)
2.1.2 全部状态变量的全局组装和求解
对Nv个状态变量,通过耦合矩阵As(Nv×Nv的方阵)的张量叉乘得到全部状态变量的全局组装式:
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_23.jpg?sign=1739028718-fG8E9vPripVsC9Wugs82jzHEu5Db104I-0-0e88d6794b868a3944f13a5c6a60d963)
式中,I是Nv×Nv单位矩阵;Xug是所有状态变量在时间节点的集合。对瞬态响应Xug而言,有
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_24.jpg?sign=1739028718-zchTQHSDzTCxK0jGtlH9PbOMaMbRp7n2-0-3d866a659e18ee1e5c768cd257edffb0)
化简式(2.16)得
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_25.jpg?sign=1739028718-crSxIpprenxqgn8tY092fCW0eeDLSA4G-0-4f1023f96acaa6c3f8fcf9ac4256cf17)
![](https://epubservercos.yuewen.com/F04E26/14814527805561906/epubprivate/OEBPS/Images/txt002_26.jpg?sign=1739028718-Z6VYAZL11I93HOvUvVNtvgavmHCbn7XS-0-66b7941c5bf659ee914659061c4586ae)