ANSYS四点雨流计数法
! ! 四点雨流计数法 ANSYS命令流! 1. 清除旧数据初始化工作环境/CLEAR,START/FILNAME,RAINFLOW_4POINT ! 工作文件名/TITLE,Four-Point Rainflow Counting Method ! 标题! 2. 定义参数根据载荷谱修改*DIM,LOAD,TABLE,1000,1,,TIME ! 定义载荷表1000行(可改)载荷-时间*DIM,COUNT_AMP,ARRAY,500,1 ! 存储循环幅值*DIM,COUNT_MEAN,ARRAY,500,1 ! 存储循环均值*DIM,COUNT_CYC,ARRAY,500,1 ! 存储循环周期N_LOAD 1000 ! 载荷数据总点数必须与LOAD表行数一致N_COUNT 0 ! 雨流计数结果总数初始0! 3. 导入/定义载荷时间历程替换为真实载荷数据! 示例正弦载荷谱*DO,I,1,N_LOADTIME (I-1)*0.1 ! 时间步长0.1sLOAD(I,1) 100*SIN(TIME) 50*COS(0.5*TIME) ! 载荷值*ENDDO! 4. 四点雨流计数法! 四点定义X1-X2-X3-X4 连续4个载荷点*DIM,SEQ,ARRAY,2000,1 ! 峰值谷值序列存储数组N_SEQ 0 ! 峰值谷值序列长度! 第一步提取原始载荷的峰值/谷值提取极值点N_SEQ 1SEQ(N_SEQ) LOAD(1,1)*DO,I,2,N_LOAD-1! 判断当前点是否为峰值或谷值IF (LOAD(I,1) LOAD(I-1,1) AND LOAD(I,1) LOAD(I1,1)) THENN_SEQ N_SEQ 1SEQ(N_SEQ) LOAD(I,1)ELSE IF (LOAD(I,1) LOAD(I-1,1) AND LOAD(I,1) LOAD(I1,1)) THENN_SEQ N_SEQ 1SEQ(N_SEQ) LOAD(I,1)ENDIF*ENDDON_SEQ N_SEQ 1SEQ(N_SEQ) LOAD(N_LOAD,1) ! 加入最后一个点! 第二步四点雨流计数核心循环*DIM,RESIDUE,ARRAY,2000,1 ! 剩余载荷序列N_RES 0 ! 剩余序列长度*DO,I,1,N_SEQN_RES N_RES 1RESIDUE(N_RES) SEQ(I) ! 将极值点加入剩余序列! 当剩余序列≥4个点时执行四点判断*WHILE,N_RES 4! 提取最后4个点Y1 Y2 Y3 Y4Y1 RESIDUE(N_RES-3)Y2 RESIDUE(N_RES-2)Y3 RESIDUE(N_RES-1)Y4 RESIDUE(N_RES)! 四点雨流规则! 1. 计算X2-X3幅值、X1-X4幅值A23 ABS(Y2-Y3)A14 ABS(Y1-Y4)! 2. 核心判定X2-X3 ≤ X1-X4 → 提取一个完整循环IF (A23 A14) THENN_COUNT N_COUNT 1! 计算循环幅值、均值、周期COUNT_AMP(N_COUNT) A23/2 ! 循环幅值COUNT_MEAN(N_COUNT) (Y2Y3)/2 ! 循环均值COUNT_CYC(N_COUNT) 1 ! 循环计数1次! 移除Y2、Y3更新剩余序列RESIDUE(N_RES-2) RESIDUE(N_RES)N_RES N_RES - 2ELSEEXIT ! 不满足条件退出循环ENDIF*ENDDO*ENDDO! 5. 输出雨流计数结果*CFOPEN,RAINFLOW_RESULT,TXT ! 打开结果文件*VWRITE,N_COUNT( 雨流计数总循环数,I6)*VWRITE,COUNT_AMP(1),COUNT_MEAN(1),COUNT_CYC(1)( 循环幅值 循环均值 循环次数)*DO,I,1,N_COUNT*VWRITE,COUNT_AMP(I),COUNT_MEAN(I),COUNT_CYC(I)(F10.2,F10.2,F6.0)*ENDDO*CFCLOSE! 6. 结果可视化/Graphics,Full*DIM,PLOT_DATA,TABLE,N_COUNT,3,,CYCLE*DO,I,1,N_COUNTPLOT_DATA(I,1) COUNT_AMP(I)PLOT_DATA(I,2) COUNT_MEAN(I)PLOT_DATA(I,3) COUNT_CYC(I)*ENDDO/VPLO,PLOT_DATA(1,1),PLOT_DATA(1,2) ! 幅值-均值散点图/REPLOT