注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

火星号

new world,new start,new life

 
 
 

日志

 
 

油缸起竖  

2010-06-09 09:52:21|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
新做的一个,模拟油缸起诉过程的例子
附件,里有动画演示文件

没有什么具体的工程意义,只是做着玩的
当初的本意,是希望用ansys的MULTIBODY ANALYSIS代替ADMAS的运动分析
具体可见普通问题之问题5

现在,看来是泡汤了

不过,命令流里用了很多繁杂的操作,
不为别的,就是为了练练手,所以显得有点多于

在此贴出,望赏析,给予建议!
谢谢!


!两个宏块:托架起竖过程受力分析和起竖过程动画演示
FINISH
/CLEAR,START
/FILENAME,Tub,1
/CONFIG,NRES,5000

!(一)创建宏
!一、宏块1
!宏描述:托架起竖过程受力分析
*CREATE,Tray.mac
/PMACRO
*AFUN,DEG
!1.参数定义与赋值
!1)多参数变量
MULTIPRO,'START',4 !重物
*CSET,61,62,'THE PARAMETER OF Matter:'
*CSET,1,3,Matter_M,'THE MASS OF Matter: T',15
*CSET,4,6,Matter_L0,'THE WHOLE LENGTH OF Matter: M',15.4
*CSET,7,9,Matter_L,'THE LENGTH TO ROTATER-AREA FROM CENTROID: M',5.6
*CSET,10,12,Matter_R,'THE RADUIS OF Matter: M',0.75
MULTIPRO,'END'

MULTIPRO,'START',3 !虚拟/托架
*CSET,61,62,'THE PARAMETER OF Tray:'
*CSET,1,3,Tray_L,'THE LENGTH OF Tray: M',3.457                  !控制起竖上支点
*CSET,4,6,Tray_H,'THE HIGH OF Tray: M',0                        !控制回转支点
*CSET,7,9,Tray_D,'THE DISPLACEMENT OF Tray IN X DIRECTION: M',0 !控制滑动
MULTIPRO,'END'

MULTIPRO,'START',5 !油缸
*CSET,61,62,'THE PARAMETER OF OIL:'
*CSET,1,3,OIL_UX0,'THE X COORDINATE OF OIL UP_SUPPORT IN 0 DEG: M',Tray_L
*CSET,4,6,OIL_UY0,'THE Y COORDINATE OF OIL UP_SUPPORT IN 0 DEG: M',0
*CSET,7,9,OIL_DY0,'THE Y COORDINATE OF OIL DOWN_SUPPORT IN 0 DEG: M',-1.137
*CSET,10,12,OIL_L0,'THE INITIAL LENGTH OF OIL: M',2.7
*CSET,13,15,OIL_N,'THE SECT-NUM OF OIL',3
MULTIPRO,'END'

MULTIPRO,'START',3 !空气/风载
*CSET,61,62,'THE PARAMTER OF AIR:'
*CSET,1,3,K,'THE RESISTANCE COEFFICIENT OF AIR: ',1.2
*CSET,4,6,AIR_Ro,'THE DENSITY OF AIR: KG/M^3',1.47
*CSET,7,9,AIR_V,'THE WIND VELOCITY OF AIR: M/S',21
MULTIPRO,'END'

!2)参数数组
*DIM,Matter_G1,ARRAY,91 !顺风
*DIM,Matter_G2,ARRAY,91 !逆风
*DIM,OIL_ALFA,ARRAY,91 !油缸角度
*DIM,OIL_F0,ARRAY,91   !无风
*DIM,OIL_F0X,ARRAY,91
*DIM,OIL_F0Y,ARRAY,91
*DIM,Tray_RX0,ARRAY,91
*DIM,Tray_RY0,ARRAY,91
*DIM,OIL_F1,ARRAY,91  !起竖载荷:顺风
*DIM,OIL_F1X,ARRAY,91
*DIM,OIL_F1Y,ARRAY,91
*DIM,Tray_RX1,ARRAY,91
*DIM,Tray_RY1,ARRAY,91
*DIM,OIL_F2,ARRAY,91 !逆风
*DIM,OIL_F2X,ARRAY,91
*DIM,OIL_F2Y,ARRAY,91
*DIM,Tray_RX2,ARRAY,91
*DIM,Tray_RY2,ARRAY,91
*DIM,Tray_DX,ARRAY,91 !限位位移:X向

