Showing posts with label How to show Curve RTC Rules in #SWMM5 in the Control Actions Taken Section. Show all posts
Showing posts with label How to show Curve RTC Rules in #SWMM5 in the Control Actions Taken Section. Show all posts

Tuesday, December 20, 2016

How to show Curve RTC Rules in #SWMM5 in the Control Actions Taken Section

#SWMM5 has very flexible control rules.  The rules are shown in the controls.c code.  However, one aspect I did not know was that if a rule is based on a control curve the RPT logging of the control actions is not shown.  You  can change by changing and compiling the code.  You will need to get rid of the half rule
  && a1->curve < 0                      so that the changing of the target setting is logged – see below for a snippet of the code.

Here is a sample curve tool

RULE MC3
IF SIMULATION TIME > 4
AND SIMULATION TIME <= 6
THEN PUMP Gbp1 SETTING = CURVE myControl
Priority 3

And here is the control action log in the RPT file – it helps to see this log and verify the rules

  *********************
  Control Actions Taken
  *********************
   01/01/2013: 00:00:00 Link Gbp1 setting changed to   0.00 by Control MC1
   01/01/2013: 00:00:01 Link Gbp1 setting changed to   0.00 by Control MC1
   01/01/2013: 00:00:11 Link Gbp1 setting changed to   0.01 by Control MC1
   01/01/2013: 00:00:21 Link Gbp1 setting changed to   0.01 by Control MC1

    listItem = ActionList;
    while ( listItem )
    {
        a1 = listItem->action;
        if ( !a1 ) break;
        if ( a1->link >= 0 )
        {
            if ( Link[a1->link].targetSetting != a1->value )
            {
                Link[a1->link].targetSetting = a1->value;
                //if ( RptFlags.controls && a1->curve < 0                     //(5.1.011) Original Rule
                if ( RptFlags.controls                                        //(5.1.011) New rule
                    && a1->tseries < 0 && a1->attribute != r_PID )            //(5.1.011)
                    report_writeControlAction(currentTime, Link[a1->link].ID,
                                              a1->value, Rules[a1->rule].ID);
                count++;
            }


AI Rivers of Wisdom about ICM SWMM

Here's the text "Rivers of Wisdom" formatted with one sentence per line: [Verse 1] 🌊 Beneath the ancient oak, where shadows p...