System Identification Explained: White-Box, Gray-Box and Black-Box Models
Erlend Coates
0:00 / 0:00
System Identification Explained: White-Box, Gray-Box and Black-Box Models
58 просмотров · 13 дн. назад
Erlend Coates
18 подписчиков
58 просмотров · 13 дн. назад
System identification: how to find a model of a vehicle from measured data. We compare white-box, gray-box and black-box models on the Otter USV, a small uncrewed surface vessel.
▶ Next: Part 2 – ARX Models and the Equation Error Method: • System Identification Explained: ARX Model...
📺 Series on system identification: • System Identification Explained: ARX Model...
📺 Full series on autonomous systems: • Autonomous Systems
Autopilots, state estimators and simulators all use mathematical models of the vehicle. But where does the model come from? In this first part, we look at:
• the vessel as a box: thrust goes in, surge velocity and heading come out
• white-box models: physics alone, with the mass, the added mass and the drag
• black-box models: data alone, here a small neural network
• gray-box (grey box) models: physics gives the structure, data gives the parameters
• an experiment: the Otter at several thrust settings, and the surge velocity each run settles at
• least squares: the sum of squared errors, and its solution in one line of Python
• a test far outside the data: which model holds the Otter near its top speed?
Chapters:
0:00 Models, and where they come from
0:21 The vessel as a box
0:37 White box: physics alone
0:55 Black box: data alone
1:10 Gray box: physics and data
1:21 The experiment: thrust and surge velocity
1:48 The white-box and black-box fits
2:05 The gray box: a linear and a quadratic drag term
2:19 Least squares
2:38 The code
2:50 The test: near top speed
3:20 Summary
Notation (Fossen, 2021):
u: the surge velocity, τ: the thrust in surge
m: the mass, X_u̇: the added mass
X_u, X_|u|u: the linear and the quadratic damping
Newton's second law in surge:
(m − X_u̇) u̇ − X_u u − X_|u|u |u|u = τ
Steady state (u̇ = 0):
τ = −X_u u − X_|u|u |u|u
White box (from handbook coefficients):
X_|u|u = −½ ρ C_D A
Least squares:
J = Σᵢ (τᵢ − τ̂ᵢ)²
θ = [X_u, X_|u|u]ᵀ
φᵢ = [−uᵢ, −|uᵢ|uᵢ]ᵀ
Φ = [φ₁, …, φₙ]ᵀ
θ̂ = (ΦᵀΦ)⁻¹ Φᵀ τ
Simulated and rendered with threepp, a C++ port of three.js with Python bindings: https://github.com/markaren/threepp
Reference: T. I. Fossen, Handbook of Marine Craft Hydrodynamics and Motion Control, 2nd ed., Wiley, 2021.
#SystemIdentification #ControlEngineering #MarineRobotics