*ABSET,This is a Tray.MAC Process Bar,BOTH
!2.计算程序
!1)油缸长度优化
OIL_UXY=SQRT(OIL_UX0**2+OIL_UY0**2)  !上支点斜距
OIL_UAng0=ATAN(OIL_UY0/OIL_UX0)      !上支点斜距初始水平夹角
OIL_UX90=OIL_UXY*Cos(90+OIL_UAng0)   !上支点90度横坐标  
OIL_UY90=OIL_UXY*Sin(90+OIL_UAng0)  !上支点90度纵坐标
*DO,I,1,1.0E9
OIL_DX0=OIL_UX0-SQRT(OIL_L0**2-(OIL_UY0-OIL_DY0)**2) !0度时油缸下支点X坐标
OIL_DX90=OIL_DX0-Tray_D                              !90度时油缸下支点X坐标
OIL_DY90=OIL_DY0                                     !                Y坐标
OIL_L90=SQRT((OIL_UX90-OIL_DX90)**2+(OIL_UY90-OIL_DY90)**2) !90度时油缸长度
OIL_LMax=OIL_L90-OIL_L0 !最大行程
OIL_LAve=OIL_LMax/OIL_N !平均行程
OIL_LT=OIL_L0-OIL_LAve  !不可用部分/预留长度
*IF,OIL_LT,GE,0.690,AND,OIL_LT,LE,0.691,THEN
  *EXIT
*ENDIF
*IF,OIL_LT,LT,0.690,THEN
  OIL_L0=OIL_L0+1.0E-5
*ENDIF
*IF,OIL_LT,GT,0.691,THEN
  OIL_L0=OIL_L0-1.0E-5
*ENDIF
*ENDDO

!2)载荷计算
*DO,I,1,91
THETA=I-1
Tray_DX(I)=Tray_D/90*(I-1)
!<1>重力和风载
Matter_G0=Matter_M*1000*10  !重力
AIR_P=0.5*AIR_Ro*AIR_V**2 !风压
AREA1=2*Matter_L0*Matter_R*Sin(THETA)+3.14*Matter_R**2*Cos(THETA) $ AREA2=AREA1
Matter_G1(I)=K*AIR_P*AREA1 !顺风
Matter_G2(I)=K*AIR_P*AREA2 !逆风
!<2>油缸
OIL_UX=OIL_UXY*Cos(THETA+OIL_UAng0) $ OIL_UY=OIL_UXY*Sin(THETA+OIL_UAng0) !上支点坐标
OIL_DX=OIL_DX0-Tray_DX(I) $ OIL_DY=OIL_DY0                                   !下支点坐标
OIL_L=SQRT((OIL_UX-OIL_DX)**2+(OIL_UY-OIL_DY)**2)                         !油缸即时长度
OIL_ALFA(I)=ACOS((OIL_UX-OIL_DX)/OIL_L)                                  !上下支点与水平正方向夹角
K0=Matter_L*Cos(THETA)+(Tray_H-Matter_R)*Sin(THETA)
K12=Matter_L*Sin(THETA)+(Tray_H-Matter_R)*Cos(THETA)
K012=Tray_L*Sin(OIL_ALFA(I)-THETA)+Tray_H*Cos(OIL_ALFA(I)-THETA)
!CASE0:无风
OIL_F0(I)=K0*Matter_G0/K012
OIL_F0X(I)=OIL_F0(I)*Cos(OIL_ALFA(I))
OIL_F0Y(I)=OIL_F0(I)*Sin(OIL_ALFA(I))
!CASE1:顺风
OIL_F1(I)=K0*Matter_G0/K012-Matter_G1(I)*K12/K012
OIL_F1X(I)=OIL_F1(I)*Cos(OIL_ALFA(I))
OIL_F1Y(I)=OIL_F1(I)*Sin(OIL_ALFA(I))
!CASE2:逆风
OIL_F2(I)=K0*Matter_G0/K012+Matter_G2(I)*K12/K012
OIL_F2X(I)=OIL_F2(I)*Cos(OIL_ALFA(I))
OIL_F2Y(I)=OIL_F2(I)*Sin(OIL_ALFA(I))
!<3>托架
!CASE0:无风
Tray_RX0(I)=-OIL_F0X(I)
Tray_RY0(I)=Matter_G0-OIL_F0Y(I)
!CASE1:顺风
Tray_RX1(I)=-OIL_F1X(I)+Matter_G1(I)
Tray_RY1(I)=Matter_G0-OIL_F1Y(I)
!CASE2:逆风
Tray_RX2(I)=-OIL_F2X(I)-Matter_G2(I)
Tray_RY2(I)=Matter_G0-OIL_F2Y(I)
*ABCHECK,8+I,THIS IS COMPUTING......
*ENDDO

