0% found this document useful (0 votes)
64 views8 pages

Project Plan

The document outlines a project plan for optimizing power distribution using machine learning. It proposes using a hybrid Waterfall + Agile methodology with Gitlab for version control and tracking progress. Key tasks are divided among frontend, backend, and machine learning development. Milestones include adding user interfaces, improving data visualization, developing a convolutional neural network model in PyTorch, and achieving 80% accuracy on a test data set. Risks and mitigation strategies are also to be considered for each task.

Uploaded by

api-532121045
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views8 pages

Project Plan

The document outlines a project plan for optimizing power distribution using machine learning. It proposes using a hybrid Waterfall + Agile methodology with Gitlab for version control and tracking progress. Key tasks are divided among frontend, backend, and machine learning development. Milestones include adding user interfaces, improving data visualization, developing a convolutional neural network model in PyTorch, and achieving 80% accuracy on a test data set. Risks and mitigation strategies are also to be considered for each task.

Uploaded by

api-532121045
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

2 Project Plan

2.1 PROJECT MANAGEMENT/TRACKING PROCEDURES


Which of agile, waterfall or waterfall+agile project management style are you adopting. Justify it with
respect to the project goals.

We will use Waterfall + Agile project management style, because the overhead for Agile is too much for the
scale of this project. We will implement agile methodologies into our project without having all of the
overhead for the agile process. The project deliverable is code, so using agile for code development will
prove useful for developing bug-free, concise code, that can be prototyped early and often.

What will your group use to track progress throughout the course of this and the next semester. This could
include Git, Github, Trello, Slack or any other tools helpful in project management.

Gitlab will be used since its issues feature is extremely similar to trello and other progress tracking software
and the team is already using it to host our project so it allows us to reduce the amount of apps we are
using. We will also be using Google Colab for machine learning algorithm development. Once milestones
are met on Google Colab, they will be pushed to the Gitlab repository. We are using Discord for day-to-day
communications and progress monitoring.

2.2 TASK DECOMPOSITION


In order to solve the problem at hand, it helps to decompose it into multiple tasks and subtasks and to
understand interdependence among tasks. This step might be useful even if you adopt agile methodology. If
you are agile, you can also provide a linear progression of completed requirements aligned with your sprints
for the entire project.

Frontend:

● Add algorithm selection to the main page


● Add Map-based power grid display
● Update UI to be more user friendly
● Update output page to display data in a more readable format
● Add voltage information of nodes to grid display page
● Add user registration and store them in the database
● Increase readability for future teams

Backend:

● Fix issues related to PostgreSQL connection


○ Allow for easy connection for any stored data
○ The ability to store user information
● Increase readability for future teams
○ Update comments/refactor code to make current work clearer

Machine Learning:

● ML: New machine learning algorithm with a higher test set accuracy
○ Research control mechanisms
○ Develop a convolutional neural network in PyTorch
○ Train convolutional neural network
○ 80% accuracy on test set is a good target
● ML: Ensure new deep learning model is not overfitting or underfitting the data
○ Simplify or add layers to neural net as needed based on test set accuracy vs. training set
accuracy
● ML: Segment data into training set, test set, and dev set
○ Understand control mechanisms in order to decide how to segment this data

2.3 PROJECT PROPOSED MILESTONES, METRICS, AND EVALUATION CRITERIA


What are some key milestones in your proposed project? It may be helpful to develop these milestones for
each task and subtask from 2.2. How do you measure progress on a given task? These metrics, preferably
quantifiable, should be developed for each task. The milestones should be stated in terms of these metrics:
Machine learning algorithm XYZ will classify with 80% accuracy; the pattern recognition logic on FPGA will
recognize a pattern every 1 ms (at 1K patterns/sec throughput). ML accuracy target might go up to 90% from
80%.

In an agile development process, these milestones can be refined with successive iterations/sprints (perhaps
a subset of your requirements applicable to those sprints).

Frontend:

● Add algorithm selection to the main page


