## ## Comfort on Curve Transitions: Pct ## EN 12299; CEN Technical Committee 256 WG 7 ## ---------------------------------------------------------- # # Pct due to max abs car-body roll speed # ------------------------------------------------ func operf car_1.VF= `(esys_1.vf+lsc_1.vf+car_1.vf)*180/pi` filt mean_m 1 Iname= car_1.VF Fname= car_1_VFF stat car_1_VFF Tstart= Curve_TC_beg1 Tstop= Curve_TC_end1 Tsname= lsc_1.pn if_then car_1_VFFMED .gt. 0. func copy car_1_VFFmax= car_1_VFFMAX func copy car_1_VFFtma= car_1_VFFTMA func operf car_1_VFFxmax= `intpl_linj (time, lsc_1.pn, car_1_VFFTMA)` # Translate to position along track func copy car_1_VFFsign= 1. else func copy car_1_VFFmax= -car_1_VFFMIN func copy car_1_VFFtma= car_1_VFFTMI func operf car_1_VFFxmax= `intpl_linj (time, lsc_1.pn, car_1_VFFTMI)` # Translate to position along track func copy car_1_VFFsign= -1. endif # func opere `help stdout` # func opere `help stderr` # func opere `help PAGER` # func opere `stderr= 17` # func opere `stderr= fopen ("fort.17", "a", "ieee-le");` # func opere `printf("stderr= %d\n", stderr)` # func opere `diary goo_test.txt` # func opere `PAGER ("fort.17")` func operf car_1_m_PCTseated= `0.120*abs(car_1_VFFmax)^1.626` # # Max abs car-body acceleration # -------------------------------------------------- filt mean_m 1 Iname= car_1_m.ay Fname= car_1_m_ayf stat car_1_m_ayf Tstart= Curve_TC_beg1 Tstop= `Curve_TC_end1+1.6*Vo` Tsname= lsc_1.pn if_then car_1_m_ayfMED .gt. 0. func copy car_1_m_ayfmax= car_1_m_ayfMAX func operf car_1_m_ayfxmax= `intpl_linj (time, lsc_1.pn, car_1_m_ayfTMA)` # Translate to position along track func copy car_1_m_ayfsign= 1. else func copy car_1_m_ayfmax= -car_1_m_ayfMIN func operf car_1_m_ayfxmax= `intpl_linj (time, lsc_1.pn, car_1_m_ayfTMI)` # Translate to position along track func copy car_1_m_ayfsign= -1. endif # # Max abs car-body jerk # -------------------------------------------------- func slope_dx car_1_m_jy= car_1_m_ayf 1. stat car_1_m_jy Tstart= `Curve_TC_beg1-1*Vo` Tstop= Curve_TC_end1 Tsname= lsc_1.pn if_then car_1_m_jyMED .gt. 0. func copy car_1_m_jymax= car_1_m_jyMAX func operf car_1_m_jyxmax= `intpl_linj (time, lsc_1.pn, car_1_m_jyTMA)` # Translate to position along track func copy car_1_m_jysign= 1. else func copy car_1_m_jymax= -car_1_m_jyMIN func operf car_1_m_jyxmax= `intpl_linj (time, lsc_1.pn, car_1_m_jyTMI)` # Translate to position along track func copy car_1_m_jysign= -1. endif # # Add influence from acceleration and jerk to the Pct # --------------------------------------------------- func operf car_1_m_PCTseat1= `8.9704*abs(car_1_m_ayfmax) + 9.6840*abs(car_1_m_jymax) - 5.9;` if_then car_1_m_PCTseat1 .gt. 0. no_warning func incr car_1_m_PCTseated= car_1_m_PCTseat1 endif # # Write output to print-file # --------------------------------------------------- print scalar car_1_m_PCTseated car_1_m_PCTseat1 car_1_m_ayfmax car_1_m_jymax car_1_VFFmax ## ## Create a plot ## Page ---------------------------------------- xgridint= 1 page_head 1 "Comfort on Curve Transitions car_1_m_PCTseated= $car_1_m_PCTseated" xvar= lsc_1.pn rot_ytext= -90 loc_frame_ll= 1.75,1. Diagram 11 head 1 "Curvature" Curve yvar= esys_1.b Curve yvar= esys_1.b Point xvar= Curve_TC_beg1 yvalue= -10 dot_type= 801 write_ytext= no Point xvar= Curve_TC_beg1 yvalue= 10 dot_type= 801 write_ytext= no Point xvar= Curve_TC_end1 yvalue= 10 dot_type= 801 write_ytext= no Point xvar= Curve_TC_end1 yvalue= -10 dot_type= 801 write_ytext= no Point_line polygon 3,4,5,6 line_type= 8 write_ytext= no Diagram 12 head 1 "Car-body roll speed filtered in a 1s averaging window. Max value $car_1_VFFmax" head 2 "Black line unfiltered roll speed" Curve yvar= car_1.VF Curve yvar= car_1_VFF Point xvar= Curve_TC_beg1 yvalue= -10 dot_type= 801 write_ytext= no Point xvar= Curve_TC_beg1 yvalue= 10 dot_type= 801 write_ytext= no Point xvar= Curve_TC_end1 yvalue= 10 dot_type= 801 write_ytext= no Point xvar= Curve_TC_end1 yvalue= -10 dot_type= 801 write_ytext= no Point_line polygon 3,4,5,6 line_type= 8 write_ytext= no Point xvalue= car_1_VFFxmax yvalue= `car_1_VFFsign*car_1_VFFmax` dot_type= 803 write_ytext= no Diagram 21 head 1 "Acceleration filtered in a 1s averaging window. Max value $car_1_m_ayfmax" head 2 "Black line unfiltered acceleration" Curve yvar= car_1_m.ay Curve yvar= car_1_m_ayf Point xvalue= Curve_TC_beg1 yvalue= -10 dot_type= 801 write_ytext= no Point xvalue= Curve_TC_beg1 yvalue= 10 dot_type= 801 write_ytext= no Point xvalue=`Curve_TC_end1+1.6*Vo` yvalue= 10 dot_type= 801 write_ytext= no Point xvalue=`Curve_TC_end1+1.6*Vo` yvalue= -10 dot_type= 801 write_ytext= no Point_line polygon 3,4,5,6 line_type= 8 write_ytext= no Point xvalue= car_1_m_ayfxmax yvalue= `car_1_m_ayfsign*car_1_m_ayfmax` dot_type= 803 write_ytext= no Diagram 22 head 1 "Jerk. Max value $car_1_m_jymax" Curve yvar= car_1_m_jy Curve yvar= car_1_m_jy Point xvalue=`Curve_TC_beg1-1*Vo` yvalue= -10 dot_type= 801 write_ytext= no Point xvalue=`Curve_TC_beg1-1*Vo` yvalue= 10 dot_type= 801 write_ytext= no Point xvalue= Curve_TC_end1 yvalue= 10 dot_type= 801 write_ytext= no Point xvalue= Curve_TC_end1 yvalue= -10 dot_type= 801 write_ytext= no Point_line polygon 3,4,5,6 line_type= 8 write_ytext= no Point xvalue= car_1_m_jyxmax yvalue= `car_1_m_jysign*car_1_m_jymax` dot_type= 803 write_ytext= no EndPage