主权项 |
一种索杆张力结构的找形方法,其特征在于,包括以下步骤:第一步、设定索杆张力结构的拓扑关系,并给出其约束条件和压杆长度;第二步、确定索杆张力结构找形分析中的目标函数,<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>Σ</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>b</mi><mo>-</mo><msub><mi>n</mi><mi>s</mi></msub></mrow></munderover><msub><mi>w</mi><mi>j</mi></msub><msup><msub><mi>l</mi><mi>j</mi></msub><mn>4</mn></msup><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>+</mo><munderover><mi>Σ</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>s</mi></msub></munderover><mi>w</mi><mo>_</mo><msub><mi>str</mi><mi>m</mi></msub><msup><mrow><mo>(</mo><msub><mi>L</mi><mi>m</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>l</mi><mi>m</mi></msub><mo>)</mo></mrow><mn>4</mn></msup><mo>+</mo><munderover><mi>Σ</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>f</mi></msub></munderover><mi>w</mi><mo>_</mo><msub><mi>cor</mi><mi>i</mi></msub><msup><mrow><mo>(</mo><msub><mi>X</mi><mi>i</mi></msub><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow>]]></math><img file="FDA0000515903810000011.GIF" wi="1168" he="125" /></maths>其中,x为所有节点坐标向量,表示为:{x<sub>1</sub>,x<sub>2</sub>,x<sub>3</sub>,…,x<sub>p</sub>,…,x<sub>d*n</sub>}<sup>T</sup>;n为结构的节点数;d为结构的维数,当体系为二维结构时,d=2;当体系为三维结构时,d=3;l<sub>j</sub>(x)为第j根拉索的计算长度,是坐标向量x的函数;L<sub>m</sub>为第m根压杆的计算长度,是坐标向量x的函数;l<sub>m</sub>为第m根压杆的给定长度;X<sub>i</sub>是第一步给出第i个约束条件的节点坐标值;b为索杆张力结构的杆件数;n<sub>s</sub>是索杆张力结构的压杆数量;n<sub>f</sub>是约束条件的数量;w<sub>j</sub>为第j根拉索的长度权重系数;w_str<sub>m</sub>为第m根压杆的长度权重系数;w_cor<sub>i</sub>为第i个边界条件的权重系数;第三步、设定每根拉索和压杆的长度权重系数以及每个边界条件的权重系数,并给出梯度法优化中的初始步长step;第四步、输入所有节点坐标向量的初始值x<sup>0</sup>,并带入目标函数,计算得到目标函数为f<sup>0</sup>;第五步、在第k步循环过程中,其对应的节点坐标向量为x<sup>k</sup>,其目标函数值为f<sup>k</sup>,计算每个节点坐标变量在x<sup>k</sup>处的梯度向量为:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mo>▿</mo><mi>f</mi><mo>=</mo><msup><mrow><mo>[</mo><mfrac><mrow><mo>∂</mo><mi>f</mi><mrow><mo>(</mo><msup><mi>x</mi><mi>k</mi></msup><mo>)</mo></mrow></mrow><msub><mrow><mo>∂</mo><mi>x</mi></mrow><mn>1</mn></msub></mfrac><mo>,</mo><mfrac><mrow><mo>∂</mo><mi>f</mi><mrow><mo>(</mo><msup><mi>x</mi><mi>k</mi></msup><mo>)</mo></mrow></mrow><msub><mrow><mo>∂</mo><mi>x</mi></mrow><mn>2</mn></msub></mfrac><mo>,</mo><mo>·</mo><mo>·</mo><mo>·</mo><mo>,</mo><mfrac><mrow><mo>∂</mo><mi>f</mi><mrow><mo>(</mo><msup><mi>x</mi><mi>k</mi></msup><mo>)</mo></mrow></mrow><msub><mrow><mo>∂</mo><mi>x</mi></mrow><mrow><mi>d</mi><mo>*</mo><mi>n</mi></mrow></msub></mfrac><mo>]</mo></mrow><mi>T</mi></msup></mrow>]]></math><img file="FDA0000515903810000012.GIF" wi="678" he="151" /></maths>判断梯度向量中第p个元素是否大于零,如果大于零,x<sub>p</sub><sup>k+1</sup>=x<sub>p</sub><sup>k</sup>‑step;否则,x<sub>p</sub><sup>k+1</sup>=x<sub>p</sub><sup>k</sup>+step。从而可以得到下一个循环步的节点坐标向量x<sup>k+1</sup>;第六步、计算x<sup>k+1</sup>对应的目标函数值f<sup>k+1</sup>。如果f<sup>k+1</sup>>f<sup>k</sup>,则step=step/4;否则,step不变,重复第五步,直至完成所有循环步,输出最终节点坐标向量x。 |