1function [eta,nu] = simplifiedVesselModelSim(time,eta0,nu0,tau,nu_c,MRB,MA,Bv,Dp,G)
 2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 3% Nonlinear Unified Seakeeping and Maneuvering Model without Fluid Memory,
 4% based on Perez & Fossen 2017.
 5%
 6%
 7%MISSING: Fluid memory and Cross-Flow Drag and Surge Resistance
 8%
 9% Author: Markus Fossdal 2018.
10%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11
12
13
14if time == 20
15%% Parameters
16% MRB = vessel.MRB; %Rigid-body mass matrix
17M = MRB + MA;
18M_inv = inv(M);%Rigid-body
19% MA = vesselABC.MA; %Added mass matrix
20% Bv = vessel.Bv; %Linear viscous damping matrix
21% Dp = vesselABC.Dp; %Linear potential damping matrix
22% G = vesselABC.G; % Stiffness matrix
23
24L = [0 0 0 0 0 0; %Selection matrix
25     0 0 0 0 0 1;
26     0 0 0 0 -1 0;
27     0 0 0 0 0 0;
28     0 0 0 0 0 0; 
29     0 0 0 0 0 0];
30
31nu_r = nu0-nu_c; %Relative velocity
32U_r = nu_r(1,1); %Relative speed
33CRB = U_r * MRB * L; % Linearized Coriolis Matrix
34CA = U_r*MA*L; %Added mass matrix
35
36%% Computations
37
38%nu_dot = M_inv*(tau -CRB*nu -CA*nu_r - (Bv+Dp)*nu_r - G*eta) ;
39%[J,~,~] = eulerang(eta(1,4),eta(1,5),eta(1,6));
40%eta_dot = J*nu;
41
42
43%Simulation parameters
44Ts = 0.1;
45Tlength = 50;
46Tsim = Tlength/Ts;
47
48% %Allocation of memory
49nu = zeros(6,Tsim);
50eta = zeros(6,Tsim);
51
52%Initial conditions
53eta(:,1) = eta0;
54nu(:,1) = nu0;
55
56%Solve combined forward and backward Euler integration (Fossen appendix B)
57for k = 1:Tsim
58    %Variables
59    nu_r(:,k) = nu(:,k) - nu_c; %NB, nu_c can't vary here.
60    U_r(k) = nu_r(1,k);
61    CRB = U_r(k) * MRB * L;
62    CA = U_r(k) * MA * L;
63    
64    %EOMs
65    nu(:,k+1) = nu(:,k) + M_inv*(tau -CRB*nu(:,k) -CA*nu_r(:,k) - (Bv+Dp)*nu_r(:,k) - G*eta(:,k));
66    [J,~,~] = eulerang(eta(4,k),eta(5,k),eta(6,k));
67    eta(:,k+1) = eta(:,k) + J*nu(:,k+1);
68end
69
70else
71    nu = zeros(6,1);
72    eta = zeros(6,1);
73end
74
75end
76