Skip to content

Chungman Kim's NoteBook

Hayden Cook edited this page May 7, 2026 · 1 revision

Week 14

Thanks giving week


Week 13

Final Presentation

Final PPT


Week 12

[x] Using docker for NIX Try to run Nix on the docker container but continuing having a problem. c++: fatal error: Killed signal terminated program cc1plus according to the community GitHub This is normal due to c compiler has insufficient memory. I relocated docker memory limit upto 8GB and set the make -j 1 flag so that no more parallel jobs overloading. However, it kept giving same error. My Mac only have 8GB so I think I don't have much solution other than changing the laptop...?

[x] Designed Simple Distribution Substation

This diagram represents a simple distribution substation modeled for co-simulation with GridLAB-D and basic protection & control logic. • The left side (GridModel) is the upstream grid model (transmission or higher-level distribution), implemented in GridLAB-D. • The middle is the substation, split into: • a power transformer bay (PT bay) with its protection and bay controller, and • a feeder bay (F1) with feeder protection and bay controller. • The right side shows the substation controller (RTU) and the control center (Master Station). • Solid arrows (-->) represent power flow / primary circuit. • Dashed arrows (-. ->) represent measurement, status, or control signals.

image image image image image image image image

Week 11

[x] Debugging for Nix Continuing figure out the problem of NIX with my M2 MacBooK. Look like I can able to install HELICS but the Gridlab-d. Also, Kaden's DNP is not correctly working on my NIX develop environment. Reinstalled and reset up multiple times but not able to make any progress. Screenshot 2025-10-23 at 4 15 07 PM <img width="1660" height="1101" alt="Screenshot 2025-10-24 at 3 07 22 PM" src="https://github Screenshot 2025-10-24 at 3 11 31 PM .com/user-attachments/assets/0661cf2d-35b3-4c86-a414-446c8c0990bb" />

During the Friday's meeting, Kaden attempted to create Docker for nix.


Week 10

After updated to MacOS26, Nix gave me another problem. Nix is currently installed but not running on the terminal. Screenshot 2025-10-21 at 12 32 29 PM

I completely remove nix on my laptop and reinstalled.

Screenshot 2025-10-21 at 12 36 30 PM Screenshot 2025-10-21 at 12 39 52 PM

After successful nix reinstallation, I followed new DNP3 guidelines WIKI

  • having lots of error while make all-install
  • got 3 log while running example.sh but giving error.
image image
  • Kaden will look over on Thursday

Week 9

  • image
  • we found this is useful for the simple substation.

  • Screenshot 2025-10-16 at 5 01 29 PM

power transformer

  • Screenshot 2025-10-16 at 5 01 37 PM

disconnecting switch

  • Screenshot 2025-10-16 at 5 01 41 PM

Circuit breaker

  • Screenshot 2025-10-16 at 5 01 51 PM

air break switch ?

  • Screenshot 2025-10-16 at 5 02 03 PM

power line


Week 8

During the meeting on Friday, Maria and Arya will concentrate on the DNP3 side, while I’ll focus on setting up the simple substation setup and utilizing GridLabD.

However, I have three midterms coming up this week, so I believe I need to prioritize studying.


Week 7

Mid Presentation

Screenshot 2025-10-16 at 4 15 53 PM

Week 6

  • task [x] : Midterm paper
Screenshot 2025-10-01 at 2 00 11 PM Screenshot 2025-10-01 at 2 00 16 PM

Week 5

This week

  • Researched about PMU (phasor measurement unit)

AC, frequency, and synchronization

Why does frequency exist?

  • Traditional generators have a rotor (magnet/electromagnet) spinning inside a stator coil.
  • As N/S poles sweep past the coils, magnetic flux changes periodically, inducing AC voltage (Faraday’s law).
  • The number of oscillations per second is frequency (US: 60 Hz, Europe: 50 Hz).

