Home    Search    Reference Manuals    Return   


##
##  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  Tname= 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 copy car_1_VFFsign=  1.
 else
  func copy car_1_VFFmax= -car_1_VFFMIN
  func copy car_1_VFFtma=  car_1_VFFTMI
  func copy car_1_VFFsign= -1.
 endif
 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`  Tname= lsc_1.pn
 if_then car_1_m_ayfMED .gt. 0.
  func copy car_1_m_ayfmax= car_1_m_ayfMAX
  func copy car_1_m_ayftma= car_1_m_ayfTMA
  func copy car_1_m_ayfsign=  1.
 else
  func copy car_1_m_ayfmax= -car_1_m_ayfMIN
  func copy car_1_m_ayftma=  car_1_m_ayfTMI
  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  Tname= lsc_1.pn
 if_then car_1_m_jyMED .gt. 0.
  func copy car_1_m_jymax= car_1_m_jyMAX
  func copy car_1_m_jytma= car_1_m_jyTMA
  func copy car_1_m_jysign=  1.
 else
  func copy car_1_m_jymax= -car_1_m_jyMIN
  func copy car_1_m_jytma=  car_1_m_jyTMI
  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

  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_VFFtma  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_ayftma  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_jytma  yvalue= `car_1_m_jysign*car_1_m_jymax`  dot_type= 803  write_ytext= no
 EndPage