ansys计算模态质量时,NRMKEY选项打开,振型向量取该振型位移幅值最大的为1。但是在手算的过程中,经常取位移向量的第一个元素为1。
这样会造成,当第一个元素并不是振型向量的最大值时,手算结果与ansys计算结果不一致,这样该怎么避免?(因为对于复杂结构不可能一直手算)
下面是用到的一个简单例子,手算的模态质量M1=1264.1979,但是ansys计算结果是506.8078,手算的第一阶向量是(1.0000,1.4420,1.5794)的转置
命令流如下:
finish
/clear
/prep7
m1=100
m2=200
m3=300
k1=1e4
k2=2e4
k3=4e4
et,1,mass21
et,2,combin14
keyopt,1,3,4
keyopt,2,3,2
r,1,m1
r,2,m2
r,3,m3
r,4,k1
r,5,k2
r,6,k3
n,4
n,1,1
n,2,2
n,3,3
type,1
*do,i,1,3
real,i
e,i
*enddo
type,2
real,4
e,4,1
real,5
e,1,2
real,6
e,2,3
d,4,all
d,all,uy
/solu
antype,modal
modopt,lanb,3,,,,on
mxpand,3,,,yes
/output,pf,txt
solve
output
/post1
set,list
*get,f1,mode,1,freq !!!获取第1阶自振频率
*get,f2,mode,2,freq !!!获取第2阶自振频率
*get,f3,mode,3,freq !!!获取第3阶自振频率
set,1,1 !!!读入第1阶模态结果
etable,ken,kene !!!定义动能单元表
ssum !!!累加
*get,ken1,ssum,,item,ken !!!获得动能累加结果
mmod1=2*ken1/(2*acos(-1)*f1)**2 !!!计算第1阶振型的模态质量
set,1,2 !!!读入第2阶模态结果
etable,ken,kene !!!定义动能单元表
ssum !!!累加
*get,ken2,ssum,,item,ken !!!获得动能累加结果
mmod2=2*ken2/(2*acos(-1)*f2)**2 !!!计算第2阶振型的模态质量
set,1,3 !!!读入第3阶模态结果
etable,ken,kene !!!定义动能单元表
ssum !!!累加
*get,ken3,ssum,,item,ken !!!获得动能累加结果
mmod3=2*ken3/(2*acos(-1)*f3)**2 !!!计算第3阶振型的模态质量
![ANSYS计算模态质量时振型向量的取值与手算的取值不一致]()
IMG_20150415_160456.jpg |