Frequency = a shared clock

  • All grid resources must operate at the same frequency to remain synchronized.
  • Supply–demand imbalance nudges generator speed → frequency deviates (key real-time signal).
  • Relation to phase angle: $$f = \frac{1}{2\pi} \frac{d\theta}{dt}$$
  • Frequency is “how fast the phase angle changes.”

Phasors and voltage angle (θ)

What’s a phasor?

  • Think of a 60 Hz AC voltage as a spinning arrow.
  • The arrow’s length = how strong the voltage is (RMS size).
  • The arrow’s direction (how far it’s turned) = the voltage angle (θ).
  • Instead of drawing the full wavy sine curve in time, we just keep this one arrow
  • Why do this? Because one arrow is much easier to compare and calculate with than a whole wavy line.

What does voltage angle (θ) mean?

  • It tells you how “early” or “late” that spinning arrow is compared to a reference.
  • Example: 120 V ∠ −10° means “same 120 V strength, but it’s 10 degrees behind the reference.”

Angle difference

  • What operators actually watch is the difference between two places: δ = θ₁ − θ₂
  • Bigger δ → more active power tends to flow along the line between those places.
  • If δ ≈ 0° (and the line is mostly inductive, voltages similar), very little active power flows.

How do we measure angles at different substations fairly?

-We must compare the same instant in time. -PMUs use GPS/PTP so clocks are synced; then we can compare arrows directly.

Why larger δ ⇒ larger active power P

  • Larger angle separation → larger voltage vector difference → more current → bigger in-phase component → larger P.

Possible project suggestion for device team?

  • Deploy PMUs at transmission substations to collect synchronized phasor data, then use corridor angle-difference, frequency, and residual-based checks to detect anomalies and isolate the bad measurement channel.

Week 4

What I did this week

  • set up the Co-simulation again
Screenshot 2025-09-18 at 2 32 05 PM
  • Used Docker to run the official GridLAB-D image (gridlabd/master).
  • Cloned the PNNL Taxonomy Feeders repository (standard U.S. distribution feeder models).
  • Selected R1-12.47-1.glm as a test case.

STEP for run gradLAB-D in docker

  • Install Docker Desktop for Mac and sign in (docker login). In terminal type docker pull gridlabd/master docker run --platform linux/amd64 -it --rm gridlabd/master gridlabd --version | Using --platform linux/amd64 silences the Apple-Silicon warning.

  • Go to whatever your cosimulation folder in mine cd /Users/chungmankim/Documents/GitHub/cps-cosimulation-env

  • from there clone the feeder from git git clone https://github.com/gridlab-d/Taxonomy_Feeders.git

  • move into the Taxonomy_Feeders folder that you just cloned it

  • Pick a feeder (we’ll use R1-12.47-1.glm as an example).

  • now mount this feeder to docker docker run --platform linux/amd64 -it --rm \ -v "$PWD:/models" -w /models \ gridlabd/master gridlabd R1-12.47-1.glm

Screenshot 2025-09-18 at 3 26 10 PM Screenshot 2025-09-18 at 3 26 01 PM

2025 FALL Week 3

At class Meeting

  • Had Kickoff presentation link

SubTeam Meeting

Device sub team set up 3 tasks for this week

  • Inventory out current Device model : For me
  • Find basic / broad outline of Substation architecture : All of our sub team
  • Current research in industrial systems and network security : All of our sub team secure protocols

Task Board Link

Task

Inventory

Outline of Substation Architecture

Type of Substations

Substation serve at least one of the following purpose

  1. Increase the voltage produced by Power generation, using step up transformer
  2. Interconnection of different power grids
  3. Reducing Voltage
  4. Coverting AC to DC

Example of Substation

1. Transmission Substation link
image
2. Distribution Substation link
image
  1. Collector Substation
  2. Converter Substations
  3. Switching Station

Week 13

TASK

  • Final paper

During Team Meeting

  • Device team will take introduction of final paper

During Class meeting

  • DID final presentation.

Final Paper

