作为一个NVH工程师,最常用的分析应该就是模态分析和频率响应分析 了。
之前已经成功让Hypermesh调用Nastran求解器进行了模态分析,可以看我上一篇文章
Hypermesh小技巧[1] 《Hypermesh调用Nastran求解器进行模态分析》
于是我又在外网查了相关的资料,搞清楚了怎么用Hypermesh调用Nastran求解器进行频率响应分析。整理了一下,发到知乎上,方便自己和各位同行参考。
也欢迎各位同行多交流,有写错的地方烦劳指正。
还是以一个简单的梁模型为例子,如下图所示。已经利用Hypermesh划分好了网格,其他还什么都没干,可以看到最左边的Model View栏里只有Compoent、Materials和Properties。
在Model View里右键Creat->Load Step,然后命名为FreqResponse(当然不重命名也没事,只是重命名可以看着更直观)。
然后左下角可以看到这个载荷步的属性,因为我们是要求频率响应,所以我们在Analysis Type中选择Freq. resp(modal)。
这里简单讲一下,可以发现Freq.resp有两个,一个叫Freq.resp(direct),另一个叫Freq.resp(modal)。
direct就是直接法求取频率响应,这种方法是通过NewMark-Beta法 [1]来计算结构的响应的。这是一种计算结构响应常用的数值算法。这种算法优势是不会受到模态截断带来的影响,但缺点是计算量巨大。一般我们做大型有限元的频响不采用,因为运算量太大了。
modal就是模态叠加法 求频响,是先求出系统的模态,然后利用模态叠加原理计算响应。这种算法计算量相对较小,一般都采用这个算法,速度很快。但这种算法缺点也有,就是会受到模态截断的影响,所以最好计算模态的时候多算几阶模态出来,尽可能减少模态截断的影响。
选择Freq. resp(modal)后,Analysis Type里就可以看到进行分析需要的输入参数。其中必要的输入参数我用红框框出来了,下面我简单讲解一下这些输入参数的意义。
接下来就按顺序,来添加这些输入参数。
SPC,Single Point Constrain单点约束。这个选项是选择约束的,如果你分析的物体是自由状态,这个就没必要选择。
接下来要设置约束。(当然,如果是求解自由状态的频响,这一步就可以跳过)
首先,点击Analysis->constraints,约束一端的六个自由度,成为悬臂梁。
然后,在左边的Model View栏里出现了Load Collectors,我们把这个约束命名为Fixed(当然不重命名也没事,只是重命名可以看着更直观)。
最后,回到载荷步Load Step里,点击SPC右边的按钮,选择Fixed。
DLOAD,D是Dynamic动态的意思,这个选项是选择加载在物体上的动态载荷的。毕竟有动态载荷才会有频率响应嘛,所以这个是一定要有的。
DLOAD的设置相对复杂一些,希望大家能耐心看完,如果觉得这段有写的不清楚的地方,欢迎评论区告诉我。
既然要创建动态载荷,那动态载荷肯定要有两个子属性要描述清楚:
1.力,包括力的大小和力的方向。
2.力的频谱,即力在不同频率下的幅值是怎么样的。
首先创建一个X方向的力Force。首先在左边的Model View栏右键,Creat->Load Collectors新建一个Load Collector,然后把它改名成Force_x(当然不重命名也没事,只是重命名可以看着更直观)。
然后选择Analysis->forces,如下图所示创建一个X方向的力,我这里力的大小填了1。(你们计算的时候也可以这里只填1,用频谱来控制力的幅值)
创建了力,那还要创建力的频谱。
首先介绍NASTRAN的一个Bulk Data[2],叫TABLED1,下面是它的描述。
TABLED1[3]
Defines a tabular function for use in generating frequency-dependent and time-dependent dynamic loads.
定义一个表格,用来生成频域或时域的动态载荷。
因为频谱一列是频率,另一列是幅值,正好是可以存在一个表格(Table就是表格的意思)里的。
所以用TABLED1来存力的频谱信息。
在左边的Model View栏右键,Creat->Load Collectors新建一个Load Collector,然后把它改名成Table_x(当然不重命名也没事,只是重命名可以看着更直观)。然后把它的Card Image修改成TABLED1。
然后我们就可以在下面修改表格了。TABLED1_NUM就是表格的行数的意思,比如力的频谱有128个点,就填128。简单起见,我这里只填2。设置0的时候幅值是1,1000的时候幅值也是1。(当然,做计算的时候也可以直接复制Excel或者matlab里面的频域数据进来,不用挨个手输。)
这个意思就是,这个力的频谱,从0到1000Hz幅值都是1。如下图所示。
定义好了力和频谱,还要有一个步骤,就是告诉软件,我们刚刚定义的力和频谱是一个动态载荷的子属性,而不是两个独立的东西。这时候就要用到另一个NASTRAN的Bulk Data,RLOAD2 。
RLOAD2
Defines a frequency-dependent dynamic load of the form P(f)=A*B(f)e^{i(φ(f)+θ−2πfτ)} for use in frequency response problems.
定义一个用于频率响应问题的动载荷(频域形式),这个载荷的形式如公式 P(f)=A*B(f)e^{i(φ(f)+θ−2πfτ)}
在左边的Model View栏右键,Creat->Load Collectors新建一个Load Collector,然后把它改名成Rload_x(当然不重命名也没事,只是重命名可以看着更直观)。然后把它的Card Image修改成RLOAD2。
如下图所示,这两个红框,EXCITEID,就是填我们刚刚定义的力。TB其实就是Table of B的缩写,这个B就是上面的公式里的那个 B(f) ,就是填我们刚刚定义的频谱的Table的。
当然,RLOAD2里面还有其他的选项可以填,延迟DELAY就是公式里的 τ ,相位PHASE就是公式里的 \varphi 。不过一般用不上,有兴趣的同行们可以自行研究,我这里就不再深入。
还有一种RLOAD1也可以实现相同的定义动载荷的功能,简单介绍一下。
RLOAD1
Defines a frequency-dependent dynamic load of the form: P(f)=A(C(f)+iD(f))e^{i(θ−2πfτ)} for use in frequency response problems.
从公式里就可以看到,RLOAD1和RLOAD2的区别就是,一个是用实部、虚部的形式来定义动载荷,另一个是用幅值、相位的形式来定义。各位同行做仿真时可以根据拿到的载荷数据形式,自行决定选择用哪种更方便。
同样,我们可以如法炮制,再定义一个Y向的动载荷。这个动载荷命名为Rload_y。力的大小是1,方向为Y向,频谱也是从0Hz到1000Hz幅值都是1。
然后,回到载荷步Load Step选择DLOAD时,你会发现,你只能选择一个动载荷。
但有两个方向的力啊?怎么办呢?别着急,为了应对这种力的数量大于1个的问题,NASTRAN还搞出来一个Bulk Data,叫DLOAD。这个东西就是纯纯的“工具人”,可以看成是一个集合,把动载荷放在一起的集合。
在左边的Model View栏右键,Creat->Load Collectors新建一个Load Collector,然后把它改名成LoadSet。然后把它的Card Image修改成DLOAD。
DLOAD_NUM就是有几个动载荷要放到这个集合里面,比如我们有2个动载荷,就填2。然后打开表格编辑,L那一列就是选择动载荷的。
几个S的定义如公式 \{P\}=S\sum S_i\{P_i\} ,说白了就是给你的动载荷再乘个放大比例。
比如外面的S填2,就是所有动载荷放大两倍计算。比如表格里的第一个S填0.5,第二个S填4,那就是X向动载荷只有0.5倍,Y向变成4倍计算。(其实我觉得挺鸡肋的功能。。。基本都用不上)
这里我都填1了,就是不放大。
最后,回到载荷步Load Step里,DLOAD选项选择刚刚定义好的DLOAD(重命名的名字是LoadSet)了。
因为这里Load Collector设置一层套一层的,所以做了个层级图,方便大家理解。
Method(STRUCT),这个是求解结构(STRUCT)模态的算法(Method)选择。上面已经讲解了,我们是利用模态叠加法求解响应的,所以一定要有一个求解模态的过程,这个选项就是选择求解模态的算法的,例如选择EIGRL算法(意思是计算Eigenvalue(特征值),特征值是Real(实数)形式的,算法是Lanczos)。
这个很简单,上一篇文章也讲过怎么设置,这次就简单讲讲操作。
在Model View里右键Creat->Load Collector,然后给这个新的Load Collector设置Card Image为EIGRL。
我重命名了一下为Modal(当然不重命名也没事,只是重命名可以看着更直观)。
然后填一下参数
我这里填的是V1是0,V2是1000,然后ND是10,意思就是计算这个模型,从1到1000Hz频段内找到10个模态频率。当然,V1、V2可以不填,只填ND,这样就是从0开始一直往高频率找,找够10个就停止计算。
最后,回到载荷步Load Step里,在Method(STRUCT)选项里选上刚刚定义好的EIGRL(重命名了名字是Modal)。
FREQ,频率的定义。既然我们求频率响应,所以肯定需要定义求解的响应频率范围是多少,例如定义从0Hz到1000Hz。
这个就很简单了,在Model View里右键Creat->Load Collector,然后给这个新的Load Collector设置Card Image为FREQi。重命名一下就叫Freq好了。
FREQi是一个定义频率用的合集,里面有好多种类型的频率定义方法可以选,但针对频响求解,最合适的是FREQ1。所以我们只打开FREQ1选项。
F1是求解开始的频率
DF是Delta F,步长
NDF是指求解多少个DF
我这个定义就是,从0Hz开始,每1Hz算一次,一共算1000次,就是从0Hz算到1000Hz。
最后,回到载荷步Load Step里,在FREQ选项里选上刚刚定义好的FREQ1(重命名了名字是Freq)。
阻尼设置有两种方式,一种是创建一个Load Collector,然后Card Image改成TABDMP1,设置方法和TABLED1类似,也是用表格的方式,定义各频率下阻尼的大小。其中G是结构阻尼系数[4]。
大家摸索一下就会了,就不再讲了。
设置好后回到载荷步Load Step里,在SDAMPING(STRUCT)选项里选上就行。
当然,也可以使用全局阻尼,我比较喜欢这种方式。
右下角菜单点击Analysis->control card->PARAM里,勾选G,这样就会发现左上角的Model View里多了一个Card,写着PARAM,点选PARAM,然后选择G,就能更改数值。
G的值就是全局的结构阻尼系数,我这里设置的是0.02。
使用了全局阻尼,就不需要到载荷步Load Step里设置SDAMPING(STRUCT)了。
到载荷步Load Step里,在底下的Subcase Option里找到OUTPUT选项,告诉求解器你要输出什么东西,不然求解器就完全不输出。
我们是做频率响应分析,所以最想知道的当然是加速度响应ACCELERATION了。所以OUTPUT里找到ACCELERATION勾选上,然后里面继续选中SORTING,默认SORT1。(这个就是避免特征值计算时排序乱掉的)
全部设置好后,想要提交给Nastran自动求解还需要两样东西。
一样是,你要告诉Nastran,用哪个求解器求解频率响应。Nastran里求解模态叠加法频率响应用的是SOL111 求解器。所以要这样设置:
右下角菜单点击Analysis->control card->SOL,选择Modal Frequency Response,这样就会发现左上角的Model View里多了一个Card,写着SOL111
另一样是,计算完成后,肯定要输出一个结果文件,这个结果文件的格式你必须告诉求解器是什么。我们常用的就是.op2格式,所以右下角菜单点击Analysis->control card->PARAM里,勾选POST,然后把POST的值改成1,这个1就表示输出.op2格式的结果文件。
接下来导出.bdf文件,然后提交Nastran计算就可以了,大功告成!
计算完成后生成的.op2结果文件也可以直接导入VirtualLab或者HyperView里查看,不需要用Patran后处理。
这篇文章主要是写如何做频率响应的。
如果想做频响函数FRF的话,只需设置所有的载荷都是单位力,一次只设置一个方向的动载荷就行了,响应值就是FRF。
这个时候,就不用再在Load Collector里建DLOAD了,Load Step里的DLOAD可以直接选择RLOAD2(因为只有一个力)。
当然,如果做FRF,我建议还是用VirtualLab去算(现在是Simencenter3D了,我还没用过),更快更方便。
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...