!3.结果输出
*CREATE,ansuitmp
*CFOPEN,Tray,DAT
*VWRITE,
('1.油缸基本参数:')
*VWRITE,
(8X,'0度:上支点X坐标',12X,'Y坐标',12X,'下支点X坐标',12X,'Y坐标')
*VWRITE,OIL_UX0,OIL_UY0,OIL_DX0,OIL_DY0
(5X,F12.3,7X,F12.3,8X,F12.3,9X,F12.3)
*VWRITE,
(8X,'90度:上支点X坐标',12X,'Y坐标',12X,'下支点X坐标',12X,'Y坐标')
*VWRITE,OIL_UX90,OIL_UY90,OIL_DX90,OIL_DY90
(8X,F16.3,7X,F12.3,8X,F12.3,9X,F12.3)
*VWRITE,
(8X,'最大行程',12X,'平均行程',12X,'油缸级数',12X,'最大长度',12X,'初始长度')
*VWRITE,OIL_LMax,OIL_LAve,OIL_N,OIL_L90,OIL_L0
(5X,F12.3,7X,F12.3,7X,F12.3,7X,F12.3,6X,F12.3)
*VWRITE,
('2.重物基本参数:')
*VWRITE,
(8X,'质量',6X,'到回转耳轴面距离',6X,'总长',6X,'半径')
*VWRITE,Matter_M,Matter_L,Matter_L0,Matter_R
(6X,F8.2,3X,F16.3,6X,F8.3,3X,F8.3)
*VWRITE,
('3.托架基本载荷(无风):')
*VWRITE,
(8X,'托架长',6X,'托架高',6X,'托架X向位移')
*VWRITE,Tray_L,Tray_H,Tray_D
(8X,F6.3,6X,F6.3,6X,F12.3)
*VWRITE,
(8X,'起竖角度',6X,'起竖载荷',6X,'起竖X向载荷',6X,'起竖Y向载荷',6X,'油缸角度',6X,'X向支反力',6X,'Y向支反力',6X,'X向位移')
*VWRITE,SEQU,OIL_F0(1),OIL_F0X(1),OIL_F0Y(1),OIL_ALFA(1),Tray_RX0(1),Tray_RY0(1),Tray_DX(1)
(8X,F5.2,6X,F12.3,4X,F12.3,6X,F12.3,6X,F6.2,4X,F12.3,4X,F12.3,6X,F5.3)
*CFCLOS
*END
/INPUT,ansuitmp
*ABCHECK,100,THE COMPUTATION IS COMPLTED...
*ABFINISH
*END