Screenshot 2025-04-21 at 2 25 08 PM Screenshot 2025-04-21 at 2 25 17 PM

Screenshot 2025-04-21 at 2 24 32 PM

Screenshot 2025-04-21 at 2 22 48 PM


Week 12

TASK

  • Final presentation
  • API diagram
  • Final paper

During Team Meeting

  • Device team will take introduction
  • I will make a diagram for API using draw.io

During Class meeting

  • Maria and I talked about API. Since Maria researched and made a document for API , I will make a diagram for final ppt.

Technical Note Final Presentation

  1. Master Station Role: Central controller/supervisory system. Communication: Receives measurements (INPUTs) from outstations and sends commands (OUTPUTs) to them over DNP3.

  2. Outstation Role: A field device or gateway that interfaces with actual equipment (e.g., switchgear, circuit breakers, sensors). Communication: Sends measured data up to the master station (INPUT) and receives commands from the master (OUTPUT).

  3. DNP3 Protocol Role: Main industrial protocol used for real-time, event-driven communication between the Master Station and field devices (Outstations). INPUT vs. OUTPUT: In DNP3 terminology, “INPUT” means the field device is sending data to the master (e.g., measured values, statuses). “OUTPUT” means the master is sending control commands to the device (e.g., open, close, setpoint changes).

  4. IPC Protocol Role: Internal communication channel for configuration or non‑time‑critical data. For example, configuration updates or advanced diagnostics that do not require the guaranteed reliability or timing of DNP3.

Screenshot 2025-04-14 at 3 45 50 PM Screenshot 2025-04-14 at 3 46 53 PM


Week 11

TASK

  • Learning DNP3 database structures

During Team Meeting

  • I will keep research and learn about DNP3 data structures.

During Class meeting

  • Sam gave us a lecture on the INPUT and OUTPUT of DNP3 structures. I understood that the INPUT is a signal from devices to the SCADA, and the OUTPUT is a command from the SCADA to the devices.

Technical Note

I have not done anything due to upcoming midterms but I will make diagram from the Device API that Maria already made.

According to Kaden's explanation, each outstation in a DNP3 system maintains a database which stores device data like voltage or current. This data is organized into points.

Components of Points

  1. index : identification
  2. value : measurement (e.g. 120volts)
  3. type : group
  4. variation : input, output , bits
  5. class: priorities

The Master nations sends periodic polls to request data by class. Higher the class -> frequent update.


Week 10

TASK

  • Learning DNP3 data structure

During Team Meeting Since Kaden shared the link to the documentation, Maria and I will begin reading it.

During Class meeting

  • We’ve already implemented devices in the substation. Kaden suggested we begin integrating the DNP3 protocol into our substation. Our networking team is currently working on DNP3, while our device team will develop an API to integrate with DNP3. Based on Kaden’s research, we need to gather all information (data types, priorities, input/output) about each device.

Technical Note

Read through the document for DNP protocol from DataBase DNP3 Protocol Primer


Week 09

Spring break


Week 08

TASK

  • Push our branch repo
  • Read DNP3 document

During Team Meeting

  • Since we have spring break next week, we skipped the meeting.

During Class meeting

  • Kaden shared a document with us, and I’ll begin reviewing it now.

Technical Note

Maria and I finished all devices in the substation. Now, we will collaborate with Networking team and try to implement device API for the DNP3.

We will gather some more information at Device API

We will sort out what kind of information should be transferred in-between devices or through the network.


Week 07

TASK

  • Intrim presentation

During Team Meeting

  • Device team will do Introduction of ppt.

Interim Presentation

Our device modeling team is on the track and almost finished modeling. Screenshot 2025-04-10 at 3 56 53 PM Screenshot 2025-04-10 at 3 58 28 PM Screenshot 2025-04-10 at 3 58 53 PM Screenshot 2025-04-10 at 3 59 02 PM


Week 06

TASK

  • Mid-term Paper

Technical Note

