"Britons warned to prepare for power blackouts in coronavirus lockdown" is a headline we came across recently. Upon reading the article that followed, we realised that the electricity demand is at its peak due to people being at homes all day and the approaching summer. As our team's interest lies in renewable energy systems, we thought of an idea to maximise power generation from existing systems such as tidal lagoons.
What it does
A tidal lagoon has key components such as a sluice gate (to allow for water to enter), a turbine and a generator. Currently, predicted tidal heights are far from what what they are observed on the day. The total observed height on any given day is a sum of the predicted tide and a residual term, also called a surge tide. This residual term is a value that is brought about due to weather changes, winds, the moon's position etc. and is hard to predict. However, this term causes a change in observed water levels and leads to loss in power (value in terms of Mega Watts) that could have been generated.
To solve this, at a time when power output is needed the most due to lockdown, we attempt at predicting the total observed height by trying to predict the residual term. Essentially, this would help generate more power than is currently able.
We have used Machine learning to solve this problem.
Our predictor predicts the total observed height on the day with 93.59% accuracy, hence maximising power output.
How we built it
We built it using python. A 7 step process was used. 1) Data collection: We downloaded this dataset from the British Oceanographic Data Centre website for a site named "Newport". The data contains values from 2015-2019 at 15-minute intervals. 2) Data preparation and visualization: Performed by cleaning the data and creating probability density plots and pairplots. 3) Model Selection: Upon evaluation, random forest turned out to be the best combination of accurate and fast. 4) Model Training: Did a 80:20 Train:test split and trained our random forest model on the training data. Then used this model to predict values based on test data inputs. 5) Evaluation: Compared the accuracy of the predicted values to the actual values. 6) Parameter tuning: Tuned parameters such as "n_Estimators" which is the number of decision trees the model would use. Found an optimum number to be 128. 7) Accuracy: Accuracy is 93.59% and Mean Absolute Error (MAE) is only 0.23 degrees.
Challenges we ran into
Certain challenges we ran into included collecting and preparing the dataset. Alongside, figuring out the correct model took time and effort as each model would take minutes to run.
Accomplishments that we're proud of
We are proud that we were able to increase the accuracy of our model from 42% to 93.59%.
What we learned
We learned and applied lots of Machine learning!
What's next for Tidal Predictions
Looking at fine-tuning parameters to further increase accuracy and make the program run quicker. We also wish to develop an app/website that could provide a close-to-actual prediction for anybody who is seeking to know tidal heights eg. fishermen.
Try It out