Model-based Control of Small-scale Surface Vessel
Model-based Control of Small-scale Surface Vessel
A CDIO project for the course TSRT10 2021

Learn more about this project!

Project promotional video

See the vessel in action and get familiar with the features of the system.

RESULTS

The project results are presented below.

  • Model
  • The previously developed boat model has three degrees of freedom. Apart from the states and inputs it has a number of unknown, time-static, parameters. The model is implemented in MATLAB as a nlgrey-object and the unknown parameters are estimated using nlgreyest .
  • The states of the model are shown below. The signals that can be used to control the real boat are the model's input signals.

  • The purpose of the model is to be able to predict the vessels movement for a given time horizon. Therefore, the performance is validated by comparing the model's predicted values of the states with the measured states, see the plot below for predicted vs measured position:
  • Controllers
  • The implemented controllers both follow a predefined reference path and the objective is to make the vessel follow both position and heading as closely as possible.
  • The MPC (Model Predictive Control) uses a linearized approximation of the previously developed model. The model uses errors relative to the reference as states. The model is used to predict the movement of the vessel and a quadratic programming optimization problem is solved find the best control-signal for the vessel.

    As seen in the figure above, there is still performance to extract. This can be achieved by fine tuning the parameters of the algorithm. It is also possible to extend the model to include limitations or weights on the rate of change of the control-signals.

  • The SFC (State Feedback Controller) is sufficiently compliant with the given reference. It is derived from a single-track bicycle model and operates with continuous rpm on the azimuth thrusters. Only the angles of the thrusters are controlled.
  • GUI
  • The graphical user interface can specify waypoints for a desired route, designate and fine tune a controller and track the vessel in real time.
  • It is built in Matlab and communicates with the vessel via ROS.
  • Path planning
  • The user specifies waypoints through the GUI. The system then interpolates using a spline function.
  • See the image below for a demonstration of the interpolation functionality

  • The waypoints contains information regarding position, heading and speed, the interpolated path is then utilized as a reference by the vessel.

OUR DOCUMENTATION

Below you will find all documents created in this project.
Note that most of them are written in Swedish.

THE TEAM

This is the group of people behind the project

Oscar Hermansson

Oscar Hermansson

Documentation

Oskar Jonsson

Oskar Jonsson

Hardware

Jonatan Siönäs

Jonatan Siönäs

Design

Axel Ståhlbom

Axel Ståhlbom

Software

Johannes Wenngren

Johannes Wenngren

Project manager

Tim Wiik

Tim Wiik

Testing

PHOTO GALLERY

Below you will find a selections of interesting photos taken during the project.

Boat on shore
Computer
In the water
Ready for test
Warming fire
The boat
People
People
×