GMLC-1-4-2 / battery_interface

Implemenation of Device Models and their Battery Equivalent Interface
MIT License
5 stars 0 forks source link

Artificial Inertia - Results #60

Open Hayden-Reeve opened 5 years ago

Hayden-Reeve commented 5 years ago

@raselmahmud02 ,

I was evaluating the performance of the PV devices (based on PR #40 ) for artificial inertia to try out the latest merges of the service (add pilot some plotting). The P_service provided by the PVs (see below) does not see consistent with what I would expect for autonomous frequency. In short, I would expect P_service to grow in magitude with increasing under frequency. Do you know why this may be happening?

@yliu250 , I will email out the code I wrote for the plotting function so you can leverage it. I integrated @afernandezcanosa work as well as some of the post-processing from reserve service. I am still learning python so I had to remove some of the nice plotting features to get it working. Hopefully it is a good start.

figure_2

raselmahmud02 commented 5 years ago

Could you please send me the plot that you are seeing?

Regards, Rasel

From: Hayden Reeve notifications@github.com Sent: Thursday, March 7, 2019 3:41 PM To: GMLC-1-4-2/battery_interface battery_interface@noreply.github.com Cc: Mahmud, Rasel Rasel.Mahmud@nrel.gov; Mention mention@noreply.github.com Subject: [GMLC-1-4-2/battery_interface] Artificial Inertia - Results (#60)

@raselmahmud02https://github.com/raselmahmud02 ,

I was evaluating the performance of the PV devices (based on PR #40https://github.com/GMLC-1-4-2/battery_interface/pull/40 ) for artificial inertia to try out the latest merges of the service (add pilot some plotting). The P_service provided by the PVs (see below) does not see consistent with what I would expect for autonomous frequency. In short, I would expect P_service to grow in magitude with increasing under frequency. Do you know why this may be happening?

@yliu250https://github.com/yliu250 , I will email out the code I wrote for the plotting function so you can leverage it. I integrated @afernandezcanosahttps://github.com/afernandezcanosa work as well as some of the post-processing from reserve service. I am still learning python so I had to remove some of the nice plotting features to get it working. Hopefully it is a good start.

[figure_2]https://user-images.githubusercontent.com/46937467/53994145-55f0a200-40e6-11e9-9476-9b9581a32877.png

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/GMLC-1-4-2/battery_interface/issues/60, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AfuK30iWOi6MgzcRfRQGhloRMNBWo7DMks5vUZWDgaJpZM4bkQzu.

Hayden-Reeve commented 5 years ago

@raselmahmud02 ,

I reran the latest submitted PV device code with Artificial Inertia. I created a cyclic frequency disturbance so it would have a clear over frequency event to respond to - since it can only reduce generation. At 19:00:00 hours it provided the result below. This seems reasonable, except the non-zero response at the start when frequency=60 hz is strange. I also ran at 00:00:00 and got zero power. This makes sense except Dave and I were curious by why P_pre and P_avl are zero. [Thanks to Dave for point out I needed to run during different parts of the day - hence this updated post]

@yliu250 , @DavidWiniarski-pnnl , Rob had mentioned having two drive cycles for Autonomous Frequency Response - frequency droop and frequency oscillation. Do you have thoughts on that? Do we have a real frequency oscillation drive cycle? It will be important for device like PV that can only provide negative P_service (unless curtailed in their baseline case).

https://github.com/GMLC-1-4-2/battery_interface/blob/bdd2558a2b241d5c265d29cc3efc459a516a4950/src/fleets/PV/PV_Inverter_Fleet.py#L1038-L1052

20190313_ArtificialInertia_PV

yliu250 commented 5 years ago

Currently, I cannot find a frequency oscillation drive cycle. The frequency excursion I have is either a frequency swell or a frequency droop.

Yuan

From: Hayden Reeve notifications@github.com Sent: Wednesday, March 13, 2019 1:28 PM To: GMLC-1-4-2/battery_interface battery_interface@noreply.github.com Cc: Liu, Yuan yuan.liu@pnnl.gov; Mention mention@noreply.github.com Subject: Re: [GMLC-1-4-2/battery_interface] Artificial Inertia - Results (#60)

@raselmahmud02https://github.com/raselmahmud02 ,

I reran the latest submitted PV device code with Artificial Inertia. It provides zero P_Service. I even created a cyclic frequency disturbance so it would have a clear over frequency event to respond to - since it can only reduce generation. Both results are attached. This seems to be because P_pre is zero. Can you please check that this is being set correctly.

@yliu250https://github.com/yliu250 , @DavidWiniarski-pnnlhttps://github.com/DavidWiniarski-pnnl , Rob had mentioned having two drive cycles for Autonomous Frequency Response - frequency droop and frequency oscillation. Do you have thoughts on that? Do we have a real frequency oscillation drive cycle? It will be important for device like PV that can only provide negative P_service (unless curtailed in their baseline case).

https://github.com/GMLC-1-4-2/battery_interface/blob/bdd2558a2b241d5c265d29cc3efc459a516a4950/src/fleets/PV/PV_Inverter_Fleet.py#L1038-L1052

[Image removed by sender. 20190313_ArtificialInertia_PV-Droop]https://user-images.githubusercontent.com/46937467/54311777-8dea6000-4592-11e9-8d79-91f9145ca0f8.png [Image removed by sender. 20190313_ArtificialInertia_PV]https://user-images.githubusercontent.com/46937467/54311781-904cba00-4592-11e9-96e4-be886d654865.png

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/GMLC-1-4-2/battery_interface/issues/60#issuecomment-472592178, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AYKNH95jOY03jVObC-ehxYprYDUfp8abks5vWV9hgaJpZM4bkQzu.

DavidWiniarski-pnnl commented 5 years ago

Yuan, Hayden, Rob.

Oscillatory Drive Cycle of Frequency discussion:

So, we can maybe make something up as a drive cycle.

This link to a report is one of many describing large grid blackouts and other grid wide problems. https://www.researchgate.net/profile/Luis_Vargas22/publication/272482692_Blackout_Experiences_and_Lessons_Best_Practices_for_System_Dynamic_Performance_and_the_Role_of_New_Technologies/links/5543d8110cf24107d3963798/Blackout-Experiences-and-Lessons-Best-Practices-for-System-Dynamic-Performance-and-the-Role-of-New-Technologies.pdf

So, for example: The Western Interconnection blackout in Aug 10, 1996 is discussed on page 1-18. Jeff Dagle at the lab here did some presentations on that I recall. Anyway, the discussion on 1-18 and 1-19 of the report has this line: “For about 40 seconds, 0.25 Hz oscillations were sustained with essentially no damping (See Figure 1-9). The graphic is showing power fluctuations over I believe the California Oregon Intertie.”

This I think is the type of issue we are trying to prevent. We can’t describe any reaction of the grid itself (the undamped amplitude of the response) and I am not sure there is any point to doing so, but as I read the graphic, you have 40 seconds (40 of 80 seconds shown on the graph X-axis in Figure 1-9) where undamped power oscillations are occurring on the intertie, leading to power fluctuations in the grid before breakdown. I count 11 power cycles over 40 seconds on the right of the figure, or a cycle time of about 3.63 seconds. Assuming that this represents over power and under power of the grid needs, I think you have a corresponding frequency variation in each cycle of +- 0.25 hz (out of 60) before the whole system tripped off.

I suspect that the oscillatory frequency is largely a product of unique characteristics of the grid served.

Rob, please respond if you know of something that might be more representative. This was a fast google for an example and could be used to test responsiveness with a real historical drive cycle.

From: yliu250 [mailto:notifications@github.com] Sent: Wednesday, March 13, 2019 3:37 PM To: GMLC-1-4-2/battery_interface battery_interface@noreply.github.com Cc: Winiarski, David W David.Winiarski@pnnl.gov; Mention mention@noreply.github.com Subject: Re: [GMLC-1-4-2/battery_interface] Artificial Inertia - Results (#60)

Currently, I cannot find a frequency oscillation drive cycle. The frequency excursion I have is either a frequency swell or a frequency droop.

Yuan

From: Hayden Reeve notifications@github.com<mailto:notifications@github.com> Sent: Wednesday, March 13, 2019 1:28 PM To: GMLC-1-4-2/battery_interface battery_interface@noreply.github.com<mailto:battery_interface@noreply.github.com> Cc: Liu, Yuan yuan.liu@pnnl.gov<mailto:yuan.liu@pnnl.gov>; Mention mention@noreply.github.com<mailto:mention@noreply.github.com> Subject: Re: [GMLC-1-4-2/battery_interface] Artificial Inertia - Results (#60)

@raselmahmud02https://github.com/raselmahmud02 ,

I reran the latest submitted PV device code with Artificial Inertia. It provides zero P_Service. I even created a cyclic frequency disturbance so it would have a clear over frequency event to respond to - since it can only reduce generation. Both results are attached. This seems to be because P_pre is zero. Can you please check that this is being set correctly.

@yliu250https://github.com/yliu250 , @DavidWiniarski-pnnlhttps://github.com/DavidWiniarski-pnnl , Rob had mentioned having two drive cycles for Autonomous Frequency Response - frequency droop and frequency oscillation. Do you have thoughts on that? Do we have a real frequency oscillation drive cycle? It will be important for device like PV that can only provide negative P_service (unless curtailed in their baseline case).

https://github.com/GMLC-1-4-2/battery_interface/blob/bdd2558a2b241d5c265d29cc3efc459a516a4950/src/fleets/PV/PV_Inverter_Fleet.py#L1038-L1052

[Image removed by sender. 20190313_ArtificialInertia_PV-Droop]https://user-images.githubusercontent.com/46937467/54311777-8dea6000-4592-11e9-8d79-91f9145ca0f8.png [Image removed by sender. 20190313_ArtificialInertia_PV]https://user-images.githubusercontent.com/46937467/54311781-904cba00-4592-11e9-96e4-be886d654865.png

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/GMLC-1-4-2/battery_interface/issues/60#issuecomment-472592178, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AYKNH95jOY03jVObC-ehxYprYDUfp8abks5vWV9hgaJpZM4bkQzu.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/GMLC-1-4-2/battery_interface/issues/60#issuecomment-472633364, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AqjfXez_156SBoGsM3Wk5mVtoJmdyBCJks5vWX1-gaJpZM4bkQzu.

yliu250 commented 5 years ago

@raselmahmud02 , @afernandezcanosa , @rkadavil , @hayden-reeve

Hi All,

The below are integration test results of artificial inertia service with electric vehicle, electroyzer, and PV inverter. Please review them and let me know if they are correct.

AI & EV: over-frequency 20190524_ArtificialInertia_ElectricVehicle

AI & EV: under-frequency 20190524_ArtificialInertia_ElectricVehicle

AI & Eletroyzer: over-frequency 20190524_ArtificialInertia_Electrolyzer

AI & Electroyzer: under-frequency 20190524_ArtificialInertia_Electrolyzer

AI & PV: over-frequency 20190528_ArtificialInertia_PV

AI & PV: under-frequency 20190528_ArtificialInertia_PV

afernandezcanosa commented 5 years ago

@yliu250 Thanks for posting the results! The results for EVs look fine to me, but I was wondering if you plan to run requests starting at 16:00 instead of 11:00. The availability of the fleet around noon is very low, so it would be very illustrative to show responses at 16:00 or 17:00 where most of the vehicles are parked at home.

Let me know what do you think. Thanks!