fhyd212 发表于 2010-5-17 14:31:51

约束处理方法

有限元在处理约束时,有消去法,置大数法和置1赋0法,这几种方法的适用范围是什么呢?另外 各位听说过拉格朗日乘子法么请高手指教下

whero_2000 发表于 2010-5-17 14:46:55

置大数法是在约束位移是给定值时采取的方法,比如在静力问题需要加载荷时;你说的置1赋0法应该和消去法一个意思,都是把约束的矩阵元素消去,不参加运算,比如0位移。拉格朗日乘子法我在大学上数学分析课看过,是函数在约束条件下求极值吧。

refeihc 发表于 2010-5-17 16:31:13

楼上说得没错,楼主问的拉格朗日乘子法本质上是一种求条件极值的方法。

放在这里问,估计是要处理复杂约束条件(也就是常说的约束方程)。我印象中是要先引入一个惩罚函数,然后求极值,最后的效果和直接代入法是一样的,所以不知道拉格朗日乘子法也不要紧。

fhyd212 发表于 2010-5-17 16:58:41

2# whero_2000
多谢指教哈 现在我的问题就是这三种方法的适用范围各是什么呢 还有在求解本征频率的时候要用到这些么

fhyd212 发表于 2010-5-17 17:00:05

3# refeihc
其实约束并不复杂,就是计算一个特征值问题,需要用到这三种约束处理么我设置的边界都是自由的哈 两种材料交界面也是按系统默认处理的 还请指教一下这三种方法的适用范围

hillyuan 发表于 2010-5-17 21:47:37

本帖最后由 hillyuan 于 2010-5-17 22:05 编辑

消去法: Delete the variables that already known.
    Merit: Accurat. Size of linear equation decrease
    Demerit: You need modify the profile of sparix matrix, its programing somewhat difficult

置大数法: Penalty method
   Merit: It is easiest one on programming.
   Demerit: Only provides approximation solution. It make the condition number of obtained matrix worseand increase calculation time when iterative solver is used. Therefore, it is generally used when direct solver is used.

拉格朗日乘子法: It introduce a new variable for each constraints
Merit: Accurat. Could deal with all complex constraints, such as equation constraints, in a unified way that is difficult to be dealed with by 消去法.
Demerit: Increase the size of matrix. You need modify the profile of sparix matrix, and its programming is somewhat difficult.

There are more methods to deal with constraint conditions, e.g.
Augmented lagrangian method: It combined the merit of penalty and lagrangian methods.

Pls refer to a book on Optimization.

fhyd212 发表于 2010-5-17 23:34:42

6# hillyuan
谢谢你的回复哈,很受启发。能否关于优化的参考书的名字给我说下,我再仔细看下,我现在最关心的是处理特征值问题的时候该采用哪种方法

bbssbb 发表于 2010-5-18 01:24:14

7# fhyd212

特征值问题显然用所谓的消去法方便啊。不过要当心过约束问题。

fhyd212 发表于 2010-5-18 08:01:16

8# bbssbb
谢谢哈 不过也不见得吧 开始计算的时候用的是消去 但是跟理论相差太大了,后面就用置大数才好 另外“过约束”这个词第一次听说 很不错 谢谢

hillyuan 发表于 2010-5-18 08:02:07

6# hillyuan
谢谢你的回复哈,很受启发。能否关于优化的参考书的名字给我说下,我再仔细看下,我现在最关心的是处理特征值问题的时候该采用哪种方法
fhyd212 发表于 2010-5-17 23:34 http://forum.simwe.com/images/common/back.gif

The methods to deal with constraints is irrelevent to the physical model you are using. So any method could work if the method is implemented in your program.

Any book in optimazition should have contents about method to deal with constraints, so just find one you are easy to obtain.

refeihc 发表于 2010-5-18 11:41:58

8# bbssbb
谢谢哈 不过也不见得吧 开始计算的时候用的是消去 但是跟理论相差太大了,后面就用置大数才好 另外“过约束”这个词第一次听说 很不错 谢谢
fhyd212 发表于 2010-5-18 08:01 http://forum.simwe.com/images/common/back.gif

