[us-commits] r2782 - in trunk: programs/us_2dsa programs/us_fematch utils

svn at svn.aucsolutions.com svn at svn.aucsolutions.com
Mon Jun 3 11:45:42 MDT 2019


Author: gegorbet
Date: 2019-06-03 17:45:41 +0000 (Mon, 03 Jun 2019)
New Revision: 2782

Modified:
   trunk/programs/us_2dsa/us_2dsa.cpp
   trunk/programs/us_fematch/us_fematch.cpp
   trunk/utils/us_settings.cpp
   trunk/utils/us_settings.h
   trunk/utils/us_simparms.cpp
Log:
See initial apparent constant speed zones as part of acceleration when TimeState shows zone less than 5 minutes in duration or empty of scan times

Modified: trunk/programs/us_2dsa/us_2dsa.cpp
===================================================================
--- trunk/programs/us_2dsa/us_2dsa.cpp	2019-05-31 17:02:15 UTC (rev 2781)
+++ trunk/programs/us_2dsa/us_2dsa.cpp	2019-06-03 17:45:41 UTC (rev 2782)
@@ -1116,14 +1116,16 @@
    // Do a quick test of the speed step implied by TimeState
    int tf_scan   = dset.simparams.speed_step[ 0 ].time_first;
    int accel1    = dset.simparams.speed_step[ 0 ].acceleration;
+   QString svalu = US_Settings::debug_value( "SetSpeedLowA" );
+   int lo_ss_acc = svalu.isEmpty() ? 250 : svalu.toInt();
    int rspeed    = dset.simparams.speed_step[ 0 ].rotorspeed;
    int tf_aend   = ( rspeed + accel1 - 1 ) / accel1;
    int accel2    = dset.simparams.sim_speed_prof[ 0 ].acceleration;
 DbgLv(1)<<"2dsa : ssck: rspeed accel1 tf_aend tf_scan"
  << rspeed << accel1 << tf_aend << tf_scan
- << "accel2" << accel2;
+ << "accel2" << accel2 << "lo_ss_acc" << lo_ss_acc;
 //x0  1  2  3  4  5
