Giter VIP home page Giter VIP logo

Comments (10)

SanPen avatar SanPen commented on June 2, 2024

Hi!

There might be a piece of information that you should know;

When calculating in per-unit (normalization of the grid) a transformer is modeled in exactly the same way as a line. Therefore GridCal does have a generic Branch model to handle all the connection types (Lines, Switches, transformers, reactances, etc...)

The branch_type property is used in higher level functionalities like assigning a branch template (a tower or a transformer type)

So, in the computations, a transformer (or any other branch) terminal voltages are irrelevant.

The tap value on the other hand, is indeed applied in the branch model. However it only makes sense to have tap values for transformers.

I hope this answers the question

from gridcal.

miek770 avatar miek770 commented on June 2, 2024

Hum I'm sorry but that's definitely wrong, the transformer's ratio absolutely has to be considered, and it's often different from the buses nominal voltage ratio between the primary and secondary. The transformer's ratio should be treated in a way similar to the tap ratio.

If you feed a 25kV bus from a 69-34.5 kV transformer tied to a 69kV network, you'll get 34.5 kV on the LV Side (at no load), not 25kV. If you raise the tap on the primary side by 5%, it'll lower the secondary side by the same percentage.

I can propose a merge request if you want, once we agree on the method.

from gridcal.

SanPen avatar SanPen commented on June 2, 2024

Hi,

I really advise you to review what I said. A good foundation can be the ETH course on power systems
(see page 9) Indeed this model is widely adopted in the industry and academia.

Not having the transformers in per unit introduces a numerical discontinuity that would cause the numerical methods to diverge. Hence all voltages, powers and impedances are normalized with the per unit system.

PSS/e, Power Factory and I am sure that the 90% of other power system solvers use this. The ones that do not use the per-nit system use the BFS power flow as formulated here, and this method diverges if there are many loops.

Best regards,
Santiago

from gridcal.

miek770 avatar miek770 commented on June 2, 2024

Do you agree that a transformer's voltage ratio has an impact on the voltage between its terminals? I know per unit uses normalized voltages but you have to adjust your transformer's parameter calculations to its voltage ratio.

I ran a small example in ETAP 16.1.0, see here: https://www.dropbox.com/s/6mtjk70fumacf5v/xfo%20example.png?dl=0. It shows exactly what you'd expect: Changing the transformer's ratio affects the voltage on its secondary bus.

Wiki also mentions this stuff here: https://en.wikipedia.org/wiki/Per-unit_system#In_transformers, see below:

Another useful tool for analyzing transformers is to have the base change formula that allows the engineer to go from a base impedance with one set of a base voltage and base power to another base impedance for a different set of a base voltage and base power. This becomes especially useful in real life applications where a transformer with a secondary side voltage of 1.2 kV might be connected to the primary side of another transformer whose rated voltage is 1 kV.

Sorry my links don't work, not sure why. You may simple copy-paste them and they should work.

from gridcal.

SanPen avatar SanPen commented on June 2, 2024

Do you mean the tap changer module?

Changing the tap module in a Branch in GridCal does change the voltage.

The test case IEEE 14 that has some transformers with taps provides the same results as in Power Factory.

  Voltage module (p.u.) Voltage angle (deg)
Bus 1     HV 1.060 0.000
Bus 2     HV 1.045 -4.983
Bus 3     HV 1.010 -12.725
Bus 4     HV 1.018 -10.313
Bus 5     HV 1.020 -8.774
Bus 6     LV 1.070 -14.221
Bus 7     ZV 1.062 -13.360
Bus 8     TV 1.090 -13.360
Bus 9     LV 1.056 -14.939
Bus 10    LV 1.051 -15.097
Bus 11    LV 1.057 -14.791
Bus 12    LV 1.055 -15.076
Bus 13    LV 1.050 -15.156
Bus 14    LV 1.036 -16.034

And the PF results are:
captura de pantalla de 2018-09-28 16-26-46

from gridcal.

miek770 avatar miek770 commented on June 2, 2024

Pretty much, in essence it's the same thing. In the end all that matters is that both things (changing tap and changing the transformer's voltages) affect the turn ratio of the transformer. Either should have the same overall impact, which is what I showed in my ETAP example, and what your IEEE example is showing.

So, a 105-10 kV transformer on its nominal tap should yield the same results as a 100-10 kV transformer on its +5.0% HV tap. In both cases, its final turn ratio would be 105/10=1.05*100/10=10.5.

In addition, the resulting voltage in pu will be based on the buses' nominal voltages, not the transformer's nominal voltages. So if the above ideal unloaded transformers are tied to a 100kV bus, their secondary would be at 10*100/105=9.5kV. If the bus' nominal voltage is 10kV, that'd be (obviously) 0.95 pu. If it were 9kV, it'd be 1.06 pu.

from gridcal.

SanPen avatar SanPen commented on June 2, 2024

Yes I get what you say.

I guess this would require "virtual tap" devices into the branch model to account for this effect. I take it into account , but as for now I believe the only way to model this is with the tap device.

from gridcal.

miek770 avatar miek770 commented on June 2, 2024

Indeed. I might send a pull request to add the feature, probably something similar to what I first suggested above. I'll try to get back to you soon. Let me know if you have new thoughts until then, and thanks for the prompt replies.

from gridcal.

SanPen avatar SanPen commented on June 2, 2024

Hi,

I believe I have implemented the feature. I've added the method get_virtual_taps to the Branch object. This function is called by the compile method in MultiCircuit and those virtual tap values are used to compute Ybus in NumericalCircuit

The logic is: When a branch is of type Transformer and the branch template is a transformer template, the template voltages and the branch connection buses voltage are compared, generating the virtual taps.

I added a simple example file example_transformer_tpe.xlsx to illustrate and it seems to work.
Please review if it fulfills the functionality correctly.

from gridcal.

miek770 avatar miek770 commented on June 2, 2024

Great thank you, it works. I get the same results using identical setups with either:

  1. A 105-10kV transformer (nominal HV tap), tied to a 100kV and 10kV buses;
  2. A 100-10kV transformer (+5% HV tap), tied to a 100kV and 10kV buses.

I also like the renaming of "type_obj" to "template", it feels more appropriate.

from gridcal.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.