This week is for mid research paper due. So I focused on writing this.

Last semester, we implemented a transformer device within the process level station. During that time, we did not identify the voltage and current transformation but instead made a brief idea that the transformer changes the voltage up and down. However, in further study this semester, we discovered a significant difference between voltage transformers and current transformers. Therefore, we decided to divide these two transformers into a child class of 'transformer.py' so that we can select the appropriate transformer at the appropriate time.

There are several types of transformers, but we can categorize them into two main groups: voltage transformers and current transformers. Voltage transformers are the most common type of transformer, as they convert voltage levels. They are primarily used to transform voltage from the power generation source (such as thermal, nuclear, hydraulic, or wind energy) to substations and then distribute it to end users (businesses and individuals). The primary reason for using voltage transformers is to reduce energy waste. Over long distances from the power source to the end user, energy is likely to be lost during transmission. Therefore, it is more efficient to increase the voltage to send more energy while minimizing losses. On the other hand, at the distribution point, we need to maintain the correct voltage level to ensure that the end user can use the energy safely. This is why voltage transformers are essential.

We didn’t research the current transformer last semester, and We are interested in delving deeper into its mechanism. We’ll likely discuss the research we conducted in the next section.

Unlike a voltage transformer, a current transformer(CT) reduces the primary current in high-current equipment to a much lower, standardized secondary current (5A or 1A). This serves two primary purposes: accurate measurement for metering and reliable input for protection relay. Directly measuring the high currents found in substations would overload most devices, so the CT's magnetic coupling safely steps down the current and provides isolation from unsafely high voltages.

Just like Voltage transformer, CT also relies on the electromagnetic induction. the primary conductor passes through magnetic core, creating a magnetic field. The secondary winding, wrapped around the same core, picks up this magnetic field and carries a reduced current as determined by the ratio of turns between the primary and secondary.

\begin{figure}[ht] \centering \includegraphics[width=1\linewidth]{single.png} \caption{Mechanism of CTs} \label{fig:sensorDeviceParent} \end{figure}

The ratio of primary winding and secondary winding convert primary current inversely proportional to the secondary current. $$ Current_{secondary} = Current_{primary}*\frac{Ratio_{primary}}{Ratio_{Secondary}} $$

In most cases, a CT has a fixed ratio (like 600/5), but multi-ratio CTs also exist and allow selection of different ratios through secondary taps. This flexibility lets operators match the CT to varying current ranges without replacing the entire unit. However because a CT's produces high voltage if left open-circuited under load, it must always be connected to a proper 'SHORT' to ensure safe operation.

\begin{figure}[ht] \centering \includegraphics[width=1\linewidth]{Multi.png} \caption{Multi-ratio CTs} \label{fig:sensorDeviceParent} \end{figure}

For multi-ratio CTs, a single secondary winding with multiple tap points is used. By selecting which tap operator connects to the secondary terminals, the current ratio can be switched.


Week 05

TASK

  • Keep implementing Current Transformer

During Team Meeting

  • We don't have much thing to share to other teams but keep working on the current task.

During Class meeting

  • Maria and I talked about transformer and its Sensor because both devices are closely interacting each other.

Technical Note

Current Transformers (CTs) operate similarly to Voltage Transformers (VTs) based on the principle of magnetic field induction. Inducing a primary current into the core generates a secondary current that is induced in the primary winding and then transmitted to the secondary winding. Unlike VTs, CTs are designed to provide a small current to other measurement devices and have a fixed current value. Consequently, they do not require a tap changer for adjustment. However, I have discovered the existence of multi-ratio CTs, which operate similarly to tap changers. Notably, this multi-ratio mechanism is integrated into the CT, and the entire CT must be shut down before changing the ratio of the CTs. While the precise purpose of this feature remains unclear, I intend to conduct further research to gain a deeper understanding of its functionality. To alter the ratio in multi-ratio CTs, the operator must first deactivate the transformer. Subsequently, either shorting the screw or joining the screw to the shorting bar can be performed to manually adjust the ratio. Multi single


