Приветствую всех,
Есть задача провести симуляции сегмента подшипника качения под динамический нагрузкой. То есть внешнее кольцо(AR) будет закреплено, а на внутренне кольцо(IR) будет действовать постоянная аксиальная сила (F_ax) и гармоническая радиальная(F_rad), также внутренне кольцо должно совершать колебательные движения вокруг оси подшипника.
С колебательными движениями все в порядке, но вот почему радиальная гармоническая сила не изменяется в цикле не могу понять... Может кто-то сможет увидеть мои ошибки... Если возникнут вопросы или замечания, буду рад. Ниже привожу код:
!------------------------------------------------------------------------------
! SOLVER FOR TRANSIENT-DYNAMIC CALCULATION
!------------------------------------------------------------------------------
FINISH
/SOLU ! start solver
! Clear memory
valsTime=
valsFX=
valsFY=
valsRotX=
forceFX=
forceFY=
rotatX=
ALLSEL, ALL, ALL
CSYS, 0
!===============================================================
!------- Live-Monitoring (Jobname.nlh)--------
!===============================================================
NLHIST,NSOL,RotX,ROT,X,PilotNode
NLHIST,NSOL,Fax,F,X,Master_AR_a
NLHIST,NSOL,Frad,F,Y,Master_AR_r
NLHIST,NSOL,Uax,U,X,PilotNode
NLHIST,NSOL,Urad,U,Y,PilotNode
NLHIST,PAIR,ContPress1,CONT,PRES,2
NLHIST,PAIR,ContPress2,CONT,PRES,3
NLHIST,PAIR,ContArea1,CONT,CARE,2
NLHIST,PAIR,ContArea2,CONT,CARE,3
!===============================================================
!-------SOLVER PROCESS --------
!===============================================================
*GET, CALCSTART, ACTIVE, 0, TIME, WALL, ! start to calculate time for solution process
ANTYPE, TRANSIENT ! transient calculation
SOLCONTROL, ON, ON
EQSLV, PCG ! preconditioned conjugate gradient solver
PCGOPT, 1 ! Level 1 faster than Level 2
PRED, OFF ! no prediction, by http://ww3.cad.de/foren/ubb/Forum101/HTML/003380.shtml
NCNV, 0 ! 2 = stop analysis in case of non-convergence, but don't exit program // 0 = simply go on...
LNSRCH, ON ! 16.07.2008, 8.12. Tips and Guidelines for Nonlinear Analysis
CNCHECK, AUTO ! Provides a/o adjusts the initial status of contact pairs
CNTR,print,3
AUTOTS, ON ! Specifies whether to use automatic time stepping or load stepping; ON=use
! If Key = ON, both time step prediction and time step bisection will be used.
! Used only if DTIME (specified on the DELTIM command) is less than the time span or conversely,
! if NSBSTP (on the NSUBST command) is greater than one
KBC, 0 ! ramped loading in loadstep
TRNOPT, FULL, , , , , HHT ! FULL transient analysis, HHT instead of Newmark for time integration
OUTRES, ALL, -2 ! Controls solution data written to the database; ALL,ALL=write all information about all SS
RESCONTROL,DEFINE,2,LAST,0 ! allows to restart an analysis from any LS and SS
*IF, nlgeo, EQ, 1, THEN
NLGEOM, ON ! large-deflection on
*ELSE
NLGEOM, OFF ! large-deflection off
*ENDIF
!-----Loading-------
!=======================================================================
dTime=(EndTime-IniTime)/nrTimeSteps
EndFX = -Axialkraft ! Final axial load
EndFY = Radialkraft ! Final radial load
EndRotat = Drehwinkel ! Final rotation angle
*DIM, valsTime, , nrTimeSteps+1, 1 ! Array to store calculated end times for each step
*DIM, valsFX, , nrTimeSteps+1, 1 ! Array to store calculated load values for each time step
*DIM, valsFY, , nrTimeSteps+1, 1 ! Array to store calculated load values for each time step
*DIM, valsRotX, , nrTimeSteps+1, 1 ! Array to store calculated rotation angles for each time step
*DO, ii, 1, nrTimeSteps+1
valsTime(ii) = IniTime + (ii-1)*dTime ! time
valsFX(ii) = -FVorspAx ! axial force
valsFY(ii) = FVorspRad+deltaFRad*SIN(2*Pi*freL*valsTime(ii)) ! radial force
valsRotX(ii) = (EndRotat)*SIN(2*Pi*freD*valsTime(ii)) ! Rotation
*ENDDO
*DIM, forceFX, TABLE, nrTimeSteps+1, 1 ! Store calculated load and angular velocity values in a table array
*DIM, forceFY, TABLE, nrTimeSteps+1, 1
*DIM, rotatX, TABLE, nrTimeSteps+1, 1
*DO, ii, 1, nrTimeSteps+1
forceFX(ii,0) = valsTime(ii)
forceFX(ii,1) = valsFX(ii)
forceFY(ii,0) = valsTime(ii)
forceFY(ii,1) = valsFY(ii)
rotatX(ii,0) = valsTime(ii)
rotatX(ii,1) = valsRotX(ii)
*ENDDO
!-----Pre-loading--------
TIMINT, OFF ! static
TIME, 0.0001
F, PilotNode, FX, -FVorspAX/100
F, PilotNode, FY, FVorspRad/100
NSUBST, 10, 10, 5
SOLVE
TIME, 0.0002
F, PilotNode, FX, -FVorspAx
F, PilotNode, FY, FVorspRad
NSUBST, 40, 50, 20
SOLVE
SAVE
!-----Loading--------
TIMINT, ON !Turns on transient effects
*DO, ik, 1, nrTimeSteps+1
TIME, dTime*ik
F, PilotNode, FX, -FVorspAx
F, PilotNode, FY, forceFY(ik,1)
D, PilotNode, ROTX, rotatX(dTime*ik)
NSUBST, 10, 10, 5, ON
SOLVE
SAVE
*ENDDO
Заранее спасибо за помощь!
Добавить комментарий