○ Main page will display a drop-down list of algorithms to choose from. Selecting an
algorithm will run the simulation with the selected algorithm
● Add Map-based power grid display
○ New page will be added for map-based power grid display. The display will overlay on a
virtual representation of the selected grid area and will include relevant information such
as street names and city names.
● Update UI to be more user friendly
○ The general user interface will be updated to be more clear and understandable
● Update output page to display data in a more readable format
○ The output page will display the data from the backend in a much clearer view
● Add voltage information of nodes to grid display page
○ The current grid display page will be updated so that when a user clicks on a node, voltage
information for that node will be displayed above the node
● Add user registration and store them in the database
○ A user registration page will be added where new users may set up a profile page so that
their data can be saved upon login. This will be implemented on the backend as well.
Information stored will include name, email, password, and last session data
● Increase readability for future teams
○ Add good comments to code
○ Update the README to explain more of the structure, functionality, and why certain
decisions were made
○ Include more comments to commits to show why decisions were made

Backend:

● Fix issues related to PostgreSQL


○ Backend should be able to easily fetch and update data that is currently on the server.
○ The data fetched should also be quickly transferred to wherever it is needed on the
frontend
● Increase readability for future teams
○ Documentation and comments on the apis
○ Increase the amount of helper functions in the api to make code more readable
○ Rename variables to properly show what they represent

Machine Learning:

● New machine learning algorithm with a higher test set accuracy


○ Research control mechanisms.
■ Read all of the documentation provided by our faculty advisor regarding control
systems and power delivery optimization.
○ Develop a convolutional neural network in PyTorch.
■ Develop a strong understanding of PyTorch.
■ Develop a simple convolutional neural network
■ Train the simple convolutional neural network to perform task of optimization
■ Observe the performance of the simple convolutional neural network on
controlling the grid.
■ Add more algorithmic complexity to the simple convolutional neural network as
needed. There will be an optimum complexity for the neural net that results in the
best performance for the optimization of power distribution.
○ Train convolutional neural network
■ Use Google Colab GPU to train the simple convolutional neural network for a
certain number of epochs. Number of epochs is to be determined. If the model is
underfitting the data, we will add epochs and if the model is overfitting the data,
we will remove epochs of training and will engage in early stopping of the training.
○ 80% accuracy on test set is a good target
● Ensure new deep learning model is not overfitting or underfitting the data
○ Simplify or add layers to neural net as needed based on test set accuracy vs. training set
accuracy
■ We will observe the performance of each model and decide whether to add layers
or remove layers from the neural net. When we achieve an 80% test set accuracy,
we will consider our deep learning model to be of acceptable performance. If we
can get better results than 80% test set accuracy and less than 90% test set
accuracy, we will consider our deep learning model to be of great performance.
Above 90% accuracy for the test set will be considered outstanding performance.
● Segment data into training set, test set, and dev set
○ Understand control mechanisms in order to decide how to segment this data
■ Data is sequential, so there is only one set of sequential data. Data shows the real
and reactive powers for 3 feeders for every hour during a calendar year. Segmenting
data may not be the optimum approach to this problem. Further research is
needed into the control systems area of this project. We may decide to segment the
data into 12 month trials that can then be used as the testing, training, and dev
sets.

2.4 PROJECT TIMELINE/SCHEDULE


• A realistic, well-planned schedule is an essential component of every well-planned project

• Most scheduling errors occur as the result of either not properly identifying all of the necessary activities
(tasks and/or subtasks) or not properly estimating the amount of effort required to correctly complete the
activity • A detailed schedule is needed as a part of the plan: – Start with a Gantt chart showing the tasks
(that you developed in 2.2) and associated subtasks versus the proposed project calendar. The Gantt chart
shall be referenced and summarized in the text. – Annotate the Gantt chart with when each project
deliverable will be deliver• Project schedule/Gantt chart can be adapted to Agile or Waterfall development
model. For agile, a sprint schedule with specific technical milestones/requirements/targets will work.
2.5 RISKS AND RISK MANAGEMENT/MITIGATION
Consider for each task what risks exist (certain performance target may not be met; certain tool may not
work as expected) and assign an educated guess of probability for that risk. For any risk factor with a
probability exceeding 0.5, develop a risk mitigation plan. Can you eliminate that task and add another task
or set of tasks that might cost more? Can you buy something off-the-shelf from the market to achieve that
functionality? Can you try an alternative tool, technology, algorithm, or board?

