声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3525|回复: 16

[结构振动] 大家讨论一下求固有频率用那个软件编程比较好?

[复制链接]
发表于 2006-12-5 21:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
比如求板壳的固有频率。
    现在用的matlab编程,1000左右自由度的,速度还可以,几分钟就搞定了;但4000以上就比较慢了,一二十分钟也没个结果,主要是eig(M,K)这个命令占时间,矩阵太大了。
    大家有经验的谈谈,帮忙介绍介绍呗,用fortran编这样的程序速度怎么样啊?别人推荐用它,但我没学过,怕自己学了编出来的还差不多,废掉了时间还没有效果。
    专门的有限元软件就先不考虑了,因为分析完频率还有后续的工作。
    谢谢各位了:@D
回复
分享到:

使用道具 举报

发表于 2006-12-5 23:21 | 显示全部楼层
用fortran或C,C++等语言自己编程序的话可能是要快些,但如果现学的话程序的质量怕是难以保证
建议还是用matlab吧,但要注意在程序中尽量不要用循环语句,那会大大拖慢执行速度,另外,大自由度的质量矩阵和刚度矩阵
也最好用稀疏矩阵来存储,以节省内存。就eig函数本身的执行速度来说应该速度还是可以的,我以前在C++里用混合编程调用eig,自由度高过4000,感觉速度也还可以,在matlab中直接调用应更快点吧,我想

评分

1

查看全部评分

发表于 2006-12-6 09:55 | 显示全部楼层
.
      结构有限元分析计算机编程,可以采用各种层次的计算机语言,当然各自的特点是不一样的。

     计算机语言一般来说可以分为高级语言、低级语言,Fortran属于高级语言,汇编常常称为低阶语言,C语言属于高级语言,但具有一定的低级语言能力,高级语言编程者容易驾控,对计算机结构组织没有什么依赖,不能够对计算机硬件或端口进行操作。

    对应编制计算程序,往往高级语言就可以胜任,而对于控制程序还是低级语言来得更加得心应手。近些年,结构有限元的程序也出现使用C语言这样的非纯高级语言,那是由于现在的软件,不仅仅追求计算出结果,更希望将结果以图形的形式表现出来,高级语言往往对绘图功能能力显得匮乏,所以,C语言由此得到了很好的施展。

    策略:

    *简单的掌握和体会结构有限元理论:使用matlab完成,matlab已经不属于计算机语言了。

    *希望在结构有限元里做点研究,尤其是结构方面的博士论文:建议使用Fortran或C语言,除特殊要求,论文仅仅看重学术,不要在程序界面上下功夫,输出结果可以使用绘图软件,再次处理,如Origin或Tplot等等。

    *大型商业软件开发,使用高级语言与低阶语言相结合。

    编程时如果感觉功能不够,一般都是高级语言调用低级语言的功能来扩展比较正常,Fortran或C语言编程时调用matlab的功能不知道是什么用意... ..

评分

1

查看全部评分

 楼主| 发表于 2006-12-6 10:34 | 显示全部楼层
原帖由 欧阳中华 于 2006-12-6 09:55 发表
    *简单的掌握和体会结构有限元理论:使用matlab完成,matlab已经不属于计算机语言了。

    *希望在结构有限元里做点研究,尤其是结构方面的博士论文:建议使用Fortran或C语言,除特殊要求,论文仅仅看重学术,不要在程序界面上下功夫,输出结果可以使用绘图软件,再次处理,如Origin或Tplot等等。


如果是工程应用方面的呢?需要比较精确的数据结果,介于你所说的两者之间,这样是否更偏向使用fortran?我看的力学系同学的论文里大部分都采用的fortran

[ 本帖最后由 xinyuxf 于 2006-12-6 16:01 编辑 ]
发表于 2006-12-6 12:48 | 显示全部楼层
fortran 就是专门的工程应用软件
发表于 2006-12-6 13:00 | 显示全部楼层
.
      工程问题最好用成熟的商业软件,不然也不容易被接受;而研究,都是涉及一些不太成熟的问题,商业软件也没有,所以,研究都得自己编程来实现.. ..
发表于 2006-12-6 15:50 | 显示全部楼层
问一个比较弱智的问题:象振动的基础理论中基本都是在解决怎样求固有频率和模态振型,既然matlab等软件这末容易都解决了,那振动里面的那些东西特别是一些近似解法如瑞利商方法,利兹法,迭代矩阵法还有什莫用呢?但自由度和多自由度基本上也只剩下求解特征值的问题,那岂不是出了连续系统和参数识别,灵敏度。前半本书都没用了?
 楼主| 发表于 2006-12-6 16:06 | 显示全部楼层
原帖由 vib 于 2006-12-6 15:50 发表
问一个比较弱智的问题:象振动的基础理论中基本都是在解决怎样求固有频率和模态振型,既然matlab等软件这末容易都解决了,那振动里面的那些东西特别是一些近似解法如瑞利商方法,利兹法,迭代矩阵法还有什莫用呢? ...


理论对于初学者来说,这些东西还是需要理解的吧,不然用起来肯定也会很迷惑。而且如果需要自己去开发针对于某一对象的专用软件的话,这些东西还用得到,matlab就不一定能帮得上忙了
发表于 2006-12-10 21:01 | 显示全部楼层
原帖由 vib 于 2006-12-6 15:50 发表
问一个比较弱智的问题:象振动的基础理论中基本都是在解决怎样求固有频率和模态振型,既然matlab等软件这末容易都解决了,那振动里面的那些东西特别是一些近似解法如瑞利商方法,利兹法,迭代矩阵法还有什莫用呢? ...


从小学到大学教科书所教你的知识不都是解决了的吗,为什么还要学?

matlab中的求解算法也不外乎书上讲的这些算法啊
发表于 2006-12-10 21:11 | 显示全部楼层
原帖由 欧阳中华 于 2006-12-6 09:55 发表
.
      结构有限元分析计算机编程,可以采用各种层次的计算机语言,当然各自的特点是不一样的。

     计算机语言一般来说可以分为高级语言、低级语言,Fortran属于高级语言,汇编常常称为低阶语言,C语言属于 ...

1   matlab的编程语言也应属于计算机语言吧
2   用matlab写有限元程序也可起到理解有限元理论的作用,而且可以省去一些编写基本函数的工作量,如求解线性方程组,求解特征值等
3   在C或fortran中调用matlab的函数即所谓混合编程,可以调用matlab专为C,C++和fortrn设计的数学函数库,也可以利用matlab引擎功能,前者最好;目的 是降低工作量和提高可靠性
发表于 2006-12-14 18:14 | 显示全部楼层
.
     如果考察一下,matlab的编译器很可能是用C语言写成的,.. ..
发表于 2006-12-14 19:23 | 显示全部楼层
事实上发现很多程序的功能都可以用c语言来实现,经常在信号处理板块中发现要用c写一些算法,不过也搞不明白为什莫一定要用c,因为像matlab这样的软件比语言要方便太多了,现在正在苦思冥想用c来写fft,好久没摸过c了,希望大家赐教!
发表于 2006-12-23 15:11 | 显示全部楼层
c对硬件的操作可以得心应手,总不能把高级语言写的fft装到单片机上运行吧,
发表于 2006-12-31 22:07 | 显示全部楼层
对于工程数值计算,用Fortran语言比较好,计算速度快.而用Matlb就费时多了.
发表于 2007-1-15 10:13 | 显示全部楼层
mathcad,试一下,真的好!!!!!

[ 本帖最后由 supervb 于 2007-1-17 16:27 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-4 22:32 , Processed in 0.074961 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表