!二、宏块2
!宏描述:托架起竖过程动画演示
!备注:以虚拟/托架回转耳轴/后支为坐标圆点O、水平长度L方向为X轴、竖直高度H方向为Y轴
*CREATE,ANIMATE_SUP,MAC
*AFUN,RAD
!0.参数定义与赋值
!0.1截面形式和几何参数
!1)虚拟/托架
Tray_L1=0      !后支
Tray_L2=1.575  !中支
Tray_L3=Tray_L !前支
Tray_R=0.25    !主梁截面

!2)重物
Matter_L1=Tray_L2 !中联支
Matter_L2=Tray_L3 !前支面
Matter_L3=Matter_L  !质心点
Matter_R=Matter_R    !半径
Matter_M=1000*Matter_M !质量

!0.2起竖要求
TTIME=2   !时间
ACCEL=3.14*50/180  !最大角加速度

!0.3边界条件
!1)起竖载荷
*DIM,F_X,TABLE,91,1,,THETA  !水平载荷,THETA起竖角度
F_X(0,1)=1                             !X水平方向
*DO,I,1,91
F_X(I,0)=3.14*(I-1)/180
F_X(I,1)=OIL_F0X(I)
*ENDDO

*DIM,F_Y,TABLE,91,1,,THETA  !垂直载荷,THETA起竖角度
F_Y(0,1)=2                             !Y垂直方向
*DO,I,1,91
F_Y(I,0)=3.14*(I-1)/180
F_Y(I,1)=OIL_F0Y(I)
*ENDDO

!2)限位位移
*DIM,D_X,TABLE,91,1,,THETA  !水平位移,THETA起竖角度
D_X(0,1)=3                  !X水平方向
*DO,I,1,91
D_X(I,0)=3.14*(I-1)/180
D_X(I,1)=Tray_DX(I)
*ENDDO

!3)起竖角度
*DIM,D_Y,TABLE,91,1,,THETA !起竖位移,THETA起竖角度
D_Y(0,1)=4                 !Y垂直方向
*DO,I,1,91
D_Y(I,0)=3.14*(I-1)/180
D_Y(I,1)=Tray_L*Sin(3.14*(I-1)/180)
*ENDDO

*DIM,THETA,TABLE,91,1,,TIME  !起竖角度,TIME起竖时间
DTIME=TTIME/90 $ ANG_V=3.14*90/180/TTIME !时间增量、平均角速度
THETA(0,1)=4                 !y转动方向
*DO,I,1,91
THETA(I,0)=DTIME*(I-1)
THETA(I,1)=ANG_V*DTIME*(I-1)
*ENDDO

/PREP7
!1.有限单元模型
!1)单元类型与实常数
ET,1,BEAM188 $ R,1
ET,2,MASS21 $ KEYOPT,2,3,2 $ R,2,Matter_M
ET,3,MPC184 $ KEYOPT,3,1,1 $ KEYOPT,3,2,1

!2)材料模型
MP,EX,1,2.1E11
MP,NUXY,1,0.27

!3)截面特性——梁单元
SECTYPE,1,BEAM,CSOLID  !托架
SECDATA,Tray_R,64,4
SECOFFSET,USER,-Tray_R

SECTYPE,2,BEAM,CSOLID !重物
SECDATA,Matter_R,64,4

!4)单元模型
CSYS,0
!<1>虚拟/托架
N,1,Tray_L1,0  !后支
N,2,Tray_L2,0  !中支
N,3,Tray_L3,0  !前支
N,10,Tray_L3+0.001 !边界点——载荷
N,11,Tray_L3+0.002 !边界点——位移
TYPE,1 $ REAL,1 $ SECNUM,1 $ E,1,2 $ E,2,3 $ E,3,10 $ E,10,11

