# I need to calculate the zero-crossing frequency in Simulation. How can I do that?

 The zero-crossing frequency (also called "Statistical Average Frequency" or "Expected Frequency") is computed as the square root of the velocity variance divided by the displacement variance, orsqrt ( (1 sigma velocity)**2/(1sigma disp)**2)= 1 sigma Velocity/1 sigma Displacement= load step 4/load step 3 in POST1 after a PSD analysis.(Ref: Looman, ANSYS Solution 7823)Since Simulation calculates relative displacement and absolute velocity by default, the velocity can be retrieved in relative terms by inserting a command object into the Random Vibration branch with the command "PSDRES,VELO,REL". Note that this will make the Simulation result object "Directional Velocity" a relative value, despite the Reference reported in the Details as being "Absolute (including base motion)."Then, the one-sigma displacement and one-sigma velocity plots can be retrieved and divided to get the zero-crossing frequency (note that this division will result in a frequency with units of radians per second). As a sanity check, it is possible to change the Random Vibration Analysis Settings to use only one mode, then the resulting zero-crossing frequency should be very close to the frequency of the first mode.You will actually get an expected frequency for each degree of freedom (nodes * DOF/node), which can be formed into three separate contour plots (X, Y, and Z directions). These contour plots can be retrieved in Simulation by inserting the following APDL into a Command Object in the Solution branch of a Random Vibration analysis:! Commands inserted into this file will be executed immediately after the Ansys /POST1 command./show,png ! output to png format/gfile,650 ! adjust size of image file/edge,1,1 ! turn on element outlines/view,,1,1,1 ! adjust view angle/dscale,,off! don't scale the results in PSDrsys,solu ! postprocess random vibration results in solution coordinate system! get 1-sigma displacementsSET,3,1*VGET,zcf_ux,NODE,,U,X*VGET,zcf_uy,NODE,,U,Y*VGET,zcf_uz,NODE,,U,Z! and 1-sigma velocitiesSET,4,1*VGET,zcf_vx,NODE,,U,X*VGET,zcf_vy,NODE,,U,Y*VGET,zcf_vz,NODE,,U,Z! divide 1-sigma velocity by 1-sigma displacement*VOPER,zcf_x,zcf_vx,DIV,zcf_ux*VOPER,zcf_y,zcf_vy,DIV,zcf_uy*VOPER,zcf_z,zcf_vz,DIV,zcf_uz! divide by 2*pi to get Hz from rad/spi = acos(-1)*VOPER,zcf_x,zcf_x,DIV,2*pi*VOPER,zcf_y,zcf_y,DIV,2*pi*VOPER,zcf_z,zcf_z,DIV,2*pi! we can overwrite results in loadstep 2 (unit static solution) since we won't be needing them hereset,2,1*VPUT,zcf_x,node,,u,x*VPUT,zcf_y,node,,u,y*VPUT,zcf_z,node,,u,z/title,zero crossing frequencies - x directionplnsol,u,x/title,zero crossing frequencies - y directionplnsol,u,y/title,zero crossing frequencies - z directionplnsol,u,z