-   if ( accel1 < 250  ||  tf_aend > ( tf_scan - 6 ) )
+   if ( accel1 < lo_ss_acc  ||  tf_aend > ( tf_scan - 6 ) )
    {
       QString wmsg = tr( "The TimeState used is likely bad:<br/>"
                          "The acceleration implied is %1 rpm/sec.<br/>"

Modified: trunk/programs/us_fematch/us_fematch.cpp
===================================================================
--- trunk/programs/us_fematch/us_fematch.cpp	2019-05-31 17:02:15 UTC (rev 2781)
+++ trunk/programs/us_fematch/us_fematch.cpp	2019-06-03 17:45:41 UTC (rev 2782)
@@ -2201,12 +2201,15 @@
    // Do a quick test of the speed step implied by TimeState
    int tf_scan   = simparams.speed_step[ 0 ].time_first;
    int accel1    = simparams.speed_step[ 0 ].acceleration;
+   QString svalu = US_Settings::debug_value( "SetSpeedLowA" );
+   int lo_ss_acc = svalu.isEmpty() ? 250 : svalu.toInt();
    int rspeed    = simparams.speed_step[ 0 ].rotorspeed;
    int tf_aend   = ( rspeed + accel1 - 1 ) / accel1;
-DbgLv(1) << "SimMdl: ssck: rspeed accel1 tf_aend tf_scan"
- << rspeed << accel1 << tf_aend << tf_scan;
+DbgLv(1) << "SimMdl: ssck: rspeed accel1 lo_ss_acc"
+ << rspeed << accel1 << lo_ss_acc << "tf_aend tf_scan"
+ << tf_aend << tf_scan;
 //x0  1  2  3  4  5
-   if ( accel1 < 250  ||  tf_aend > ( tf_scan - 6 ) )
+   if ( accel1 < lo_ss_acc  ||  tf_aend > ( tf_scan - 6 ) )
    {
       QString wmsg = tr( "The TimeState computed/used is likely bad:<br/>"
                          "The acceleration implied is %1 rpm/sec.<br/>"

Modified: trunk/utils/us_settings.cpp
===================================================================
--- trunk/utils/us_settings.cpp	2019-05-31 17:02:15 UTC (rev 2781)
+++ trunk/utils/us_settings.cpp	2019-06-03 17:45:41 UTC (rev 2782)
@@ -253,7 +253,23 @@
    return debug_text().contains( match, Qt::CaseInsensitive );
 }
 
+QString US_Settings::debug_value( QString match )
+{
+   QStringList dbgtxt = debug_text();
+   QString dbgval( "" );
 
+   for ( int ii = 0; ii < dbgtxt.count(); ii++ )
+   {
+      if ( dbgtxt[ ii ].startsWith( match, Qt::CaseInsensitive ) )
+      {
+         dbgval        = QString( dbgtxt[ ii ] ).section( "=", 1, 1 );
+         break;
+      }
+   }
+
+   return dbgval;
+}
+
 // Investigator
 QString US_Settings::us_inv_name( void )
 {

Modified: trunk/utils/us_settings.h
===================================================================
--- trunk/utils/us_settings.h	2019-05-31 17:02:15 UTC (rev 2781)
+++ trunk/utils/us_settings.h	2019-06-03 17:45:41 UTC (rev 2782)
@@ -113,6 +113,8 @@
     static QStringList debug_text(     void );
     //! \brief Get a flag if given string matches any in debug text
     static bool        debug_match(    QString );
+    //! \brief Get the string value for a match in debug_text
+    static QString     debug_value(    QString );
     //! \brief Set the Debug text setting as a string list
     static void        set_debug_text( QStringList );
 

Modified: trunk/utils/us_simparms.cpp
===================================================================
--- trunk/utils/us_simparms.cpp	2019-05-31 17:02:15 UTC (rev 2781)
+++ trunk/utils/us_simparms.cpp	2019-06-03 17:45:41 UTC (rev 2782)
@@ -1181,14 +1181,13 @@
    if ( ! have_keys )
       return -1;                           // Do not have needed keys
 
-   int ss_reso      = 100;
    // If debug_text so directs, change set_speed_resolution
-   QStringList dbgtxt = US_Settings::debug_text();
-   for ( int ii = 0; ii < dbgtxt.count(); ii++ )
-   {  // If debug text modifies ss_reso, apply it
-      if ( dbgtxt[ ii ].startsWith( "SetSpeedReso" ) )
-         ss_reso       = QString( dbgtxt[ ii ] ).section( "=", 1, 1 ).toInt();
-   }
+   //  and/or set_speed_low_rpm
+   QString dbgval   = US_Settings::debug_value( "SetSpeedReso" );
+   int ss_reso      = dbgval.isEmpty() ? 100  : dbgval.toInt();
+   dbgval           = US_Settings::debug_value( "SetSpeedLowR" );
+   int ss_lo_rpm    = dbgval.isEmpty() ? 1500 : dbgval.toInt();
+
    int nrec         = tsobj->time_count(); // Total time record count
    QList< int >  cspeeds;                  // Constant speeds list
 
@@ -1206,9 +1205,7 @@
             (int)qRound( tsobj->time_dvalue( "SetSpeed" ) ) :
                          tsobj->time_ivalue( "SetSpeed" );  // Current set speed
 
-      //if ( ss3 == ss2  &&  ss2 == ss1  &&  ss3 > 0 )
-      //if ( ss3 == ss2  &&  ss2 == ss1  &&  ss3 > 3500 )
-      if ( ss3 == ss2  &&  ss2 == ss1  &&  ss3 > 1500 )
+      if ( ss3 == ss2  &&  ss2 == ss1  &&  ss3 > ss_lo_rpm )
       { // This non-zero set-speed and both previous are the same
          if ( ! cspeeds.contains( ss3 ) )
             cspeeds << ss3;                // Save it if first time encountered
@@ -1355,6 +1352,23 @@
 DbgLv(1) << "Sim parms:ssProf: const-end ss_p ss_c" << ss_p << ss_c
  << "ndtimes" << ndtimes << "tm_c" << tm_c
  << "rs_p rs_c" << rs_p << rs_c << "ss_c_ts" << ss_c_ts;
+
+            // But, wait a minute! If the "constant zone" just ending is less than
+            // 5 minutes long or contains no scans, then add it to the current
+            // speed step's acceleration zone and resume looking for an end
+            // to the acceleration zone
+            if ( ndtimes < 300  ||  ssp.time_f_scan < 1 )
+            {
+               in_accel         = true;
+               naintvs         += ndtimes;
+               sum_speed        = ssp.avg_speed * (double)ndtimes;
+               sum_accel        = ssp.acceleration * (double)( naintvs - 1 );
+DbgLv(1) << "Sim parms:ssProf: BACK-to-ACCEL: naintvs" << naintvs
+ << "ndtimes" << ndtimes << "sum_accel" << sum_accel << "sum_speed" << sum_speed;
+               continue;
+            }
+
+            // End to a true constant zone:  save a speed step
             ssp.avg_speed    = sum_speed / (double)( ndtimes  );
             ssp.w2t_e_step   = w2_p;
             ssp.time_e_step  = tm_p;



More information about the us-commits mailing list