MATPOWER / mx-se

MATPOWER Extra - State estimation code contributed by Rui Bo.
8 stars 1 forks source link

add active & reactive load as measurements #2

Open rdzman opened 3 months ago

rdzman commented 3 months ago

In #1, @aldalahmeh adds the option to include active and reactive load as measurements, along with other changes/new features. We are splitting this into separate threads to more easily track the discussion.

So, this proposed change is fine for loads at buses without generators. But, for loads at generator buses, this is not consistent with the assumption in the existing code, which assumes the load is a known quantity. To handle that case, we need more discussion and design work.

I'm ok with moving ahead with simply adding load measurements as in #1 if we also include a README that clearly documents that load measurements assume zero generation at the bus, and generator measurements assume known (possibly 0) load at the bus, and no multiple generators per bus. In fact, it should throw an error in the case of multiple injections (load and gen, or multiple gens) at a bus, until we can implement a more rational way of handling those cases.

If and when we decide to attempt to go toward a more general design that handles multiple injection measurements at a bus, this comment describes the cases I think we need to handle.

What do you think @aldalahmeh?

If you are in agreement, could you create a new PR that just adds the active and reactive load measurements, throws an error for the multiple injection measurements per bus, and adds a README.md as described above?

aldalahmeh commented 2 months ago

With regards to the cases mention in here, which are repeated here for ease: (a) load measurement only. (b) generator measurement only. (c) load measurement, with gen at same bus with no measurement. (d) gen measurement, with another gen or load at same bus with no measurement. (e) multiple injections (load, gens) at a bus, each with a measurement.

Also, let us define a measurement as the true value+noise in contrast to the pure (clean) true value.

I agree that this should be explained in a README file in detail. Also, an error should raised when the user enters a a power demand measurement at a generator bus in the measure.PD field in line 64 in doSEmod.m and should be instructed to included it in the bus matrix. However, in this case the measurement variance is the generation power measurement variance.

Finally, do you suggest creating a new PR for the above modifications only?

rdzman commented 2 months ago
  • Case (c), it is not clear to me what exactly it is ment by no measurement.

I just mean that the measurement for the generator at the same bus is not provided. I view cases (c) and (d) as essentially equivalent. Both are cases where there are multiple injections at the bus, but we are not provided with measurement data for all of them.

  • Cases (d), (g) and (e) are not supported in the code addition and the original code.

Did you mean cases (c), (d), and (e)?

Finally, do you suggest creating a new PR for the above modifications only?

Yes. Let's create a new PR that does the following ...

Note, the second item does change the behavior of the existing code and examples for buses that have both load and generation, with a measurement provided for the generation. The assumption in the original code is that the load is a known quantity. It seems to me that for consistency we must assume that a quantity is either provided as a measurement, or we do not have any information about its value.