Agile project can associate risks and risk mitigation with each sprint.

● Our team is learning several new technologies including ReactJS, PyTorch, PostgreSQL and the
learning curve could slow development down in the beginning. This will be mitigated by taking
online tutorials and practicing with these environments before project development begins
● As all our work will be done virtually, including using Virtual Machines, any trouble connecting to
the ISU network or the VM’s could slow down progress. This will be mitigated as best possible by
constantly pushing our work so our workspace is always up to date, and letting others know of
connectivity issues.
● Previous team had issues integrating PostgreSQL into the backend. If that issue is still unresolved
we may need to look into using a different database tool.

2.6 PERSONNEL EFFORT REQUIREMENTS


Include a detailed estimate in the form of a table accompanied by a textual reference and explanation. This
estimate shall be done on a task-by-task basis and should be the projected effort in total number of
person-hours required to perform the task.

Frontend

Task Explanation Person-Hours

30
Add algorithm selection to the Update main page to display a drop-down list of
main page algorithms to choose from. Selecting an
algorithm will run the simulation with the
selected algorithm

Add Map-based power grid New page will be added for map-based power 50
display grid display. The display will overlay on a virtual
representation of the selected grid area and will
include relevant information such as street
names and city names.

Update UI to be more user The general user interface will be updated to be 20


friendly more clear and understandable for users

Update output page to display The output page will display the data from the 25
data in a more readable format backend in a much clearer view

Add voltage information of nodes The current grid display page will be updated so 60
to grid display page that when a user clicks on a node, voltage
information for that node will be displayed
above the node
Add user registration and store A user registration page will be added where 30
them in the database new users may set up a profile page so that
their data can be saved upon login. This will be
implemented on the backend as well.
Information stored will include name, email,
password, and last session data

10
Increase readability for future Add good comments to code. Update the
teams README to explain more of the structure,
functionality, and why certain decisions were
made. Include more comments to commits to
show why decisions were made

Backend

Task Explanation Person-Hours

65
Fix issues related to PostgreSQL Backend should be able to easily fetch and
connection update data that is currently on the server.The
data fetched should also be quickly transferred
to wherever it is needed on the frontend.
Person hours on this task will also have to be
spent on researching PostgreSQL and how it
connects to Django.

85
Increase readability for future Documentation and comments on the apis.
teams Increase the amount of helper functions in the
api to make code more readable. Rename
variables to properly show what they
represent. This time is variable depending on
how the machine learning team rewrites the
algorithms necessary for the ML api to work.

Machine Learning

Task Explanation Person-Hours


New Machine Learning Implement a deep learning convolutional 70
Algorithm with a higher test set neural network to control the power
accuracy distribution system by finding the optimal
step positions for the voltage regulators and
optimal toggling of the shunt capacitor
banks on and off. 80% is considered
acceptable test set accuracy. 80-90% is
considered great. Over 90% is considered
outstanding.

In order to find the optimum complexity for 60


Ensure new deep learning model the deep convolutional neural network, we
is not overfitting or underfitting will need to observe the training set accuracy
the data vs. the testing set accuracy and adjust the
number of epochs the model is trained and
adjust the number of layers in the model as
needed.

Segment data into different sets We will need to segment the data into a 20
training set, tests set, and development sets.
This will allow us to better organize our data
to efficiently train our algorithm

2.7 OTHER RESOURCE REQUIREMENTS


Identify the other resources aside from financial (such as parts and materials) required to complete the
project.

● PowerCyber workbench and virtual machines provided by client / advisor Dr. Ravikumar
● Google Cloud platform
● Real time data for the ML algorithms
● Documentation provided by sdmay21-24 and Dr. Ravikumar

You might also like