Week 04

TASK

  • Start deeper research about Transformers

Technical Note

We have two type of transformer.

  1. Voltage
  2. Current

Since last semester's research was purely about voltage (general) transformer, I will focus on current transformers (CTs).

We know there is tap changer in voltage transformer to change the ratio during operation. However, while I researched about CTs, there is no such thing tap changer in CTs. I wonder there should be similar one that work as tap changer in CTs.


Week 03

Jan 24 2025

TASK

  • Kickoff presentation

Note

This week, we concluded our kickoff presentation. Our goal for the device sub-team is to complete at least five substation devices by the end of this semester. I will continue with the transformer sub-devices, as I completed the transfer device last semester. We will initiate research on these devices and discuss them in our class meetings.


Week 14

NOVEMBER 14 - NOVEMBER 20

Working on Final presentation


Week 13

NOVEMBER 07 - NOVEMBER 13

Made Class diagram Screenshot 2024-11-20 at 9 39 08 AM -We have made minor changes to the communication networking implementation. Instead of implementing for DNP3, Modbus, and IEC protocols, we will now hardcode DNP3 as the hierarchical outstation protocol.


Week 12

OCTORBER 31 - NOVEMBER 06

-nothing much done due to midterms.


Week 11

OCTORBER 24 - OCTORBER 30

Implemented tap's turning ratio in transformer_device. The tap regulate the secondary voltage depending on Tap position/ which is turning ratio Screenshot 2024-11-20 at 9 25 56 AM Screenshot 2024-11-20 at 9 26 10 AM


Week 10

OCTORBER 17 - OCTORBER 23

  • Main focus and Task: 3-5 devices within a substation that we want to model. Include API for functionality we want each device to perform

NOTE FOR DEVICE MOEDEL

  • Since we do not have concrete models for substation. We start developing device models. We need to narrow down further in Thursday meeting however now we have
  1. Transformers
  2. Circuit breakers
  3. Busbars
  4. Disconnectors
  5. Protective Relays
  6. Capacitor banks and reactors
  7. Transmission Lines
  8. CTs and Pts
  9. SCADA

Week 09

OCTORBER 10 - OCTORBER 16

Fall Break

Week 08

OCTORBER 02 - OCTORBER 09

This week we have Mid-Term Progress Report image image image image


Week 07

SEPTEMBER 26 - OCTORBER 02

This week I mainly focus on the midterm research paper.

Screenshot 2024-10-03 at 3 42 07 PM Screenshot 2024-10-03 at 3 42 12 PM Screenshot 2024-10-03 at 3 41 47 PM Screenshot 2024-10-03 at 3 42 20 PM Screenshot 2024-10-03 at 3 42 25 PM

Week 06

SEPTEMBER 19 - SEPTEMBER 25

Here is DNP3 network model we need to design DNP3 Network model

  1. Master (SCADA)
  • Issue commands and receiving data from outstation

    1-1. Data Polling and Event Handling Model

  • master stations can poll outstations for data or respond to event-driven messages

  1. Outstation
  • Outstation devices - send data back to the master

    2-1. RTU (remote Terminal Unit)

  • a type of outstation that interfaces with sensors and transmits data such as voltage or temperature measurements to the master station.

    2-2. IED (inteligent Electronic Device)

  • IEDs are specialized devices that both control and monitor equipment like circuit breakers, offering more complex functionalities than typical outstations.

  1. Communitcation Model
  • communication between the master station and outstations (RTUs, IEDs)
  • Found git repo for DNP3 modeling

https://github.com/VOLTTRON/dnp3-python/blob/main/examples/master.py


Week 05

SEPTEMBER 19 - SEPTEMBER 25

  • I haven't made much progress on the project due to academic overload, but I will get back to working on it after this wee's tests and assignments are done.
  • My development environment isn't running properly after installing macOS Sequoia. I'll bring up the issue with the TA during Thursday's meeting
  • The Ta discovered that the new macOS update caused a crash when trying to find nix develop in zsh. The TA also suggested I use Docker due to potential memory issues on my M2 MacBook. I'll follow up on the issue and address it later.