我同意8楼的意见,也倾向于用消去法。楼主认为用消去法得到的结果跟理论结果相差大,不知有没有分析原因,质量矩阵是怎么处理的?

用消去法不会产生额外的精度损失,这是它比置大数法好的地方。
用消去法不会产生虚假模态,这是它比另2个方法好的地方。

fhyd212 发表于 2010-5-18 17:46:04

10# hillyuan
thank you for your help! i will check it!

fhyd212 发表于 2010-5-18 17:48:29

11# refeihc
谢谢指教哈!让我认识到了消去法的有点。下午我问了一个教有限元的老师,他的意思是用置大数法,说这个是通用的。另外,我想请问一下用gui操作的时候涉及质量针的处理么,不就是划分网格就可以解决了么,不晓得这么问是不是合适 还请指教哈!

fengying52 发表于 2010-5-18 18:02:11

懵懂!学习,加油!

refeihc 发表于 2010-5-18 18:17:20

质量阵的计算分2种情况,分布式和集中式,可以通过GUI设置,自己查一下软件说明。

...
一个教有限元的老师,他的意思是用置大数法,说这个是通用的。
...

老师是这样教你的么,不好说什么。

我建议你再问老师,模态分析不仅要处理刚度矩阵,还要处理质量矩阵,2个矩阵都置大数该怎么置?哪个大,哪个小,还是一样大?

pasuka 发表于 2010-5-18 20:43:40

质量阵的计算分2种情况,分布式和集中式,可以通过GUI设置,自己查一下软件说明。


老师是这样教你的么,不好说什么。

我建议你再问老师,模态分析不仅要处理刚度矩阵,还要处理质量矩阵,2个矩阵都置大数该怎 ...


refeihc 发表于 2010-5-18 18:17 http://forum.simwe.com/images/common/back.gif
刚度阵置大数即可,如果把刚度阵和质量阵都置大数还能得到正确结果,真是邪门了~
赋1置0的话,倒是刚度阵和质量都需要处理,质量不进行处理的话,结果会有细小差别
消去显然是最好的办法,具体参考:巴特的《有限元分析中的数值方法》、刘永仁的《结构分析中的程序设计》,后者讲得更具体些

refeihc 发表于 2010-5-19 00:34:07

本帖最后由 refeihc 于 2010-5-20 08:54 编辑

个人观点:
静力问题,楼主说的3种方法都可用。

模态分析:
1用消去法最好。
2如果用置0赋1法,则应该有所变通:假设约束自由度为 i ,将刚度和质量矩阵的非对角元素置0,即
       k_{ij}=k_{ji}=0
       m_{ij}=m_{ji}=0
上面 j 不等于 i。对角线元素k_{ii}和m_{ii}均取成非零,并且
    k_{ii}=1,   m_{ii}=a^2
其中a是比较大的正数,大于前若干阶频率即可。
3 置大数法感觉不能用。

bbssbb 发表于 2010-5-19 01:54:34

8# bbssbb
谢谢哈 不过也不见得吧 开始计算的时候用的是消去 但是跟理论相差太大了,后面就用置大数才好 另外“过约束”这个词第一次听说 很不错 谢谢
fhyd212 发表于 2010-5-18 08:01 http://forum.simwe.com/images/common/back.gif
如果你在实现上没有问题的话,只能是模型过约束了,
而你采用了罚方法(置大数)在一定程度上会弱化过约束导致的失稳问题,
但是罚方法毕竟在数值上有很多不好的地方。
如果真是这样,可就又验证了有限元领域的一句名言,'两个错误加起来产生一个正确'。
建议你释放一些约束或采用一些高阶单元,试试消去法。

fhyd212 发表于 2010-5-19 08:31:53

16# pasuka
谢谢楼主指教哈

fhyd212 发表于 2010-5-19 08:33:35

17# refeihc
多谢指教,我先好好消化一下再去找下那个老师
页: [1] 2
查看完整版本: 约束处理方法