Projects
Here is a collection of the projects. The titles are links to more details.
Filter projects via tags
The project is supervised by academic or industrial personnel and is normally assessed by the supervisors.The project is mentored. Mentors may not be in the same problem domain but provides guidance, suggestion, support and sponsorship.
The actual project work is carried out indepedently by myself.
The actual project work is a result of team effort.
The project could be commercial in future.
The Practical Man's Sudoku Solver
2016 |
A simple brutal sodoku solver independely written in MATLAB. The solver solves the standard soduku of size 9 by 9, but also accepts 4-by-4 similar problems. Despite many other scripts already available on Internet, this attempt was original and was one of my first scripts during my undergrad when working at Cummins. The solver uses the idea of "backtracking" and is refurbished to include instruction and basic comments. Download the script as text file.
The Practical Man's Virtual Engine Test Cell
2018 - 2019 |
A software toolbox built in MATLAB that offers an virtual engine test cell for my PhD project. The target engine is a 2L 4 cylinder compression ignition engine and its model is developed and provided by FEV GmbH. The engine model also comes with its own production controller. The software toolbox has user interfaces that fulfils engine test scheduling + batch test running + test (simulation) results analytics.
MPC Prototype Toolchain - MATLAB Based
2019 - till now | | not published yet
MPC (model predictive control) is a simple & useful concept for model-based optimal control, but could be difficult to implement for beginners. For myself, I struggled building models that need to be convex so that the resulting optimal control problem may be solved reliably online. I also struggled to soolve the optimal control problem for real-time or fast simulation because a solver is needed. Many solvers are available open source, but they do not all support code generation (for example) and require tremendous effort to interface with MATLAB & Simulink native controller. Meanwhile, I also wanted flexibility in modelling and objective function definition, tools like ACADO only support a set of pre-defined objective function terms. Tools like CasADi, Yalmip, OPTI toolbox are great to test solving the problem, but not for code generation so that it could run consistently fast in a more production (real-time) capable scale.
So I decided to build my own tool with one mission: Provide fast MPC prototyping solution for beginners that supports embedded solutions with maximal real-time capability.
BaristaX
2017 - till now |
Robotized coffee solution with one mission: affordable coffee + consistent taste + 24/7 availability. Link under dev.
Collection of Optimisation Solvers
2019 - till now |
A collection of optimisation solvers template script are developed to be used by the MPC prototyping toolchain. These solvers implement existing literature with a focus of real-time applications. The solver collection solves continous problems, and include both first and second order solvers.
XDrops
2017 |
Being a team of five student + one mentor, we entered UK's top 20 teams to tackle UN's (united nations) SDGs (sustainable development goal), organised by RAE (royal academy of engineering). Our engineering solution aims to provide clean water access to rural areas in African coastal villages.
The Practical Man's Finance Toolbox
2018, 2020 |
A personal expenditure management tool for investors like my parents.
CAN Security Modelling with CSP
*CAN and CSP stands for Control Area Network and Communicating Sequential Processes respectively.
2017 |
University Team Project. The project models the CAN protocol with the CSP language - a CSP model is developed from zero. The CSP language is a functional programming languageis, and it is verified by a tool named FDR (failures-divergences refinement), developed by University of Oxford. The project then implements security attack and defence within the CSP model to verify the model and security feature of a CAN bus.
The team is made of 4 Automotive BEng undergrad students including myself. The project client is a cybersecurity research team within the university, the supervisor is an academic stuff. The project is placed here as an online version of our delivery report + product design specification.
Indoor Localisation of a Rover Robot
2017 |
An independent undergrad final year project to localise a rover robot in indoor 3D space.