## 2 Analysis Methods
### Equation of Motion of a Constrained Rigid Body System  
#### 2.1.1 Equation of Motion  
In general, a constrained rigid body system consists of motion equations of rigid bodies composed of differential equations and constraint equations composed of algebraic equations. An augmented formulation, one of the multi-body dynamics formulations, was used to calculate constraint forces acting on the constraint points and motion of each rigid floating body. The augmented formulation is a technique of expressing the equation of motion of a constrained rigid body system as differential-algebraic equations using Lagrange multipliers. The constraint equations, which are algebraic equations, were differentiated twice with respect to time and merged with the equations of motion into one matrix, as shown in Equation (1) [29]. \[ \begin{bmatrix}\mathbf{M}_{r}&\mathbf{C}_{u}^{T}\\ \mathbf{C}_{u}&0\end{bmatrix} \left\{ \begin{array}{c}\ddot{\mathbf{u}}\\ \boldsymbol{\lambda}\end{array} \right\}=\left\{ \begin{array}{c}\mathbf{Q}\\ \mathbf{Q}_{d}\end{array} \right\} \tag{1}\]  
where \(\mathbf{u}\) is the displacement vector; \(\mathbf{M}_{r}\) is the mass matrix (square matrix), and \(\mathbf{Q}\) is the external force vector. Since each rigid body has 6 degrees of freedom, the size of the matrix and vector becomes 6 times the number of rigid bodies. The matrix on the left-hand side is a sparse matrix. If there is an interaction between different bodies, the matrix value of the corresponding degree of freedom is non-zero, and the coupling effect can be considered. \(\boldsymbol{\lambda}\) is the Lagrange multiplier vector, \(\mathbf{C}\) and \(\mathbf{C}_{u}\) are constraint equations and the Jacobian matrix of constraint equations (\(\mathbf{C}_{u}=\partial\mathbf{C}/\partial\mathbf{u}\)), respectively. \(\mathbf{C}_{u}^{T}\) is a transpose matrix of \(\mathbf{C}_{u}\). \(\mathbf{Q}_{d}\) is a vector obtained by the second derivative of the constraint equation with respect to time, as shown in Equation (2). \[\mathbf{Q}_{d}=\mathbf{C}_{u}\mathbf{\tilde{u}}=-\big{(}\big{(}\mathbf{C}_{u} \mathbf{\dot{u}}\mathbf{\dot{u}}\mathbf{\dot{u}}+2\mathbf{C}_{ut}\mathbf{\dot {u}}+\mathbf{C}_{tt}\big{)} \tag{2}\]  
The constraint forces acting on the center of gravity of a rigid body can be calculated by multiplying the transpose of the Jacobian matrix of the constraint equations by the Lagrange multiplier vector. To obtain the constraint forces acting on the constraint points, the constraint forces acting on the center of gravity should be moved to the constraint points, and the resulting moment caused by the translational constraint forces must also be considered. Equation (3) represents the constraint forces acting on the constraint points. \[\mathbf{Q}_{\text{joint}}=\mathbf{C}_{u}^{T}\boldsymbol{\lambda}-\Big{[}0_{ (3\times 1)}\quad\big{(}\mathbf{u}_{jG}\times\mathbf{F}_{c}\big{)}^{T}\Big{]}^{T} \tag{3}\]  
where \(\mathbf{Q}_{\text{joint}}\) is the constraint force vector acting on the joint; \(\mathbf{u}_{jG}\) is the displacement vector from the constraint point to the center of gravity of the body \(j\), and \(\mathbf{F}_{c}\) is the translational constraint force vector acting on the center of gravity. In this study, the WEC was connected to the top of a bottom-fixed structure by a massless rigid arm and was constrained by a hinge joint. Constraint equations of the hinge joint consist of three translational constraints and two rotational constraints. The translational constraints can be obtained on the condition that the position of one end of the rigid arm and the nodal point of the bottom-fixed structure are the same. For the rotational constraints, two vectors (\(\mathbf{n}^{j,1}\) and \(\mathbf{n}^{j,2}\)) perpendicular to each other were used. These two vectors were fixed in the local coordinate system of the body \(j\) and had constant values in the local coordinate system, even when the body moved, and each vector was defined to satisfy the condition that it is always perpendicular to the axis of the rotation vector.