Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Model iPSL.Electrical.Loads.PSSE.BaseClasses #25

Closed
petitrenaudseb opened this issue Nov 26, 2015 · 14 comments
Closed

Model iPSL.Electrical.Loads.PSSE.BaseClasses #25

petitrenaudseb opened this issue Nov 26, 2015 · 14 comments

Comments

@petitrenaudseb
Copy link

I have some questions/ doubt about the input of this model.

If you look at this model, one can fix the following parameters:
constant power load
constant shunt admittance load
constant current load

a and b : load transfert fraction for shunt/current load

If you look at PSSE inputs, a and b are not accessible and are deduced from load description.

Moreover, this model does not take care of the input the user choose : use of hard coded parameters

@tinrabuzin
Copy link
Member

@petitrenaudseb
I'm not sure I understand what your point is. When you convert loads and gens before you perform dynamic simulations, you have to select a and b parameters. That is, you have to select what percentage of load will no longer be fixed power and how this percentage will be converted to constant shunt or current load. a and b are not accessible per se in the PSSE but you can use them as I wrote before.

The last sentence I do not understand at all. What would the user choose and why would you think our model parameters are hard coded? If you think about the lines where it says a(re=1,im=0) and b(re=0,im=1) those are just starting parameters.

@petitrenaudseb
Copy link
Author

Let me try to explain my point of view. The easier is the second one.
When you look at the BaseClasses model, there is some parameters (a2, b2,a0,a1,b1) who are hard coded (fix values), and use in equations. Is it intentional or a mistake? (i don't speak about default parameters such as a(re=1, im=0))

For the first point, i understand what is a and b. My question is that if you set S_p, S_i and S_y it's enough to deduce a and b.
Other way, you can set P0 and Q0, a and b and then deduced S_p, S_i, S_y .

@tinrabuzin
Copy link
Member

@petitrenaudseb Ok, now I understand.

Regarding the first point, which was originally second, yes, they are hardcoded. PSSE has a certain way of scaling the load depending on the voltage below the threshold value. To my knowledge, my predecessors were not able to find the exact way of describing this function of load vs. voltage. The a0,a1 and a2 came from the curve fitting experiments in Matlab. I should also mention that there are two ways in which this behaviour was modelled and it can be selected via "characteristic" parameter. For the exact functions you can check the code.

Regarding the S_p,i and y, I can say that this is done in the same way in PSSE. During the power flow, you can set the constant power, current or shunt and any combination of those three. Then, when you convert the load, constant power can be assigned to constant current or shunt with parameters a and b. So, what you set with S_i and S_y in parameters might not be the same as what you get after conversion with a and b. Check the code and parameters S_P, S_I and S_Y (notice the capital letters).

@petitrenaudseb
Copy link
Author

About hardcoded parameters, you explanation is ok for me.

Regarding the load combination, i try to understand (thanks to your explanation), how to use this model.
Let's say that i previously made a load flow that give me V, P0 and Q0.
What i want is that , what ever the combination of the load, P(t=0) =Q0 and Q(t=0) = Q0.

That's why i ask the previous question:
if you set a and b, S_p, S_i and S_y, you are not sure that the initial point of your load is the one you calculate with a load flow and then the simulation would not be in steady state at the beginning.

In the example i found in the IPSL, it works because a(re=1,im=0), b(re=0, im=1) and S_i and S_y is equal to zero

@tinrabuzin
Copy link
Member

See the screenshot - Pload and Qload are S_p, IPload and IQload are S_i and YPload and YQload are S_y in Modelica. The screenshot is from the Network Data->Load

Let's say that you do a load flow which results in Pload = x, Qload = y, IPload = x1, IQload = y1, and YPload = x2 and YQload =y3.

The end result after conversion with a and b will be as follows:
Pload=(1-a.re-b.re)x, Qload = y(1-a.im-b.im), IPload = x1+x_a.re, IQload = x1+y_a.im, YPload = x2+x_b.re, YQload = x1+y_b.im

My point here is, after the power flow you might not have only constant power load! (which is strange to me). Before dynamic simulation you can shift constant power load between the other two as you wish.

I hope this explains it.

screen shot 2015-11-26 at 14 56 45

@petitrenaudseb
Copy link
Author

it's clear that you might not have only constant power load during dynamic simulation.

Thanks for you example, i understand what you mean !

before closing this interesting discussion, when you look at the equations described in the model, parameters S_P, S_Y, and S_I are never used. I think this is a mistake (?)

@tinrabuzin
Copy link
Member

You're welcome.

Nope. What you're looking at is the base class which is then extended by the models above (Load and Load_variation). So, I'm now closing this issue. :)

@petitrenaudseb
Copy link
Author

i'm still investigating why, when i use this model, i'm not on steady state, and i think i found something. Let me know if you agree.
If i set S_p, a and b, it works (S_y and S_i are equal to zero)
But if i set S_p, S_i, S_y it does not works. The fix i found is to per unit S_i and S_y with v0 or vo^2 when S_I and S_Y are calculated

@AIAitesla
Copy link
Contributor

@tinrabuzin @petitrenaudseb which is the status of this issue?

@petitrenaudseb
Copy link
Author

I still do not agree with the psse base load model, one correction i made in my local library is the following:
parameter Complex S_I = S_i**/v0** + Complex(a.re * S_p.re / v0, a.im * S_p.im / v0);
parameter Complex S_Y = S_y**/v0^2** + Complex(b.re * S_p.re / v0 ^ 2, b.im * S_p.im / v0 ^ 2);

@tinrabuzin
Copy link
Member

I disagree. You can have a look at the section 7.2.2. of PAGV1 of PSSE. And I consider this issue closed.

@petitrenaudseb
Copy link
Author

@tinrabuzin
May you send me this section please ?

@petitrenaudseb
Copy link
Author

@tinrabuzin
Thanks for the documentation.

@AIAitesla
If we follow the documentation of PSSE, we should use the load as following (assuming that the load flow calculate P0, Q0 and V0) for our case :
S_p(re=P0, im=Q0),
S_i(re=0.0, im=0.0),
S_y(re=0.0, im=0.0),
a(re=1, im=0),
b(re=0, im=1),
v0 = V0

@AIAitesla
Copy link
Contributor

OK. We will do this.

Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants