CRESYM / colib0.github.io

Collaborative dynamic library
https://colib.net/index.html
Creative Commons Attribution 4.0 International
9 stars 3 forks source link

[COLIB-NGC] add kundur two area test system #214

Open martinscripts opened 2 months ago

martinscripts commented 2 months ago

Joy to be added as reviewer asap

martinscripts commented 2 months ago

@adriguir, this is the version without the Kundur saturation model. As we discusses, this is for you to update as soon as the generator system with Kundur's saturation model is implemented.

adriguir commented 1 month ago

Hi Lampros. Just to let you know, this was kind of a draft pull request (we could have tag it as draft) as we had an intern in RTE that had built upon the work by Martin to get closer values to Kundur ones, using the Kundur saturation instead of Shafshakt and also taking the small signal approximation made by Kundur by taking Cm = Pm (instead of Cm = Pm * omega as in the current complete Dynawo model).

I'm in the process of cleaning its work and will try to push on both Dynawo and Colib github repo as soon as I can :). Eigenvalues are now close to the reference (freq= 0.6 vs 0.61 Hz, damping = 0.13 vs 0.143)...

Lampros-Cresym commented 1 month ago

Hi Adrien,

Thanks for letting me know. No worries, it was still a good exercise for me 😊

I would be still interested in understanding how the eigenvalues are calculated from Dynawo. I was afraid there might be something hidden there also creating a discrepancy.

Please keep me informed of the updated Kundur system. Most of my other comments could be still applicable.

From: Adrien Guironnet @.> Sent: Wednesday, 18 September 2024 16:04 To: CRESYM/colib0.github.io @.> Cc: Lampros Papangelis @.>; Review requested @.> Subject: Re: [CRESYM/colib0.github.io] [COLIB-NGC] add kundur two area test system (PR #214)

Hi Lampros. Just to let you know, this was kind of a draft pull request (we could have tag it as draft) as we had an intern in RTE that had built upon the work by Martin to get closer values to Kundur ones, using the Kundur saturation instead of Shafshakt and also taking the small signal approximation made by Kundur by taking Cm = Pm (instead of Cm = Pm * omega as in the current complete Dynawo model).

I'm in the process of cleaning its work and will try to push on both Dynawo and Colib github repo as soon as I can :). Eigenvalues are now close to the reference (freq= 0.6 vs 0.61 Hz, damping = 0.13 vs 0.143)...

— Reply to this email directly, view it on GitHubhttps://github.com/CRESYM/colib0.github.io/pull/214#issuecomment-2358562952, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BLBLTZL5MGQ7S5KNQEISOBLZXGB4JAVCNFSM6AAAAABMQJHWX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNJYGU3DEOJVGI. You are receiving this because your review was requested.Message ID: @.**@.>>

adriguir commented 1 month ago

Indeed, they are not really calculated by Dynawo itself at the moment but through OpenModelica. It is right now a full Modelica test case simulated by OpenModelica - Dynawo contains a library of models that can be used in OpenModelica or through Dynawo...

Anyway, the linearization is done using OMJulia (interface between OpenModelica and Julia), allowing to obtain the A matrix, then the eigenvalues are obtained with the eigvals function of Julia (or similarly in Python). Of course, I suppose your point was more on the way the A matrix is obtained: I haven't really dig into the OM code but I'm rather sure it is done numerically and not symbolically, based on the J matrix at the current time step.

We also were a bit cautious about the linearization obtained through OM but managed to build confidence this summer by putting efforts on the SMIB examples from the book and get similar results. OM is also used in other sectors of the industry so we can assume that this function is quite reliable.