Upcoming Task

  • Midterm paper due on October 10

Week 04

SEPTEMBER 12 - SEPTEMBER 18

Meeting Note

  • Will focus on DNP3 instead of MODBUS
  • Made 3 tasks on Trello Board
  • Network members take each task
  • Research assigned task by Thursday
  • team meeting will split into Monitor, Network, and Device modeling

Task

  • Research Substation Networking Structure
  • Study Python

Task Note

  • Studied Python

Since the primary programming language I learned was Java, I spent time learning Python.

Referring to the Python Tutorial

  • Researched about Substation Networking Structure

DNP3

Substation use DNP3 protocol to control system such as Supervisory Control and Data Acquisition (SCADA) systems

DNP3 enables communication b/t master station and substation and external devices

DNP3 has seven layers

  1. Physical Layer
  2. Data Link Layer
  3. Application Layer

image

References: openDNP3 , OpenDNP3 Code Archive

IEC 61850 Most modern substations follow the IEC 61850 standard

Here is Wiki about IEC 61850

  1. IEDs (Intelligent electronic Device): IEC61850 integrates IEDs through Ethernet-based communication.
  2. Process Bus : handles realtime data and measure from the field device such as *Voltages and Currents . This datas are transmitted to the IEDs.
  3. Station Bus : Manages communications b/t devices. Uses TCP/IP protocols to integrate w/ external systems and operators
  4. Parallel Redundancy Protocol (PRP) and High-availability Seamless Redundancy (HSR) : maintaining the substation's operation integrity (security).

Reference

Comparison to DNP3

  1. DNP3 is more commonly used for older communication system.
  2. Monitoring and Controlling -> DNP3
  3. Networking b/t device -> IEC 61850
  4. Can be hybrid
  • Next Step

Find the way to integrate DNP3 with Python


Week 03

SEPTEMBER 05 - SEPTEMBER 11

Class Meeting

  • Presented the kickoff presentation
  • Invited to the GitHub repo for our project and joined

Team meeting

  • Team discussed the installation of developing tools and environment set up (co-simulation, Helics, gridlab-d)

TASK

  • Set up developing environment via reading
  • Review the documentations on Github (especially README)
  • Start writing NOTEBOOK on GitHub wiki

Challenges

  1. Went though the installation steps in the README of the GitHub repo (co-simulation) However, not sure if the installation was successful. There were error , but seemed to complete somehow Screenshot 2024-09-09 at 10 39 13 AM

Potential Solutions : I will confirm that all necessary components are installed correctly in the next class meeting.

  1. To build gridlab-d, CMAKE installation is necessary but MacOS doesn't support raw CMAKE.

Solution : Installed CMAKE through the Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"


Week 02

AUGEST 29 - SEPTEMBER 4

Class meeting

  • During this week, we were divided into sub-teams. I chose to join the Device Modeling team.
  • Set up a sub team meeting time: every Sunday at 15:30. This will help our communication.
  • We have to present the kickoff presentation at the next class meeting. We will discuss further about this topic at upcoming sub team meeting and prepare the contents.

Team meeting

  • Brainstormed the key points to cover in the presentation.
  • Tasks were delegated to each members

TASK

  • Prepare for the kickoff presentation: Road map slide.

HERE is copy of the kickoff PPT


Week 01

AUGEST 22- AUGUEST 28

Class meeting

  • Attended the introduction meeting for the VIP project. The instructor provided an overview of the project goals and expectation for the semester.
  • Jointed the project Discord server to communicate with team member and get updated on upcoming tasks.

Next Step

  • Start familiarizing myself with the project materials (cosimulation, Helics, gridlab-d).

Active Notebooks
Archive
Tutorials

Clone this wiki locally