关键词:
横梁与每个立柱通过六个螺栓联接。在螺栓联接部位,结点应当耦合。在非螺栓联接部位,结合面不能承受拉应力,应设置接触单元。模型中包含接触单元以 后,求解过程需要大量的非线性迭代计算,机时增加很多。将横梁与立柱作为一体进行的试算表明,立柱的外侧受拉,内侧受压。考虑到主要分析对象是上横梁与三 个驱动杆处的联接刚度,可以将接触单元略去,在立柱外侧建立联接面几何模型。横梁与立柱的联接处,有螺栓的部位,上下面共享一个关键点,没有螺栓的部位, 上下面各自拥有一个关键点。这样做的好处是,网格剖分时,在公共关键点处自动生成一个结点,建立起立柱和横梁之间的耦合关系。在非公共关键点处,横梁和立 柱上的结点则不会有这种耦合关系。在立柱的内侧,立柱与横梁在接触面上联成一体,所有结点都将是耦合的,立柱和横梁共享这些结点,而不仅仅是在螺栓联接 处。这样做的好处是,既省去了接触单元,又能反映螺栓联接的特点。
立柱底部与基础的联接处理成刚性的全约束。
分析的主要目标是横梁的刚性,可以认为上横梁在与三个驱动杆的联接处承受相同的载荷。这样可以根据计算得到的变形结果,直接评价三个联接部位的刚度。
结构采用薄壁铸件,在分析模型中采用板壳单元shell63模拟。结构的外壁与筋板厚度不同,需要为板壳单元设置两组不同的实常数(real constant)。
同样,为了建模的方便,将两个立柱做成另一个元件。进而将立柱核心部分建立的元件与立柱元件做成一个部件(assembly)。这样,在修改模型的时候,可以很容易地将立柱与横梁的联接部分选择出来,完成修改过程。
经过上述的处理,可以建立类似分析模型。由于模型和载荷的对称性,实际计算可以只取一半,总的单元数就只有8927个,总结点数为4341个,全部使用三角形网格剖分。
3. 优化策略
优化过程本质上是一个试算-修改的迭代过程。以原始设计方案作为迭代计算的初始条件,迭代过程结束的条件是:三个驱动杆联接处的刚度接近相等或者迭代 次数过多。对于这个具体问题,可以预知三个联接部位刚度相等时的横梁位置是存在的,如果迭代不收敛,只能是移动量不合适或者初始位置不合适。为了迭代过程 能够快速有效地收敛,采用对分搜索的变步长算法,自动修正移动量。算法稍微复杂一些,但是对初值的要求不高,有比较好的通用性。
下面给出优化策略的控制流程。
1. 从备份文件中读出横梁在初始位置时的模型数据;
2. 修改横梁的位置;
3. 求解修改后的模型;
4. 读出与三个驱动杆联接部位的变形;
5. 判断是否满足收敛条件,不满足,修改移动量后返回3,满足,则退出循环;
6. 存储求解结果后退出。
下面是程序的主要控制代码及其功能的注释。其中具体的建模指令被省略,代之以省略号,为了便于同控制流程对照,加了部分必要的注释。
/BATCH ANSYS的批处理文件标记
RESUME,,robbak,db,,0 从备份文件robbak.db中读入原始数据
/PREP7 进入前处理器,
。。。 删除横梁与立柱的联接部分
。。。 将横梁核心元件移动一个初始step
。。。 在几何模型上施加载荷和约束
。。。 网格划分
FINISH 退出前处理器
/SOLU 进入求解器
SOLVE 求解
FINISH 退出求解器
/POST1 进入后处理器
*GET,front,NODE,2013,U,Z 读第一个驱动杆联接处的结点变形至front
*GET,back,NODE,1441,U,Z 读第二个驱动杆联接处的结点变形至back
lastdif=1 上一次front与back差值的绝对值
flag=-1 优化结果可行性的标记
step=0.05 从初始位置到最优位置的移动量初值
*DO,I,1,10,1 迭代循环开始,循环变量I,取值范围1~10,步长1
dif=abs(front-back) 本次计算结果中front和back的差的绝对值
*IF,dif,LE,1.0E-6,THEN 判断差值dif是否满足要求
flag=1 满足,则标记置1
*EXIT 退出迭代计算
*ELSEIF,dif,GE,lastdif,THEN 判断差值dif是否变大
flag=2 差值变大,标记置2
。。。 对分法修改step
。。。 继续以前一次位置作起点,以修改后的step为当前step,开始新一轮
迭代计算
*ELSE 差值不小于期望值,且逐渐变小,需继续移动上横梁
。。。 从备份文件中读入初始状态数据
。。。 进入前处理器