Ansys的方法有两种,一是用SUMT (Sequential Unconstrained Minimization techniques),一是用response surface approximation. ANSYS在用这两种方法时,当遇到constraint,都是用penalty function. 也就是将有constraint的函数设法简化成没有constraint的函数,而不是将每一条的constraint都分开讨论.
所以本来的函数如果是
to minimize f(x)
subjected to g(x) <0
ANSYS会将之化成
To minimize f(x)+w*G(x)
所以,当 (1)函数非线性度高 (2)constraint多 (3)设计变量多 时,收敛就会有问题(optimization解的多半是非线性,而且是不等式,不是等式)
另一个问题就是你提的网格变化的问题了.我可以很肯定地告诉你, 如果循环之间的网格无法保持一致,收敛会容易出现问题. Paramesh有维持网格一致的东功能,但是也不知道跟ansys的整合性如何.为了解决这个问题,有所谓的”natural shape function”方法的出现.在我的网站里
www.FEA-Optimization.com > Forum, News, Resource > Resource > Technical Paper
有一篇· S-Y. Chen, Nov 2002, "Integrating ANSYS with Modern Numerical Optimization Techniques - Part II : A Reverse Parametric Modeling Approach for Structural Shaping Optimization, 2002 Taiwan Area ANSYS Users Conference.
可参考一下
还有ansys多半是取最大应力来作constraint.这也会出问题的. 即使网格可以保持一致的情况下, 只取最大应力都会有问题,何况是网格不能一致?
以下贴两个ANSYS optimization的log file,是很简单的truss结构,但是ANSYS无法收敛.供大家参考…………
S-Y. Chen
www.FEA-Optimization.com
! ========================================================
! Create by S-Y. Chen, 20001209 www.FEA-Optimization.com
! Data obtained from Dr. Patnaik at NASA @20041208
! ========================================================
! References
! ----------
! S.N.Patnaik, "Comparative Evaluation of Different Optimization Algorithms
! for Structural Design Applications", International Journal for Numerical
! Methods in Engineering, V39 pp1761-1774, 1996
!
! This is test problem P2 for NASA COMETBOARD
! ========================================================
! This model has shown that ANSYS has difficulty of convergence for certain problems
! ========================================================
!
*CREATE,P2_ANS
!
/FILNAME,P2_ANS
!
! ===========================================================
! INITIALIZE DV
DV001=1.0
DV002=1.0
DV003=1.0
DV004=1.0
DV005=1.0
DV006=1.0
DV007=1.0
DV008=1.0
DV009=1.0
DV010=1.0
!
/PREP7
N, 1, 0.00000, 0.00000, 0.00000
N, 2, 162.50000, 0.00000, 0.00000
N, 3, 325.00000, 0.00000, 0.00000
N, 4, 325.00000, 50.00000, 0.00000
N, 5, 162.50000, 62.50000, 0.00000
N, 6, 0.00000, 75.00000, 0.00000
!
ET,1,1
ET,2,21
MP, EX,1,10000000
MP,NUXY,1,0.3
MP,DENS,1,2.58799e-4
MP,ALPX,1,1.0E-7
!
!
R, 1,DV001
R, 2,DV002
R, 3,DV003
R, 4,DV004
R, 5,DV005
R, 6,DV006
R, 7,DV007
R, 8,DV008
R, 9,DV009
R,10,DV010
!
! ==================================
! TRUSS
TYPE,1
MAT,1
REAL,1
EN, 1, 1, 2,
REAL,2
EN, 2, 2, 3,
REAL,3
EN, 3, 3, 4,
REAL,4
EN, 4, 4, 5,
REAL,5
EN, 5, 5, 6,
REAL,6
EN, 6, 2, 5,
REAL,7
EN, 7, 2, 6,
REAL,8
EN, 8, 1, 5,
REAL,9
EN, 9, 3, 5,
REAL,10
EN, 10, 2, 4,
!
! ===================================
! MASS
ET,2,21
KEYOPT,2,3,4
R,102,5.0285E-4
R,103,9.0512E-4
R,104,5.0285E-4
R,105,9.0512E-4
TYPE,2
REAL,102
EN,102,2
REAL,103
EN,103,3
REAL,104
EN,104,4
REAL,105
EN,105,5
!
! ====================================
! TOTAL VOLUME
TTLVOLU=0.0
*GET,ZTMP0001,ELEM,1,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,2,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,3,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,4,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,5,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,6,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,7,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,8,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,9,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,10,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
!
!
! ========================
! MODAL ANALYSIS
/PREP7
ANTYPE,MODAL
/SOLU
EQSLV,FRONT
LSCLEAR,ALL
D,1,UX,0
D,1,UY,0
D,6,UX,0
D,6,UY,0
MODOPT,SUBSP,5
SOLVE
/POST1
SET,1,1
*GET,LS03FQ01,MODE,1,FREQ
*GET,LS03FQ02,MODE,2,FREQ
*GET,LS03FQ03,MODE,3,FREQ
!*GO,INE01
!
!
/PREP7
ANTYPE,STATIC
/SOLU
EQSLV,FRONT
!
! ========================
! Load step 1
LSCLEAR,ALL
/INPUT,P2_T00,s01,../
solve
!
! ========================
! Load step 2
LSCLEAR,ALL
/INPUT,P2_T00,s02,../
SOLVE
!
!
/POST1
SET,1
ETAB,LS1SAXL1,LS,1
*GET,LS01ES01,ELEM, 1,ETAB,LS1SAXL1
*GET,LS01ES02,ELEM, 2,ETAB,LS1SAXL1
*GET,LS01ES03,ELEM, 3,ETAB,LS1SAXL1
*GET,LS01ES04,ELEM, 4,ETAB,LS1SAXL1
*GET,LS01ES05,ELEM, 5,ETAB,LS1SAXL1
*GET,LS01ES06,ELEM, 6,ETAB,LS1SAXL1
*GET,LS01ES07,ELEM, 7,ETAB,LS1SAXL1
*GET,LS01ES08,ELEM, 8,ETAB,LS1SAXL1
*GET,LS01ES09,ELEM, 9,ETAB,LS1SAXL1
*GET,LS01ES10,ELEM,10,ETAB,LS1SAXL1
!
*GET,LS01NU01,NODE,3,U,Y
*GET,LS01NU02,NODE,4,U,Y
!
!
SET,2
ETAB,LS2SAXL1,LS,1
*GET,LS02ES01,ELEM, 1,ETAB,LS2SAXL1
*GET,LS02ES02,ELEM, 2,ETAB,LS2SAXL1
*GET,LS02ES03,ELEM, 3,ETAB,LS2SAXL1
*GET,LS02ES04,ELEM, 4,ETAB,LS2SAXL1
*GET,LS02ES05,ELEM, 5,ETAB,LS2SAXL1
*GET,LS02ES06,ELEM, 6,ETAB,LS2SAXL1
*GET,LS02ES07,ELEM, 7,ETAB,LS2SAXL1
*GET,LS02ES08,ELEM, 8,ETAB,LS2SAXL1
*GET,LS02ES09,ELEM, 9,ETAB,LS2SAXL1
*GET,LS02ES10,ELEM,10,ETAB,LS2SAXL1
!
*GET,LS02NU01,NODE,3,U,Y
*GET,LS02NU02,NODE,4,U,Y
!
SAVE
*END
!
! ======================================================
*USE,P2_ANS
!
! ======================================================
! ======================================================
! OPTIMIZATION SESSION
/OPT
!
OPVAR,TTLVOLU,OBJ
OPVAR,DV001,DV,0.01,10000,
OPVAR,DV002,DV,0.01,10000,
OPVAR,DV003,DV,0.01,10000,
OPVAR,DV004,DV,0.01,10000,
OPVAR,DV005,DV,0.01,10000,
OPVAR,DV006,DV,0.01,10000,
OPVAR,DV007,DV,0.01,10000,
OPVAR,DV008,DV,0.01,10000,
OPVAR,DV009,DV,0.01,10000,
OPVAR,DV010,DV,0.01,10000,
!
OPVAR,LS01ES01,SV,-1.0E4,+1.0E4
OPVAR,LS01ES02,SV,-1.0E4,+1.0E4
OPVAR,LS01ES03,SV,-1.0E4,+1.0E4
OPVAR,LS01ES04,SV,-1.0E4,+1.0E4
OPVAR,LS01ES05,SV,-1.0E4,+1.0E4
OPVAR,LS01ES06,SV,-1.0E4,+1.0E4
OPVAR,LS01ES07,SV,-1.0E4,+1.0E4
OPVAR,LS01ES08,SV,-1.0E4,+1.0E4
OPVAR,LS01ES09,SV,-1.0E4,+1.0E4
OPVAR,LS01ES10,SV,-1.0E4,+1.0E4
!
OPVAR,LS02ES01,SV,-1.0E4,+1.0E4
OPVAR,LS02ES02,SV,-1.0E4,+1.0E4
OPVAR,LS02ES03,SV,-1.0E4,+1.0E4
OPVAR,LS02ES04,SV,-1.0E4,+1.0E4
OPVAR,LS02ES05,SV,-1.0E4,+1.0E4
OPVAR,LS02ES06,SV,-1.0E4,+1.0E4
OPVAR,LS02ES07,SV,-1.0E4,+1.0E4
OPVAR,LS02ES08,SV,-1.0E4,+1.0E4
OPVAR,LS02ES09,SV,-1.0E4,+1.0E4
OPVAR,LS02ES10,SV,-1.0E4,+1.0E4
!
OPVAR,LS01NU01,SV,,2.2
OPVAR,LS01NU02,SV,,2.2
OPVAR,LS02NU01,SV,,2.2
OPVAR,LS02NU02,SV,,2.2
!
OPVAR,LS03FQ01,SV,26,
!
! ======================================================
! OPTIMIZATION LOOP
OPANL,P2_ANS
OPTYPE,SUBP
OPSUBP,100
OPPRNT,ON
OPEXE
!
! ========================================================
! Create by S-Y. Chen, 20001209 www.FEA-Optimization.com
! Data obtained from Dr. Patnaik at NASA @20041208
! ========================================================
! References
! ----------
! S.N.Patnaik, "Comparative Evaluation of Different Optimization Algorithms
! for Structural Design Applications", International Journal for Numerical
! Methods in Engineering, V39 pp1761-1774, 1996
!
! This is test problem P9 for NASA COMETBOARD
! ========================================================
! This model has shown that ANSYS has difficulty of convergence for certain problems
! ========================================================
*CREATE,P9_ANS
!
!
/FILNAME,P9_ANS
!
DV001=1.0
DV002=1.0
DV003=1.0
DV004=1.0
DV005=1.0
DV006=1.0
DV007=1.0
DV008=1.0
DV009=1.0
DV010=1.0
!
/PREP7
N, 1, 0.00000, 0.00000, 0.00000
N, 2, 360.00000, 0.00000, 0.00000
N, 3, 720.00000, 0.00000, 0.00000
N, 4, 720.00000, 360.00000, 0.00000
N, 5, 360.50000, 360.50000, 0.00000
N, 6, 0.00000, 360.00000, 0.00000
!
ET,1,1
ET,2,21
MP, EX,1,10000000
MP,NUXY,1,0.3
MP,DENS,1,2.58799e-4
MP,ALPX,1,1.0E-7
!
!
R, 1,DV001
R, 2,DV002
R, 3,DV003
R, 4,DV004
R, 5,DV005
R, 6,DV006
R, 7,DV007
R, 8,DV008
R, 9,DV009
R,10,DV010
!
! ==================================
! TRUSS
TYPE,1
MAT,1
REAL,1
EN, 1, 1, 2,
REAL,2
EN, 2, 2, 3,
REAL,3
EN, 3, 3, 4,
REAL,4
EN, 4, 4, 5,
REAL,5
EN, 5, 5, 6,
REAL,6
EN, 6, 2, 5,
REAL,7
EN, 7, 1, 5,
REAL,8
EN, 8, 2, 6,
REAL,9
EN, 9, 2, 4,
REAL,10
EN, 10, 3, 5,
!
! ===================================
! MASS
ET,2,21
KEYOPT,2,3,4
R,102,5.0285E-4
R,103,9.0512E-4
R,104,5.0285E-4
R,105,9.0512E-4
TYPE,2
REAL,102
EN,102,2
REAL,103
EN,103,3
REAL,104
EN,104,4
REAL,105
EN,105,5
!
! ====================================
! TOTAL VOLUME
TTLVOLU=0.0
*GET,ZTMP0001,ELEM,1,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,2,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,3,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,4,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,5,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,6,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,7,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,8,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,9,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
*GET,ZTMP0001,ELEM,10,VOLU
TTLVOLU=TTLVOLU+ZTMP0001
!
!
! ========================
! MODAL ANALYSIS
/PREP7
ANTYPE,MODAL
/SOLU
EQSLV,FRONT
LSCLEAR,ALL
D,1,UX,0
D,1,UY,0
D,6,UX,0
D,6,UY,0
MODOPT,SUBSP,5
SOLVE
/POST1
SET,1,1
*GET,LS03FQ01,MODE,1,FREQ
*GET,LS03FQ02,MODE,2,FREQ
*GET,LS03FQ03,MODE,3,FREQ
!*GO,:LINE01
!
!
/PREP7
ANTYPE,STATIC
/SOLU
EQSLV,FRONT
!
! ========================
! Load step 1
LSCLEAR,ALL
/INPUT,P9_T00,s01,../,
solve
!
! ========================
! Load step 2
LSCLEAR,ALL
/INPUT,P9_T00,s02,../,
SOLVE
!
!
/POST1
SET,1
ETAB,LS1SAXL1,LS,1
*GET,LS01ES01,ELEM, 1,ETAB,LS1SAXL1
*GET,LS01ES02,ELEM, 2,ETAB,LS1SAXL1
*GET,LS01ES03,ELEM, 3,ETAB,LS1SAXL1
*GET,LS01ES04,ELEM, 4,ETAB,LS1SAXL1
*GET,LS01ES05,ELEM, 5,ETAB,LS1SAXL1
*GET,LS01ES06,ELEM, 6,ETAB,LS1SAXL1
*GET,LS01ES07,ELEM, 7,ETAB,LS1SAXL1
*GET,LS01ES08,ELEM, 8,ETAB,LS1SAXL1
*GET,LS01ES09,ELEM, 9,ETAB,LS1SAXL1
*GET,LS01ES10,ELEM,10,ETAB,LS1SAXL1
!
*GET,LS01NU01,NODE,3,U,Y
*GET,LS01NU02,NODE,4,U,Y
!
!
SET,2
ETAB,LS2SAXL1,LS,1
*GET,LS02ES01,ELEM, 1,ETAB,LS2SAXL1
*GET,LS02ES02,ELEM, 2,ETAB,LS2SAXL1
*GET,LS02ES03,ELEM, 3,ETAB,LS2SAXL1
*GET,LS02ES04,ELEM, 4,ETAB,LS2SAXL1
*GET,LS02ES05,ELEM, 5,ETAB,LS2SAXL1
*GET,LS02ES06,ELEM, 6,ETAB,LS2SAXL1
*GET,LS02ES07,ELEM, 7,ETAB,LS2SAXL1
*GET,LS02ES08,ELEM, 8,ETAB,LS2SAXL1
*GET,LS02ES09,ELEM, 9,ETAB,LS2SAXL1
*GET,LS02ES10,ELEM,10,ETAB,LS2SAXL1
!
*GET,LS02NU01,NODE,3,U,Y
*GET,LS02NU02,NODE,4,U,Y
!
SAVE
*END
!
! ======================================================
*USE,P9_ANS
!
! ======================================================
! ======================================================
! OPTIMIZATION SESSION
/OPT
!
OPVAR,TTLVOLU,OBJ
OPVAR,DV001,DV,0.01,10000,
OPVAR,DV002,DV,0.01,10000,
OPVAR,DV003,DV,0.01,10000,
OPVAR,DV004,DV,0.01,10000,
OPVAR,DV005,DV,0.01,10000,
OPVAR,DV006,DV,0.01,10000,
OPVAR,DV007,DV,0.01,10000,
OPVAR,DV008,DV,0.01,10000,
OPVAR,DV009,DV,0.01,10000,
OPVAR,DV010,DV,0.01,10000,
!
OPVAR,LS01ES01,SV,-1.0E4,+1.0E4
OPVAR,LS01ES02,SV,-1.0E4,+1.0E4
OPVAR,LS01ES03,SV,-1.0E4,+1.0E4
OPVAR,LS01ES04,SV,-1.0E4,+1.0E4
OPVAR,LS01ES05,SV,-1.0E4,+1.0E4
OPVAR,LS01ES06,SV,-1.0E4,+1.0E4
OPVAR,LS01ES07,SV,-1.0E4,+1.0E4
OPVAR,LS01ES08,SV,-1.0E4,+1.0E4
OPVAR,LS01ES09,SV,-1.0E4,+1.0E4
OPVAR,LS01ES10,SV,-1.0E4,+1.0E4
!
OPVAR,LS02ES01,SV,-1.0E4,+1.0E4
OPVAR,LS02ES02,SV,-1.0E4,+1.0E4
OPVAR,LS02ES03,SV,-1.0E4,+1.0E4
OPVAR,LS02ES04,SV,-1.0E4,+1.0E4
OPVAR,LS02ES05,SV,-1.0E4,+1.0E4
OPVAR,LS02ES06,SV,-1.0E4,+1.0E4
OPVAR,LS02ES07,SV,-1.0E4,+1.0E4
OPVAR,LS02ES08,SV,-1.0E4,+1.0E4
OPVAR,LS02ES09,SV,-1.0E4,+1.0E4
OPVAR,LS02ES10,SV,-1.0E4,+1.0E4
!
OPVAR,LS01NU01,SV,,2.2
OPVAR,LS01NU02,SV,,2.2
OPVAR,LS02NU01,SV,,2.2
OPVAR,LS02NU02,SV,,2.2
!
OPVAR,LS03FQ01,SV,26,
!
! ======================================================
! OPTIMIZATION LOOP
OPANL,P9_ANS
OPTYPE,SUBP
OPSUBP,100
OPPRNT,ON
OPEXE
! |