Menu

Restoration

2016-04-24
2016-05-14
  • saman zandi

    saman zandi - 2016-04-24

    )HI GRidLAB-D Team,
    i have a question about restoration.
    based on menual outage, a switch will be open for a time interval.after this time interval, we want the switch be
    closed and seperated parts be connected to network. can we do this by object restoration?
    clock {
    timezone PST+8PDT;
    timestamp '2011-01-16 0:00:00';
    stoptime '2011-01-16 03:00:00';
    };

    module tape;
    module powerflow {
    enable_subsecond_models true;
    deltamode_timestep 10000000; //10 ms
    solver_method NR;
    };
    module reliability;
    module generators {
    enable_subsecond_models TRUE;
    deltamode_timestep 100000; //Initial value - dictates how we want the models to run
    }

    //Fault check object
    object fault_check {
    name base_fault_check_object;
    check_mode ONCHANGE;
    strictly_radial false;
    eventgen_object testgendev;
    }

    object metrics {
    name testmetrics;
    report_file testmetrics.txt;
    module_metrics_object pwrmetrics;
    metrics_of_interest "SAIFI,SAIDI,CAIDI,ASAI,MAIFI";
    customer_group "groupid=METERTEST";
    //metric_interval 0 h;
    //report_interval 5 h;
    }

    object eventgen {
    name testgendev;
    parent testmetrics;
    //target_group "class=switch AND groupid=PIEBYE";
    fault_type "SW-ABC";
    manual_outages "T1,2011-01-16 01:00:01,2011-01-16 02:00:00";

    }
    object power_metrics {
    name pwrmetrics;
    //base_time_value 1 h;
    }
    object restoration {
    name RestorVal;
    reconfig_attempts 3;
    reconfig_iteration_limit 5;
    populate_tree TRUE;
    }
    //continue programing

    i will be so grateful if you send me a GLM example.
    thanks regards

     

    Last edit: saman zandi 2016-04-24
    • Frank Tuffner

      Frank Tuffner - 2016-04-25

      Hello Saman,

      If all you want to simulate is the opening of a switch, and then it closing back into service later, I highly recommend just using the event_gen object and reliability module for this functionality. The restoration module can be a bit complex to configure, especially for something this simple.

      In your GLM, you have:

      object eventgen {
      name testgendev;
      parent testmetrics;
      //target_group "class=switch AND groupid=PIEBYE";
      fault_type "SW-ABC";
      manual_outages "T1,2011-01-16 01:00:01,2011-01-16 02:00:00";
      

      In this object, it opens the switch on January 16, 2011 at 1:00:01 AM, and then closes it on January 16, 2011 at 2:00 AM. In the GLM you provided, it should start the simulation, open this switch an hour in, leave it open for an hour, then close it back in and restore the network components downstream.

      So if I am understanding your question correctly, you already have the syntax to do what you are trying to do, and I'd avoid using the restoration object, just due to how complicated it is to do something this simple.

      -Frank

       
  • saman zandi

    saman zandi - 2016-04-26

    Hi GridLAB-D Team,
    According to the past codes I sent you in the two previous post, I can only insert one outatge in my simulation however I would like to know how can I define two or three manual outages? In other words, could you please tell me what is the form of the manuscript when I intend to define two outages?
    In the following manuscript, I wrote a code to open a few switches but unfortunately it does not work properly and some switches do not open. Please help me to correct my code.

    Code:
    clock {
    timezone PST+8PDT;
    timestamp '2011-01-16 00:00:01';
    stoptime '2011-01-16 03:00:00';
    };

    module tape;
    module powerflow {
    enable_subsecond_models true;
    deltamode_timestep 10000000; //10 ms
    solver_method NR;
    };
    module reliability;
    module generators {
    enable_subsecond_models TRUE;
    deltamode_timestep 100000; //Initial value - dictates how we want the models to run
    }

    //Fault check object
    object fault_check {
    name base_fault_check_object;
    check_mode ONCHANGE;
    strictly_radial false;
    eventgen_object testgendev;
    }

    object metrics {
    name testmetrics;
    report_file testmetrics.txt;
    module_metrics_object pwrmetrics;
    metrics_of_interest "SAIFI,SAIDI,CAIDI,ASAI,MAIFI";
    customer_group "groupid=METERTEST";
    //metric_interval 0 h;
    //report_interval 5 h;
    }

    object eventgen {
    name testgendev;
    parent testmetrics;
    //target_group "class=switch AND groupid=PIEBYE";
    fault_type "SW-ABC";
    manualoutages "T-5,2011-01-16 00:00:02,2011-01-16 01:25:00","R3-12-47-2switch101,2011-01-16 01:00:00,2011-01-16 03:00:00","FB-c,2011-01-16 01:10:00,2011-01-16 03:00:00","R3-12-47-2recloser8,2011-01-16 01:20:01,2011-01-16 03:00:00","T-3,2011-01-16 00:00:02,2011-01-16 01:35:00","R3-12-47-2switch76,2011-01-16 01:30:00,2011-01-16 03:00:00","T-4,2011-01-16 00:00:02,2011-01-16 01:45:00","R3-12-47-2switch76,2011-01-16 01:40:00,2011-01-16 03:00:00";
    }

    I am thankful you for your previous precious answer. I would like to know more about restoration therefore I request you to send me some files and codes about it.
    Thank you in advance,
    Best Regards,

     

    Last edit: saman zandi 2016-04-26
    • Frank Tuffner

      Frank Tuffner - 2016-04-27

      Hello Saman,

      Based on the information provided, I don't know why your other switches are not actually opening. The syntax looks correct, so my guess is it is probably the other switches are affected by whatever the first "fault" is, so they will not operate. Basically, if switch #2 gets removed from service because switch #1 already opened, switch #2 may not change its state (in fact, it likely won't). This is primarily due to requires from the metric object, and how the powerflow and reliability interaction was written. Basically, we didn't cover scenarios where an already faulted line would somehow be faulted, after it has been de-energized. Switch functionality was a kludge add-on after the fact, so it still adheres to this rule, which may be causing your issues.

      I'm guessing that is the cause of your difficulties, but you'd have to check your "disconnect list" generated by the fault_check object to verify this (if you enable that). Unfortunately, I didn't have a chance to look too closely at your file. Debugging a 26000-line GLM isn't exactly forum-level support. If you can replicate the behavior on a much smaller, simplified GLM, we may be able to help out and debug it further.

      In regards to the restoration object, attached is a GLM that uses it. Unfortunately, documentation is nearly non-existent for this particular object. It was created as a part of a brief study, but the project scope changed and the budget ended up a little short, so we ended up not using it in any full capacity. Between that, and it primarily being authored by external collaborators, documentation was never really completed. As such, it hasn't been tested very much either, so outside of this example, it may be very unstable.

      The overall idea is it tries to use graph theory to determine how to reconfigure a system without violating certain constraints. This works to make sure voltage violations and "power available" limitations are not exceeded. I'm not sure if any papers were ever published, so browsing the source code may be the easiest way to understand what it does. If I manage to locate any papers with details, I'll be sure to link them back.

      It's not the best answer, but hopefully that helps you out.

      -Frank

       
      • Frank Tuffner

        Frank Tuffner - 2016-04-27

        I should also note, looking at your earlier code, that the restoration object you are using likely doesn't work with version 3.2. It uses an older syntax for restoration, which was even more unstable than the one I just mentioned above/below. If you want to use that functionality, you'd have to go back to version 3.0 or 3.1 (or even 2.3), but you'd lose a lot of the other functionality/fixes implemented since then. You could attempt to do a manual port and build of the older restoration object into version 3.2's code (and compile it yourself), but I'm 99% sure that some of the internal hooks used by that older restoration object were removed.

        Just a secondary note.

        -Frank

         
  • saman zandi

    saman zandi - 2016-04-28

    Hi dear Frank,
    I am thankful you for your previous precious answer.
    I am trying to link Gridlabd with Matlab. I have executed a sample code “subsecond_diesel_generator_example.glm” but I got these errors in Matlab while with the same sample code in gridlab itself everything is ok.
    Is there any instruction to be added in glm file?

    Errors, i got in matlab are like this:

    Error using icinterface/fopen (line 83)
    Unsuccessful open: Connection refused: connect

    Error in core (line 22)
    fopen(socket);

    Error in GridMat>debug_pushbutton_Callback (line 159)
    core(handles);

    Error in GridMat>run_pushbutton_Callback (line 170)
    debug_pushbutton_Callback(hObject, eventdata, handles);

    Error in gui_mainfcn (line 95)
    feval(varargin{:});

    Error in GridMat (line 42)
    gui_mainfcn(gui_State, varargin{:});

    Error in @(hObject,eventdata)GridMat('run_pushbutton_Callback',hObject,eventdata,guidata(hObject))

    Error while evaluating UIControl Callback

    best regards,
    saman,

     
  • Jason Fuller

    Jason Fuller - 2016-05-02

    Saman,

    I'm almost 100% certain that the two functions you are using have have not been tested together (MATLAB link and sub-second dynamics). The reason being is that delta mode (sub-second) requires a whole new way of synchronizing objects/classes from the existing steady-state methodology. The MATLAB link has only been opened to the existing methodology until we work out all of the kinks with the delta mode. This is probably a release version or two away.

     
  • saman zandi

    saman zandi - 2016-05-03

    HI GridLAB-D team,
    I ran the file entitled " IEEE_37node_test.glm" that you sent me the other days but unfortunately I faced a Error!!
    you can find it in the following.
    "C:\Users\Saman\Desktop\grid>gridlabd IEEE_37node_test.glm
    IEEE_37node_test.glm(33): property full_output_file is not defined in class faul
    t_check
    IEEE_37node_test.glm(33): expected object block closing }
    IEEE_37node_test.glm(28): load failed at or near 'object fault...'
    ERROR [INIT] : unable to load 'IEEE_37node_test.glm': No such file or directory
    FATAL [INIT] : shutdown after command line rejected

    I'd like to know how to remove the Error!!!
    Additionally, I am eager to know how the restoration is launched and carried out in the software.
    It seems there are some classifications for the restoration process. Let me know what these clasifications are.

    Best Regards,

     
  • Jason Fuller

    Jason Fuller - 2016-05-03

    What version of GLD are you using (gridlabd --version). That parameter was added in version 3.1.

     

Log in to post a comment.

MongoDB Logo MongoDB