!<2>重物
N,4,Matter_L1,Matter_R !中联支
N,5,Matter_L2,Matter_R !前支面
N,6,Matter_L3,Matter_R !质心点
TYPE,1 $ REAL,1 $ SECNUM,2 $ E,4,5 $ E,5,6
TYPE,2 $ REAL,2 $ E,6
N,7,Matter_L1,0     !中联支——托架
N,8,Matter_L2,0     !前支面——托架
TYPE,3 $ E,4,7 $ E,5,8

!<3>联接关系
ET,4,MPC184 $ KEYOPT,4,1,6 $ KEYOPT,4,4,1
ET,5,MPC184 $ KEYOPT,5,1,11

NWPAVE,2 $ CSWPLA,11,0
SECTYPE,4,JOINT,REVO
SECJOINT,LSYS,11

NWPAVE,3 $ CSWPLA,12,0
SECTYPE,5,JOINT,CYLI
SECJOINT,LSYS,12

TYPE,4 $ SECNUM,4 $ E,2,7 !中联耳——托架和重物
TYPE,5 $ SECNUM,5 $ E,3,8 !前支面——托架和重物

ALLSEL,ALL
EPLOT $ SAVE
FINISH

!2.起竖过程
/SOLU
!1)分析类型与求解控制
!<1>分析类型
ANTYPE,4      !瞬态分析
TRNOPT,FULL,,,,,HHT
LUMPM,ON
!<2>求解控制
OUTRES,ALL,ALL
SOLCONTROL,1,1
!<3>时间与频率
TIME,TTIME
DELTIM,DTIME,DTIME/10,DTIME*1.2,ON
!<4>动力学选项——时间积分
TIMINT,ON,STRUC
TINTP,0.005,,,1.0,0.5
!<5>非线性分析选项
NLGEOM,ON
NROPT,FULL,,ON
AUTO,ON $ KBC,1
NEQIT,75
!<6>求解器
EQSLV,SPARSE

!2)初边条件
!<1>初始条件
ACEL,0,10,0       !整体重力加速度
!<2>边界条件
!A.位移边界条件
D,1,UZ,0,,,,UY,ROTX !托架后支点
D,1,UX,%D_X%
D,11,UZ,0           !托架边界点——位移
D,11,UY,%D_Y%
!B.载荷边界条件
F,10,FX,%F_X%       !托架边界点——载荷
F,10,FY,%F_Y%

!3)计算求解
ALLSEL,ALL
SOLVE
FINISH
*END

!(二)调用宏块
*USE,TRAY.MAC   !起竖过程受力分析
!注意:一定要一个一个单独执行,否则有错
!这也是,我一直没有解决的问题
!如何让一个宏模块优先执行,而其它操作,比如变量赋值、模型构建、另一个宏块的调用,都在第一个宏块调用完成后
!再依次,执行相应操作,欢迎建议,希望帮助!
*USE,ANIMATE_SUP.MAC !起竖过程动画演示

!(三)后处理
!1)基本设置
/POST26
FILE,'Tub','rst','.'
NUMVAR,200
SOLU,191,NCMIT $ STORE,MERGE
FILLDATA,191,,,,1,1
REALVAR,191,191

!2)定义变量并存储
NSOL,2,1,U,X,UX_2 $ STORE,MERGE
NSOL,3,1,ROT,Z,ROTZ_3 $ STORE,MERGE
NSOL,4,1,V,X,VX_4 $ STORE,MERGE
NSOL,5,1,OMG,Z,OMGZ_5 $ STORE,MERGE
NSOL,6,1,A,X,AX_6 $ STORE,MERGE
NSOL,7,1,DMG,Z,DMGZ_7 $ STORE,MERGE
RFORCE,8,1,F,X,FX_8 $ STORE,MERGE
RFORCE,9,1,F,Y,FY_9 $ STORE,MERGE
RFORCE,10,1,F,Z,FZ_10 $ STORE,MERGE
  评论这张
 
阅读(509)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018