发明名称 一种异型蜂窝结构的有限元建模方法
摘要 一种异型蜂窝结构的有限元建模方法,有十三个步骤:一、建立其截面几何模型;二、生成第K环蜂窝结构的中心点;三、筛选出第K环蜂窝结构的域内蜂窝;四、若第K环不存在域内蜂窝,执行十一,否则执行五;五、生成第K环蜂窝结构的每个域内蜂窝的节点;六、对该域内蜂窝的节点进行处理;七、若该域内蜂窝的节点数多于2,则执行八,否则执行九;八、划分该域内蜂窝的线单元;九、若第K环蜂窝结构的域内蜂窝有限元模型未全部生成,则返回执行五,否则执行十;十、若全部环数的蜂窝结构有限元模型未完全生成,则返回执行二,否则执行十一;十一、输出壳单元信息;十二、输出节点信息;十三、输出蜂窝结构粘接处的单元集合信息。
申请公布号 CN102663153B 申请公布日期 2014.08.20
申请号 CN201210060094.2 申请日期 2012.03.08
申请人 北京航空航天大学 发明人 蒋向华;王延荣;魏大盛;杨丰娜
分类号 G06F17/50(2006.01)I 主分类号 G06F17/50(2006.01)I
代理机构 北京慧泉知识产权代理有限公司 11232 代理人 王顺荣;唐爱华
主权项 一种异型蜂窝结构的有限元建模方法,其特征在于:该方法具体步骤如下:步骤一:建立异型蜂窝结构的截面几何模型;首先,根据给定的异型蜂窝结构的边界特性,选择一个垂直于蜂窝厚度方向的截面,建立该蜂窝结构的截面几何模型,蜂窝结构的截面几何模型建立在笛卡尔坐标系的x‑y面上,蜂窝结构的厚度方向位于z轴方向;然后,将截面几何模型划分成多个形状规则的四边形分区,这里需进行多次点是否位于平面几何模型区域内的判断,以及蜂窝结构厚度方向的插值计算,这两种计算都基于四边形平面几何区域,故根据模型实际情况对截面几何模型进行划分;最后,根据六边形蜂窝的几何特性进行有限元建模,假设蜂窝结构粘接方向位于y轴方向,若需要蜂窝粘接方向位于其它方向,则要将蜂窝结构的截面几何模型在坐标系中旋转相应角度进行有限元建模,待建模完成后,将有限元模型旋转回原角度,其中,以一点P<sub>0</sub>(x<sub>0</sub>,y<sub>0</sub>)为旋转中心点,将点P(x,y)逆时针旋转θ角得到点P<sub>t</sub>(x<sub>t</sub>,y<sub>t</sub>)的坐标值的运算用矩阵表示为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>x</mi><mi>t</mi></msub></mtd><mtd><msub><mi>y</mi><mi>t</mi></msub></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>x</mi><mn>0</mn></msub></mtd><mtd><msub><mi>y</mi><mn>0</mn></msub></mtd></mtr></mtable></mfenced><mo>+</mo><mfenced open='(' close=')'><mtable><mtr><mtd><mfenced open='[' close=']'><mtable><mtr><mtd><mi>x</mi></mtd><mtd><mi>y</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>x</mi><mn>0</mn></msub></mtd><mtd><msub><mi>y</mi><mn>0</mn></msub></mtd></mtr></mtable></mfenced></mtd></mtr></mtable></mfenced><mfenced open='[' close=']'><mtable><mtr><mtd><mi>cos</mi><mi>&theta;</mi></mtd><mtd><mi>sin</mi><mi>&theta;</mi></mtd></mtr><mtr><mtd><mo>-</mo><mi>sin</mi><mi>&theta;</mi></mtd><mtd><mi>cos</mi><mi>&theta;</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000467866070000011.GIF" wi="1768" he="165" /></maths>步骤二:生成第K环蜂窝结构的蜂窝中心点,此处K取值为0≤K≤Kp;选择截面几何模型上的一个蜂窝结构中心点C(x<sub>C</sub>,y<sub>C</sub>)作为基准点,向外生成第K环蜂窝结构的蜂窝中心点,此处K取值为0≤K≤Kp,这里以C点为中心点的蜂窝视为第0环,向外依次为第1,2,...,Kp环,Kp为预设的蜂窝环数上限;当K=0时,第K环上的蜂窝中心点为C(x<sub>C</sub>,y<sub>C</sub>),当K≠0时,按下述方法生成第K环蜂窝中心点:首先,生成第K环上蜂窝中心点和C点的连线与x轴夹角为<img file="FDA0000467866070000012.GIF" wi="248" he="116" />(i=1,2...,6)的蜂窝结构中心点,此处K取值为1≤K≤Kp,这样的蜂窝中心点每环有六个,其坐标为:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>x</mi><mrow><mi>k</mi><mo>,</mo><mi>i</mi></mrow></msub><mo>=</mo><msqrt><mn>3</mn></msqrt><mi>Kh</mi><mi>cos</mi><mo>[</mo><mfrac><mi>&pi;</mi><mn>6</mn></mfrac><mo>+</mo><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mfrac><mi>&pi;</mi><mn>3</mn></mfrac><mo>]</mo><mo>+</mo><msub><mi>x</mi><mi>C</mi></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mrow><mi>k</mi><mo>,</mo><mi>i</mi></mrow></msub><mo>=</mo><msqrt><mn>3</mn></msqrt><mi>Kh</mi><mi>sin</mi><mo>[</mo><mfrac><mi>&pi;</mi><mn>6</mn></mfrac><mo>+</mo><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mfrac><mi>&pi;</mi><mn>3</mn></mfrac><mo>]</mo><mo>+</mo><msub><mi>y</mi><mi>C</mi></msub></mtd></mtr></mtable></mfenced><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mn>6</mn><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000467866070000021.GIF" wi="1783" he="278" /></maths>其中,h为蜂窝的边长;然后,考虑到蜂窝在y轴方向上存在粘接厚度,将生成的上述中心点与基准点C间的y轴方向距离扩大Ap倍,即y'<sub>k,i</sub>=y<sub>C</sub>+Ap(y<sub>k,i</sub>‑y<sub>C</sub>),其中,Ap为考虑粘接厚度的蜂窝宽度比,<img file="FDA0000467866070000022.GIF" wi="305" he="153" />t为两蜂窝粘接处的厚度,即两蜂窝粘接处的实际厚度与蜂窝胞壁厚度之差;最后,生成第K环上其余的蜂窝中心点,此处K取值为2≤K≤Kp,这些蜂窝中心点位于每对相邻的已生成中心点连线的等分点上,选取已生成的两相邻中心点C<sub>k,i</sub>(x<sub>k,i</sub>,y'<sub>k,i</sub>)和C<sub>k,i+1</sub>(x<sub>k,i+1</sub>,y'<sub>k,i+1</sub>),通过这两点生成二者之间的蜂窝中心点C<sub>k,j</sub>的坐标值为:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>x</mi><mrow><mi>k</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><msub><mi>x</mi><mrow><mi>k</mi><mo>,</mo><mi>i</mi></mrow></msub><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>q</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>x</mi><mrow><mi>k</mi><mo>,</mo><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mi>q</mi></mtd></mtr><mtr><mtd><msub><mi>y</mi><mrow><mi>k</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><msub><msup><mi>y</mi><mo>&prime;</mo></msup><mrow><mi>k</mi><mo>,</mo><mi>i</mi></mrow></msub><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>q</mi><mo>)</mo></mrow><mo>+</mo><msub><msup><mi>y</mi><mo>&prime;</mo></msup><mrow><mi>k</mi><mo>,</mo><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mi>q</mi></mtd></mtr></mtable></mfenced><mi>j</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>K</mi><mo>-</mo><mn>1</mn><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000467866070000023.GIF" wi="1793" he="157" /></maths>其中,q=j/K,这样的操作总共进行六次,将第K环上其余的蜂窝中心点生成;步骤三:在第K环蜂窝结构中筛选出有角点位于截面几何模型区域内的蜂窝结构即域内蜂窝,此处K取值为0≤K≤Kp,记第K环域内蜂窝的数量为nf;首先,对第K环的每个蜂窝中心点C'(x<sub>i</sub>,y<sub>i</sub>),此处K取值为0≤K≤Kp,写出其对应的蜂窝结构的第j个角点的坐标:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><msub><mi>x</mi><mi>i</mi></msub><mo>+</mo><mi>h</mi><mi>cos</mi><mfrac><mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mi>&pi;</mi></mrow><mn>3</mn></mfrac></mtd></mtr><mtr><mtd><msub><mi>y</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><msub><mi>y</mi><mi>i</mi></msub><mo>+</mo><mi>h</mi><mi>sin</mi><mfrac><mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mi>&pi;</mi></mrow><mn>3</mn></mfrac></mtd></mtr></mtable></mfenced><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mn>6</mn><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000467866070000024.GIF" wi="1815" he="279" /></maths>其中,h为蜂窝的边长;然后,对该蜂窝的第j个角点(x<sub>i,j</sub>,y<sub>i,j</sub>),判断其是否位于截面几何模型区域内,若该蜂窝有角点位于截面几何模型区域内,则将该蜂窝的中心点坐标记录到一个矩阵cmf中,最终得到第K环的域内蜂窝个数,即矩阵cmf的行数nf;判断一点P(x<sub>P</sub>,y<sub>P</sub>)是否位于几何模型区域内使用等参元逆变换插值法或者三角形面积法,两种方法所适用的几何模型都是平面四边形区域,故步骤一中将异型蜂窝结构的截面几何模型划分为多个四边形区域,针对这多个四边形区域分别进行点是否位于其域内的判断,若截面模型中存在这样一个区域使点在其之内,则说明点位于截面几何模型区域内;其中,等参元逆变换插值法是根据四边形区域的解析性质对四边形区域和点P(x<sub>P</sub>,y<sub>P</sub>)进行坐标变换,坐标变换之后四边形区域变为D{(ξ,η)|‑1≤ξ≤1,‑1≤η≤1},而点的坐标变为P'(ξ<sub>P</sub>,η<sub>P</sub>),若点P(ξ<sub>P</sub>,η<sub>P</sub>)位于在区域D{(ξ,η)|‑1≤ξ≤1,‑1≤η≤1}之内,则说明点P(x<sub>P</sub>,y<sub>P</sub>)位于原四边形区域内;三角形面积法是以点P(x<sub>P</sub>,y<sub>P</sub>)为顶点和待判断四边形区域Ω的四条边构造四个三角形,若四个三角形的面积之和小于或等于四边形区域Ω的面积则说明点P(x<sub>P</sub>,y<sub>P</sub>)位于区域Ω内;步骤四:若nf&lt;1,即第K环不存在域内蜂窝,此处K取值为0≤K≤Kp,说明已生成的蜂窝中心点完全覆盖了异型蜂窝结构的截面几何模型区域,进而执行步骤十一,否则继续执行步骤五,本步骤的作用是避免计算资源的浪费;步骤五:生成第K环蜂窝结构的第i个域内蜂窝在截面几何模型上的节点,此处K取值为0≤K≤Kp,此处i取值为i=1,...,nf,并记此蜂窝位于几何模型区域内的节点个数为nin1;本步骤生成第K环蜂窝结构的第i个域内蜂窝在截面几何模型上的节点,此处K取值为0≤K≤Kp,此处i取值为i=1,...,nf,并将这个域内蜂窝的各节点信息写入一个矩阵NInf,NInf是一个6nd×5的矩阵,nd是蜂窝边上的单元密度,NInf的第一列到第五列所要记录的信息分别为:节点序号、节点是否位于蜂窝结构的角点、节点是否位于几何模型区域内、节点的横坐标、节点的纵坐标;按以下方法生成该蜂窝结构的节点:首先,对于中心点坐标为(x<sub>i</sub>,y<sub>i</sub>)的蜂窝,其对应的各节点坐标值为:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><mfrac><mrow><mi>sin</mi><mfrac><mi>&pi;</mi><mn>3</mn></mfrac><mi>h</mi></mrow><mrow><mi>sin</mi><mrow><mo>(</mo><mfrac><mrow><mn>2</mn><mi>&pi;</mi></mrow><mn>3</mn></mfrac><mo>-</mo><mi>&alpha;</mi><mo>)</mo></mrow></mrow></mfrac><mi>cos</mi><mi>&theta;</mi><mo>+</mo><msub><mi>x</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mo>=</mo><mfrac><mrow><mi>sin</mi><mfrac><mi>&pi;</mi><mn>3</mn></mfrac><mi>h</mi></mrow><mrow><mi>sin</mi><mrow><mo>(</mo><mfrac><mrow><mn>2</mn><mi>&pi;</mi></mrow><mn>3</mn></mfrac><mo>-</mo><mi>&alpha;</mi><mo>)</mo></mrow></mrow></mfrac><mi>sin</mi><mi>&theta;</mi><mo>+</mo><msub><mi>y</mi><mi>i</mi></msub></mtd></mtr></mtable></mfenced><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mn>6</mn><mi>nd</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000467866070000041.GIF" wi="1790" he="514" /></maths>其中,h为蜂窝的边长,<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>&theta;</mi><mo>=</mo><mfrac><mrow><mrow><mo>(</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mi>&pi;</mi></mrow><mrow><mn>3</mn><mi>nd</mi></mrow></mfrac><mrow><mo>(</mo><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mn>6</mn><mi>nd</mi><mo>)</mo></mrow><mo>,</mo><mi>&alpha;</mi><mo>=</mo><mi>mod</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>,</mo><mfrac><mi>&pi;</mi><mn>3</mn></mfrac><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000467866070000042.GIF" wi="980" he="127" /></maths>并且,由于蜂窝在y轴方向上存在粘接厚度,故需将各节点与中心点(x<sub>i</sub>,y<sub>i</sub>)在y轴方向上的距离扩大为原来的Ap倍,即y'<sub>i,j</sub>=y<sub>i</sub>+(y<sub>i,j</sub>‑y<sub>i</sub>)Ap,其中,Ap为考虑粘接厚度的蜂窝宽度比,<img file="FDA0000467866070000043.GIF" wi="305" he="153" />h为蜂窝的边长,t为两蜂窝粘接处的粘接厚度;然后,向矩阵NInf中写入各个节点的信息:将该蜂窝结构的节点的坐标值写入矩阵NInf的第四列和第五列,将该蜂窝结构的节点序号即上述j值写入矩阵NInf的第一列,将该蜂窝结构的节点在蜂窝结构中的位置属性写入矩阵NInf的第二列,若节点位于蜂窝角点则元素值为1,若节点位于蜂窝边上则元素值为0,采用式m=mod(j‑1,nd)来进行节点在蜂窝结构中的位置属性的判断,将该蜂窝结构的节点在几何模型中的位置属性写入矩阵NInf的第三列,若节点位于几何模型区域内则元素值为1,若节点位于几何模型区域外则元素值为0;第i个域内蜂窝的节点全部生成之后,此处i取值为i=1,...,nf,找出该蜂窝结构中位于几何模型区域内的节点个数,即矩阵NInf中第三列元素值为1的行数,记作nin1;步骤六:对第K环蜂窝结构的第i个域内蜂窝进行处理,此处K取值为0≤K≤Kp,此处i取值为i=1,...,nf,并记经过处理后此蜂窝位于几何模型区域内的节点个数为nin2;本步骤旨在处理位于截面几何模型边界上的不完整的蜂窝结构,对其采取节点排布方法,以达到有限元模型与几何模型的匹配,对第K环蜂窝结构的第i个域内蜂窝进行处理之后,此处K取值为0≤K≤Kp,此处i取值为i=1,...,nf,该蜂窝结构的信息矩阵NInf会有相应的更新,对蜂窝结构的节点进行处理的方法将另外详述;经过处理之后,第i个域内蜂窝的节点属性将发生变化,此处i取值为i=1,...,nf,找出此时该蜂窝结构位于几何模型区域内的节点个数,即矩阵NInf中第三列元素值为1的行数,记作nin2;步骤七:判断nin2是否大于2,若大于2,则继续执行步骤八,否则直接执行步骤九;nin2≤2说明第i个域内蜂窝近似地看做只有一条蜂窝边位于截面几何模型边界上,此处i取值为i=1,...,nf,在实际情况中该蜂窝边并不存在,故摒弃此蜂窝,进而处理第K环的第i+1个域内蜂窝,此处K取值为0≤K≤Kp;步骤八:划分第K环蜂窝结构的第i个域内蜂窝的线单元,此处K取值为0≤K≤Kp,此处i取值为i=1,...,nf;将蜂窝结构的域内节点按顺序依次写入矩阵nodes,从矩阵nodes中选取适当的节点来构造蜂窝结构的线单元,将构成线单元的节点号写入一个矩阵elems,对于完整的域内蜂窝结构,其蜂窝结构中每两个相邻节点生成一个线单元,对于位于截面几何模型边界上的不完整的蜂窝结构,每两个相邻的域内节点生成一个线单元,但第一个域内节点和最后一个域内节点之间不生成线单元,即蜂窝结构被模型边界切割处没有胞壁结构;由于蜂窝粘接处存在粘接厚度,进行有限元分析时粘接处壳单元需要赋给另外的厚度值,故需将粘接处的壳单元归类为一个集合,使用矩阵sets来记录这些单元,假设y轴方向为粘接方向,则将每个蜂窝结构中垂直于y轴的蜂窝边上的线单元号写入矩阵sets,对完整蜂窝来说,按其节点生成的顺序,蜂窝中第n个单元为粘接处单元的条件是:将(n‑1)/nd向零取整值为1或4,其中,nd为蜂窝边上的单元密度;当截面几何模型上的线单元全部生成之后,矩阵nodes储存截面几何模型上的全部节点信息,矩阵elems储存截面几何模型上的全部线单元信息,矩阵sets储存截面几何模型上蜂窝结构粘接处的单元号;步骤九:i=i+1,并判断i值是否大于nf,若小于或等于nf,则返回执行步骤五,若大于nf,则执行步骤十;i&gt;nf说明第K环的域内蜂窝结构的有限元模型已建立完成,此处K取值为0≤K≤Kp,进而处理第K+1环蜂窝结构;步骤十:K=K+1,并判断K值是否大于Kp,若小于或等于Kp,则返回执行步骤二,若大于Kp,规定的最大环数蜂窝结构的有限元模型已全部生成,继续执行步骤十一;步骤十一:输出壳单元信息;得到截面几何模型上线单元总数ElemNum和节点总数NodeNum,假设在z轴方向上有NLay层壳单元;对于第iLay层上的第j个壳单元,此处iLay取值为iLay=1,...,NLay,此处j取值为j=1,...,ElemNum,其节点号为n1,n2,n1+NodeNum和n2+NodeNum,显然,iLay=1时,n1和n2即矩阵elems中的对应线单元节点号,iLay&gt;1时,n1和n2即第iLay‑1层壳单元的两个较大值的节点号;按照输出要求,将单元所包含的节点号按行写入单元信息输出文件;步骤十二:输出节点信息;对于位于截面几何模型上的节点,其竖坐标为0,其它节点的竖坐标根据异型蜂窝结构几何模型特性利用厚度方向的插值方法得到,对于竖坐标值不为0的节点,为其构造一个节点坐标向量coord3,coord3的前两个元素是该节点对应在矩阵nodes中所记录的横坐标和纵坐标值,coord3的第三个元素,即该节点的竖坐标值,采用基于几何模型四边形分区的四个角点坐标进行平面插值的方法得到,最终形成的有限元模型在蜂窝结构的顶面将会是分片的平面,或者更精确的是基于节点在x‑y面上的投影所在的四边形分区选用相应的插值函数进行曲面插值,将在蜂窝结构的顶面得到与实际模型更加精确匹配的分片曲面;将每个节点的坐标经过角度旋转的坐标变换,得到原角度位置下的节点坐标,按输出要求输出,这里需要注意节点信息的输出顺序,位于截面几何模型上的节点应按照矩阵nodes的存储的顺序,其它每层节点都应对应于矩阵nodes的存储顺序,这样才能使节点信息与单元信息输相对应;步骤十三:输出蜂窝结构粘接处的单元集合信息;根据输出要求,将蜂窝结构粘接处的单元号写入集合信息输出文件。
地址 100191 北京市海淀区学院路37号