Vehicle Articulated Modeling
This scipt derives the equations of motion from the nonlinear articulated vehicle model.
For class documentation, run:
doc VehicleDynamicsLateral.VehicleArticulatedNonlinear
Contents
Bicycle model
The single track (bicycle) approximation is illustrated below
The articulated vehicle model is illustrated below
The vector basis \(\Omega_{\rm O} = \{ {\rm O} {\bf i} {\bf j} {\bf k} \}\) is fixed to the inertial reference frame. The vector basis \(\Omega_{\rm T} = \{ {\rm T} {\bf t}_x {\bf t}_y {\bf t}_z \}\) is fixed to the tractor and the vector basis \(\Omega_{\rm S} = \{ {\rm S} {\bf s}_x {\bf s}_y {\bf s}_z \}\) is fixed to the semitrailer. The vector basis \(\{ {\rm F} {\bf e}_x {\bf e}_y {\bf e}_z \}\) is fixed to the front axle.
The center of gravity of the tractor and semitrailer are located at points \(\rm T\) and \(\rm S\), respectively. Coordinates \(x\) and \(y\) locates point \(\rm T\). The front and rear axles are located at points \(\rm F\) and \(\rm R\), respectively. \(\rm A\) is the articulation point and \(\rm M\) is the axle of the semitrailer. The constant \(a\) measures the distance of point \(\rm F\) to \(\rm T\) and \(b\) the distance of point \(\rm T\) to \(\rm R\). The distance of the articulation from the rear axle of the tractor is given by \(c\). \(d\) and \(e\) locates the position of the CG from the semitrailer. The angles \(\alpha_{\rm F}\) e \(\alpha_{\rm R}\) are the front and rear slip angles, respectively. \(\alpha_{\rm T}\) is the vehicle side slip angle, \(\psi\) is the yaw angle of the tractor and \(\phi\) is the yaw angle of the semitrailer relative to the tractor. \(\delta_{\rm F}\) is the steering angle.
Initialization
Defining Symbols (sym) and Symbolic Functions (symfun). The subscript t indicates time symbolic functions.
See create-symbolic-functions.
clear ; close all ; clc % Generalized coordinates (symfun) syms x_t(t) y_t(t) PSI_t(t) PHI_t(t) % Generalized coordinates and time derivatives (sym) syms x dx ddx y dy ddy PSI dPSI ddPSI PHI dPHI ddPHI % Alternative velocity related variables: Side slip angle and speed % Alternative variables (symfun) syms ALPHAT_t(t) VT_t(t) % Alternative variables and time derivatives (sym) syms VT ALPHAT dVT dALPHAT % Inputs syms deltaf deltar deltam FxF FxR FxM % Tire lateral forces syms FyF FyR FyM % Vehicle parameters syms a b c d e mT mS IT IS
Generalized coordinates and time derivatives
The generalized coordinates are
\begin{eqnarray} \nonumber q_1 &=& x \\ \nonumber q_2 &=& y \\ \nonumber q_3 &=& \psi \\ \nonumber q_4 &=& \phi, \end{eqnarray}
where \(x\) and \(y\) are the coordinates of the CG of the vehicle. \(\psi\) is the yaw angle of the tractor and \(\phi\) is the yaw angle of the semitrailer relative to the tractor.
% symfun q_t = [x_t y_t PSI_t PHI_t]; dq_t = diff(q_t,t); ddq_t = diff(diff(q_t,t)); % sym q = [ x y PSI PHI]; dq = [ dx dy dPSI dPHI]; ddq = [ ddx ddy ddPSI ddPHI];
Alternative velocity related variables
However, in many occasions it is more convenient to use the states \(v_{\rm T}\) e \(\alpha_{\rm T}\) instead of \(\dot{x}\) e \(\dot{y}\).
The equations relating this pairs of variables is
\begin{eqnarray} \nonumber \dot{x} &=& v_{\rm T} \cos \left( \psi + \alpha_{\rm T} \right) \\ \dot{y} &=& v_{\rm T} \sin \left( \psi + \alpha_{\rm T} \right) \label{eq:dxdy2vtalphat} \end{eqnarray}
altVar_t = [ALPHAT_t(t) VT_t(t)]; altVarD1_t = diff(altVar_t,t); altVar = [ALPHAT VT]; altVarD1 = [dALPHAT dVT];
Conversion variables
Array to switch symfun - sym
symfunVariables = [q_t dq_t ddq_t altVar_t altVarD1_t ]; symVariables = [q dq ddq altVar altVarD1 ];
Position
The position of the CG of the tractor relative to the origin \({\rm O}\) is
\begin{equation*} {\bf p}_{{\rm T}/{\rm O}} = x \, {\bf i} + y \, {\bf j}. \end{equation*}
Relative positions are
\begin{eqnarray} \nonumber {\bf p}_{{\rm F}/{\rm T}} &=& a \cos \psi {\bf i} + a \sin \psi {\bf j}. \\ \nonumber {\bf p}_{{\rm R}/{\rm T}} &=& - b \cos \psi {\bf i} - b \sin \psi {\bf j}. \\ \nonumber {\bf p}_{{\rm A}/{\rm T}} &=& - (b + c) \cos \psi {\bf i} - (b + c) \sin \psi {\bf j}. \\ \nonumber {\bf p}_{{\rm S}/{\rm A}} &=& - d \cos \left( \psi-\phi \right) {\bf i} - d \sin \left( \psi-\phi \right) {\bf j}. \\ \nonumber {\bf p}_{{\rm M}/{\rm A}} &=& - (d + e) \cos \left( \psi-\phi \right) {\bf i} - (d + e) \sin \left( \psi-\phi \right) {\bf j}. \end{eqnarray}
The position of the CG of the semitrailer relative to the origin \({\rm O}\) is
\begin{equation*}{\bf p}_{{\rm S}/{\rm O}} = {\bf p}_{{\rm S}/{\rm A}} + {\bf p}_{{\rm A}/{\rm T}} + {\bf p}_{{\rm T}/{\rm O}} = \left[ x - \left( b + c \right) \cos \psi - d \cos \left( \psi - \phi \right) \right] {\bf i} + \left[ y - \left( b + c \right) \sin \psi - d \sin \left( \psi - \phi \right) \right] {\bf j}.\end{equation*}
Position of axles
\begin{eqnarray} \nonumber {\bf p}_{{\rm F}/{\rm O}} &=& {\bf p}_{{\rm F}/{\rm T}} + {\bf p}_{{\rm T}/{\rm O}} = \left( x + a \cos \psi \right) {\bf i} + \left( y + a \sin \psi \right) {\bf j}. \\ \nonumber {\bf p}_{{\rm R}/{\rm O}} &=& {\bf p}_{{\rm F}/{\rm T}} + {\bf p}_{{\rm T}/{\rm O}} = \left( x - b \cos \psi \right) {\bf i} + \left( y - b \sin \psi \right) {\bf j}. \\ \nonumber {\bf p}_{{\rm M}/{\rm O}} &=& {\bf p}_{{\rm M}/{\rm A}} + {\bf p}_{{\rm A}/{\rm T}} + {\bf p}_{{\rm T}/{\rm O}} = \left[ x - \left( b + c \right) \cos \psi - \left( d + e \right) \cos \left( \psi - \phi \right) \right] {\bf i} + \left[ y - \left( b + c \right) \sin \psi - \left( d + e \right) \sin \left( \psi - \phi \right) \right] {\bf j}. \end{eqnarray}
% CG position tractor PTO_t = [x_t y_t 0]; % P_{T/O} % Relative positions PFT_t = [ a*cos(PSI_t) a*sin(PSI_t) 0]; % P_{F/T} PRT_t = [-b*cos(PSI_t) -b*sin(PSI_t) 0]; % P_{R/T} PAT_t = [-(b+c)*cos(PSI_t) -(b+c)*sin(PSI_t) 0]; % P_{A/T} PSA_t = [-d*cos(PSI_t-PHI_t) -d*sin(PSI_t-PHI_t) 0]; % P_{S/A} PMA_t = [-(d+e)*cos(PSI_t-PHI_t) -(d+e)*sin(PSI_t-PHI_t) 0 ]; % P_{M/A} % CG position semitrailer PSO_t = PSA_t + PAT_t + PTO_t; % P_{S/O} % Axle position PFO_t = PFT_t + PTO_t; % P_{F/O} PRO_t = PRT_t + PTO_t ; % P_{R/O} PMO_t = PMA_t + PAT_t + PTO_t; % P_{M/O} PFO = subs(PFO_t,symfunVariables,symVariables); % P_{F/O} PRO = subs(PRO_t,symfunVariables,symVariables); % P_{R/O} PMO = subs(PMO_t,symfunVariables,symVariables); % P_{M/O}
Velocity
The angular velocity of the tractor and the angular velocity of the semitrailer are
\begin{eqnarray} {\bf w}_{\rm T} &=& \dot{\psi} {\bf k}. \label{eq:tractorvelangular} \\ {\bf w}_{\rm S} &=& \left( \dot{\psi} - \dot{\phi} \right) {\bf k}. \label{eq:semitrailervelangular} \end{eqnarray}
Tractor and semitrailer velocities are
\begin{eqnarray} {\bf v}_{\rm T} &=& \dot{x} {\bf i} + \dot{y} {\bf j} \label{eq:tractorveltranslation} \\ {\bf v}_{\rm S} &=& \left[ \dot{x} + \left( b + c \right) \dot{\psi} \sin \psi + d \left( \dot{\psi} - \dot{\phi} \right) \sin \left( \psi - \phi \right) \right] {\bf i} + \left[ \dot{y} - \left( b + c \right) \dot{\psi} \cos \psi - d \left( \dot{\psi} - \dot{\phi} \right) \cos \left( \psi - \phi \right) \right] {\bf j}. \label{eq:semitrailerveltranslation} \end{eqnarray}
Velocities of each axle are
\begin{eqnarray} {\bf v}_{\rm F} &=& \left( \dot{x} - a \dot{\psi} \sin \psi \right) {\bf i} + \left( \dot{y} + a \dot{\psi} \cos \psi \right) {\bf j} \label{eq:velfront} \\ {\bf v}_{\rm R} &=& \left( \dot{x} + b \dot{\psi} \sin \psi \right) {\bf i} + \left( \dot{y} -b \dot{\psi} \cos \psi \right) {\bf j} \label{eq:velrear} \\ {\bf v}_{\rm S} &=& \left[ \dot{x} + \left( b + c \right) \dot{\psi} \sin \psi + \left( d + e \right) \left( \dot{\psi} - \dot{\phi} \right) \sin \left( \psi - \phi \right) \right] {\bf i} + \left[ \dot{y} - \left( b + c \right) \dot{\psi} \cos \psi - \left( d + e \right) \left( \dot{\psi} - \dot{\phi} \right) \cos \left( \psi - \phi \right) \right] {\bf j}. \label{eq:velsemitrailer} \end{eqnarray}
% Angular velocity wT_t = [0 0 diff(PSI_t,t)]; wS_t = [0 0 diff(PSI_t,t)-diff(PHI_t,t)]; % Velocity truck CG (T) VTdiff_t = diff(PTO_t,t); VTdiff = subs(VTdiff_t,symfunVariables,symVariables); % Velocity semitrailer CG (S) vSdiff_t = diff(PSO_t,t); vSdiff = subs(vSdiff_t,symfunVariables,symVariables); % Velocity truck - Alternative definition dx_Alt_t = VT_t*cos(PSI_t + ALPHAT_t); dy_Alt_t = VT_t*sin(PSI_t + ALPHAT_t); dx_Alt = subs(dx_Alt_t,symfunVariables,symVariables); dy_Alt = subs(dy_Alt_t,symfunVariables,symVariables); % Acceleration truck - Alternative definition ddx_Alt_t = simplify(diff(dx_Alt_t,t)); ddy_Alt_t = simplify(diff(dy_Alt_t,t)); ddx_Alt = subs(ddx_Alt_t,symfunVariables,symVariables); ddy_Alt = subs(ddy_Alt_t,symfunVariables,symVariables);
Slip angles
Using equations \ref{eq:velfront}, \ref{eq:velrear} and \ref{eq:velsemitrailer}, the slip angles can be written as
\begin{eqnarray} \nonumber \alpha_{\rm F} &=& \arctan \left( \frac{\dot{y} + a \dot{\psi} \cos \psi}{ \dot{x} - a \dot{\psi} \sin \psi} \right) - \left( \delta_{\rm F} + \psi \right) \\ \nonumber \alpha_{\rm R} &=& \arctan \left( \frac{\dot{y} - b \dot{\psi} \cos \psi}{ \dot{x} + b \dot{\psi} \sin \psi} \right) - \left( \delta_{\rm R} + \psi \right) \\ \alpha_{\rm M} &=& \arctan \left( \frac{ \dot{y} - \left( b + c \right) \dot{\psi} \cos \psi - \left( d + e \right) \left( \dot{\psi} - \dot{\phi} \right) \cos \left( \psi - \phi \right) }{ \dot{x} + \left( b + c \right) \dot{\psi} \sin \psi + \left( d + e \right) \left( \dot{\psi} - \dot{\phi} \right) \sin \left( \psi - \phi \right) } \right) - \left( \delta_{\rm M} + \psi - \phi \right) \label{eq:slipangles1} \end{eqnarray}
Using equations in \ref{eq:dxdy2vtalphat}, the slip angles become
\begin{eqnarray} \alpha_{\rm F} &=& \arctan \left( \frac{v_{\rm T} \sin \left( \psi + \alpha_{\rm T} \right) + a \dot{\psi} \cos \psi}{ v_{\rm T} \cos \left( \psi + \alpha_{\rm T} \right) - a \dot{\psi} \sin \psi} \right) - \left( \delta_{\rm F} + \psi \right) \label{eq:slipangleFfull} \\ \alpha_{\rm R} &=& \arctan \left( \frac{v_{\rm T} \sin \left( \psi + \alpha_{\rm T} \right) - b \dot{\psi} \cos \psi}{ v_{\rm T} \cos \left( \psi + \alpha_{\rm T} \right) + b \dot{\psi} \sin \psi} \right) - \left( \delta_{\rm R} + \psi \right) \label{eq:slipangleRfull} \\ \alpha_{\rm M} &=& \arctan \left( \frac{ v_{\rm T} \sin \left( \psi + \alpha_{\rm T} \right) - \left( b + c \right) \dot{\psi} \cos \psi - \left( d + e \right) \left( \dot{\psi} - \dot{\phi} \right) \cos \left( \psi - \phi \right) }{ v_{\rm T} \cos \left( \psi + \alpha_{\rm T} \right) + \left( b + c \right) \dot{\psi} \sin \psi + \left( d + e \right) \left( \dot{\psi} - \dot{\phi} \right) \sin \left( \psi - \phi \right) } \right) - \left( \delta_{\rm M} + \psi - \phi \right) \label{eq:slipangleMfull} \end{eqnarray}
Since the definition of slip angle does not actually depend on the orientation, the orientation may be considered zero for simplification. For the tractor, orientation is \(\psi\). Thus, (\(\psi=0\)) in \ref{eq:slipangleFfull} and \ref{eq:slipangleRfull}. For the semitrailer, orientation is \(\psi-\phi\). Thus, \(\psi-\phi=0 \rightarrow \psi=\phi\) in \ref{eq:slipangleMfull}. Then
\begin{eqnarray} \nonumber \alpha_{\rm F} &=& \arctan \left( \frac{v_{\rm T} \sin \alpha_{\rm T} + a \dot{\psi}}{ v_{\rm T} \cos \alpha_{\rm T}} \right) - \delta_{\rm F} \\ \alpha_{\rm R} &=& \arctan \left( \frac{v_{\rm T} \sin \alpha_{\rm T} - b \dot{\psi}}{ v_{\rm T} \cos \alpha_{\rm T}} \right) - \delta_{\rm R} \\ \alpha_{\rm M} &=& \arctan \left( \frac{ v_{\rm T} \sin \left( \phi + \alpha_{\rm T} \right) - \left( b + c \right) \dot{\psi} \cos \phi - \left( d + e \right) \left( \dot{\psi} - \dot{\phi} \right) }{ v_{\rm T} \cos \left( \phi + \alpha_{\rm T} \right) + \left( b + c \right) \dot{\psi} \sin \phi } \right) - \delta_{\rm M} \label{eq:slipanglesnewvariables} \end{eqnarray}
VF_t = diff(PFO_t,t); VR_t = diff(PRO_t,t); VM_t = diff(PMO_t,t); VF = formula(subs(VF_t,symfunVariables,symVariables)); VR = formula(subs(VR_t,symfunVariables,symVariables)); VM = formula(subs(VM_t,symfunVariables,symVariables)); VF_alt = simplify(subs(VF,[dx dy],[dx_Alt dy_Alt])); VR_alt = simplify(subs(VR,[dx dy],[dx_Alt dy_Alt])); VM_alt = simplify(subs(VM,[dx dy],[dx_Alt dy_Alt])); % Slip angle definition ALPHAF_def = atan2(VF_alt(2),VF_alt(1)) - (deltaf + PSI); ALPHAR_def = atan2(VR_alt(2),VR_alt(1)) - (deltar + PSI); ALPHAM_def = atan2(VM_alt(2),VM_alt(1)) - (deltam + PSI-PHI); % Slip angle simplification (PSI=0 - Orientation is irrelevant here) % Orientation can be neglected, i.e., for the truck: Orientation=PSI=0 ALPHAF = subs(ALPHAF_def,PSI,0); ALPHAR = subs(ALPHAR_def,PSI,0); % and for the semitrailer: Orientation=PSI-PHI=0 ---> PSI=PHI ALPHAM = subs(ALPHAM_def,PSI,PHI);
disp(ALPHAF)
- deltaf + atan2(a*dPSI + VT*sin(ALPHAT), VT*cos(ALPHAT))
disp(ALPHAR)
- deltar + atan2(VT*sin(ALPHAT) - b*dPSI, VT*cos(ALPHAT))
disp(ALPHAM)
- deltam + atan2((d + e)*(dPHI - dPSI) + VT*sin(ALPHAT + PHI) - dPSI*cos(PHI)*(b + c), VT*cos(ALPHAT + PHI) + dPSI*sin(PHI)*(b + c))
Forces
Free body diagram
Force vectors at front, rear and semitrailer axles is
\begin{eqnarray} \nonumber {\bf F}_{\rm F} &=& F_{x,{\rm F}} \, {\bf e}_x + F_{y,{\rm F}} \, {\bf e}_y \\ \nonumber {\bf F}_{\rm R} &=& F_{x,{\rm R}} {\bf t}_x + F_{y,{\rm R}} {\bf t}_y \\ \nonumber {\bf F}_{\rm R} &=& F_{x,{\rm M}} {\bf s}_x + F_{y,{\rm M}} {\bf s}_y \end{eqnarray}
or
\begin{eqnarray} {\bf F}_{\rm F} &=& \left[ F_{x,{\rm F}} \cos \left( \psi + \delta_{\rm F} \right) - F_{y,{\rm F}} \sin \left( \psi + \delta_{\rm F} \right) \right] {\bf i} + \left[ F_{x,{\rm F}} \sin \left( \psi + \delta_{\rm F} \right) + F_{y,{\rm F}} \cos \left( \psi + \delta_{\rm F} \right) \right] {\bf j} \label{eq:forcefront} \\ {\bf F}_{\rm R} &=& \left[ F_{x,{\rm R}} \cos \left( \psi + \delta_{\rm R} \right) - F_{y,{\rm R}} \sin \left( \psi + \delta_{\rm R} \right) \right] {\bf i} + \left[ F_{x,{\rm R}} \sin \left( \psi + \delta_{\rm R} \right) + F_{y,{\rm R}} \cos \left( \psi + \delta_{\rm R} \right) \right] {\bf j}. \label{eq:forcerear} \\ {\bf F}_{\rm M} &=& \left[ F_{x,{\rm M}} \cos \left( \psi - \phi + \delta_{\rm M} \right) - F_{y,{\rm M}} \sin \left( \psi - \phi + \delta_{\rm M} \right) \right] {\bf i} + \left[ F_{x,{\rm M}} \sin \left( \psi - \phi + \delta_{\rm M} \right) + F_{y,{\rm M}} \cos \left( \psi - \phi + \delta_{\rm M} \right) \right] {\bf j}. \label{eq:forcesemitrailer} \end{eqnarray}
% Force vectors
FF = [FxF*cos(PSI+deltaf)-FyF*sin(PSI+deltaf) FxF*sin(PSI+deltaf)+FyF*cos(PSI+deltaf) 0];
FR = [FxR*cos(PSI+deltar)-FyR*sin(PSI+deltar) FxR*sin(PSI+deltar)+FyR*cos(PSI+deltar) 0];
FM = [FxM*cos(PSI-PHI+deltam)-FyM*sin(PSI-PHI+deltam) FxM*sin(PSI-PHI+deltam)+FyM*cos(PSI-PHI+deltam) 0];
The generalized forces are
\begin{equation} Q_k = \sum_{j = 1} ^p {\bf F}_j \cdot \frac{\partial {\bf p}_j}{\partial q_k} \qquad \qquad \begin{array}{c} k = 1, 2, 3, 4 \\ j = {\rm F}, {\rm R}, {\rm M} \end{array}. \end{equation}
This is
\begin{eqnarray} \nonumber Q_1 &=& {\bf F}_{\rm F} \cdot \frac{\partial {\bf p}_{{\rm F}/{\rm O}}}{\partial q_1} + {\bf F}_{\rm R} \cdot \frac{\partial {\bf p}_{{\rm R}/{\rm O}}}{\partial q_1} + {\bf F}_{\rm M} \cdot \frac{\partial {\bf p}_{{\rm M}/{\rm O}}}{\partial q_1} \\ \nonumber Q_2 &=& {\bf F}_{\rm F} \cdot \frac{\partial {\bf p}_{{\rm F}/{\rm O}}}{\partial q_2} + {\bf F}_{\rm R} \cdot \frac{\partial {\bf p}_{{\rm R}/{\rm O}}}{\partial q_2} + {\bf F}_{\rm M} \cdot \frac{\partial {\bf p}_{{\rm M}/{\rm O}}}{\partial q_2} \\ \nonumber Q_3 &=& {\bf F}_{\rm F} \cdot \frac{\partial {\bf p}_{{\rm F}/{\rm O}}}{\partial q_3} + {\bf F}_{\rm R} \cdot \frac{\partial {\bf p}_{{\rm R}/{\rm O}}}{\partial q_3} + {\bf F}_{\rm M} \cdot \frac{\partial {\bf p}_{{\rm M}/{\rm O}}}{\partial q_3}, \\ Q_4 &=& {\bf F}_{\rm F} \cdot \frac{\partial {\bf p}_{{\rm F}/{\rm O}}}{\partial q_4} + {\bf F}_{\rm R} \cdot \frac{\partial {\bf p}_{{\rm R}/{\rm O}}}{\partial q_4} + {\bf F}_{\rm M} \cdot \frac{\partial {\bf p}_{{\rm M}/{\rm O}}}{\partial q_4}.\end{eqnarray}
Thus
\begin{eqnarray} \nonumber \frac{\partial {\bf p}_{{\rm F}/{\rm O}}}{\partial q_1} &=& \frac{\partial {\bf p}_{{\rm F}/{\rm O}}}{\partial x} = {\bf i} \\ \nonumber \frac{\partial {\bf p}_{{\rm F}/{\rm O}}}{\partial q_2} &=& \frac{\partial {\bf p}_{{\rm F}/{\rm O}}}{\partial y} = {\bf j} \\ \nonumber \frac{\partial {\bf p}_{{\rm F}/{\rm O}}}{\partial q_3} &=& \frac{\partial {\bf p}_{{\rm F}/{\rm O}}}{\partial \psi} = - a \sin \psi {\bf i} + a \cos \psi {\bf j} \\ \nonumber \frac{\partial {\bf p}_{{\rm F}/{\rm O}}}{\partial q_4} &=& \frac{\partial {\bf p}_{{\rm F}/{\rm O}}}{\partial \phi} = 0, \end{eqnarray}
\begin{eqnarray} \nonumber \frac{\partial {\bf p}_{{\rm R}/{\rm O}}}{\partial q_1} &=& \frac{\partial {\bf p}_{{\rm R}/{\rm O}}}{\partial x} = {\bf i} \\ \nonumber \frac{\partial {\bf p}_{{\rm R}/{\rm O}}}{\partial q_2} &=& \frac{\partial {\bf p}_{{\rm R}/{\rm O}}}{\partial y} = {\bf j} \\ \nonumber \frac{\partial {\bf p}_{{\rm R}/{\rm O}}}{\partial q_3} &=& \frac{\partial {\bf p}_{{\rm R}/{\rm O}}}{\partial \psi} = b \sin \psi {\bf i} - b \cos \psi {\bf j} \\ \nonumber \frac{\partial {\bf p}_{{\rm R}/{\rm O}}}{\partial q_4} &=& \frac{\partial {\bf p}_{{\rm R}/{\rm O}}}{\partial \phi} = 0 \end{eqnarray}
and
\begin{eqnarray} \frac{\partial {\bf p}_{{\rm M}/{\rm O}}}{\partial q_1} &=& \frac{\partial {\bf p}_{{\rm M}/{\rm O}}}{\partial x} = {\bf i} \\ \frac{\partial {\bf p}_{{\rm M}/{\rm O}}}{\partial q_2} &=& \frac{\partial {\bf p}_{{\rm M}/{\rm O}}}{\partial y} = {\bf j} \\ \frac{\partial {\bf p}_{{\rm M}/{\rm O}}}{\partial q_3} &=& \frac{\partial {\bf p}_{{\rm M}/{\rm O}}}{\partial \psi} = \left[ \left( b + c \right) \sin \psi + \left( d + e \right) \sin \left( \psi - \phi \right) \right] {\bf i} + \left[ - \left( b + c \right) \cos \psi - \left( d + e \right) \cos \left( \psi - \phi \right) \right] {\bf j} \\ \frac{\partial {\bf p}_{{\rm M}/{\rm O}}}{\partial q_4} &=& \frac{\partial {\bf p}_{{\rm M}/{\rm O}}}{\partial \phi} = \left[ - \left( d + e \right) \sin \left( \psi - \phi \right) \right] {\bf i} + \left[ \left( d + e \right) \cos \left( \psi - \phi \right) \right] {\bf j} \end{eqnarray}
% Generalized forces
Q1 = FF*diff(PFO,x)' + FR*diff(PRO,x)' + FM*diff(PMO,x)';
Q2 = FF*diff(PFO,y)' + FR*diff(PRO,y)' + FM*diff(PMO,y)';
Q3 = FF*diff(PFO,PSI).' + FR*diff(PRO,PSI).' + FM*diff(PMO,PSI).';
Q4 = FF*diff(PFO,PHI).' + FR*diff(PRO,PHI).' + FM*diff(PMO,PHI).';
Substituting equations
\begin{eqnarray} \nonumber Q_1 &=& F_{x,{\rm F}} \cos \left( \psi + \delta_{\rm F} \right) - F_{y,{\rm F}} \sin \left( \psi + \delta_{\rm F} \right) + F_{x,{\rm R}} \cos \left( \psi + \delta_{\rm R} \right) - F_{y,{\rm R}} \sin \left( \psi + \delta_{\rm R} \right) + F_{x,{\rm M}} \cos \left( \psi - \phi + \delta_{\rm M} \right) - F_{y,{\rm M}} \sin \left( \psi - \phi + \delta_{\rm M} \right) \\ \nonumber Q_2 &=& F_{x,{\rm F}} \sin \left( \psi + \delta_{\rm F} \right) + F_{y,{\rm F}} \cos \left( \psi + \delta_{\rm F} \right) + F_{x,{\rm R}} \sin \left( \psi + \delta_{\rm R} \right) + F_{y,{\rm R}} \cos \left( \psi + \delta_{\rm R} \right) + F_{x,{\rm M}} \sin \left( \psi - \phi + \delta_{\rm M} \right) + F_{y,{\rm M}} \cos \left( \psi - \phi + \delta_{\rm M} \right) \\ \nonumber Q_3 &=& F_{x,{\rm F}} a \sin(\delta_{\rm F}) + F_{y,{\rm F}} a \cos(\delta_{\rm F}) - F_{x,{\rm R}} b \sin(\delta_{\rm R}) - F_{y,{\rm R}} b \cos(\delta_{\rm R}) + F_{x,{\rm M}} \left[ b \sin(\phi - \delta_{\rm M}) - e \sin(\delta_{\rm M}) - d \sin(\delta_{\rm M}) + c \sin(\phi - \delta_{\rm M}) \right] + F_{y,{\rm M}} \left[ - d \cos(\delta_{\rm M}) - e \cos(\delta_{\rm M}) - b \cos(\phi - \delta_{\rm M}) - c \cos(\phi - \delta_{\rm M}) \right] \\ \nonumber Q_4 &=& F_{x,{\rm M}} \left( d + e \right) \sin(\delta_{\rm M}) + F_{y,{\rm M}} \left( d + e \right) \cos(\delta_{\rm M}) \end{eqnarray}
% Generalized forces array
Q = formula(simplify([Q1 ; Q2 ; Q3 ; Q4]));
disp(Q)
FxF*cos(PSI + deltaf) + FxR*cos(PSI + deltar) - FyF*sin(PSI + deltaf) - FyR*sin(PSI + deltar) + FxM*cos(PSI - PHI + deltam) - FyM*sin(PSI - PHI + deltam) FyF*cos(PSI + deltaf) + FyR*cos(PSI + deltar) + FxF*sin(PSI + deltaf) + FxR*sin(PSI + deltar) + FyM*cos(PSI - PHI + deltam) + FxM*sin(PSI - PHI + deltam) FyF*a*cos(deltaf) - FyR*b*cos(deltar) - FyM*d*cos(deltam) - FyM*e*cos(deltam) + FxF*a*sin(deltaf) - FyM*b*cos(PHI - deltam) - FxR*b*sin(deltar) - FyM*c*cos(PHI - deltam) - FxM*d*sin(deltam) - FxM*e*sin(deltam) + FxM*b*sin(PHI - deltam) + FxM*c*sin(PHI - deltam) (d + e)*(FyM*cos(deltam) + FxM*sin(deltam))
Kinetic Energy
The kinetic energy of the system is
\begin{equation} \label{eq:kineticenergy} T = \frac{1}{2} m_{\rm T} {\bf v}_{\rm T} \cdot {\bf v}_{\rm T} + \frac{1}{2} m_{S} {\bf v}_{\rm S} \cdot {\bf v}_{\rm S} + \frac{1}{2} \left\{ {\bf w}_{\rm T} \right\}^T \left[ {\bf J}_{\rm T} \right] \left\{ {\bf w}_{\rm T} \right\} + \frac{1}{2} \left\{ {\bf w}_{\rm S} \right\}^T \left[ {\bf J}_{\rm S} \right] \left\{ {\bf w}_{\rm S} \right\}.\end{equation}
Substituting \ref{eq:tractorvelangular}, \ref{eq:semitrailervelangular}, \ref{eq:tractorveltranslation} and \ref{eq:semitrailerveltranslation} in \ref{eq:kineticenergy}
\begin{equation}T = \frac{1}{2} m_{\rm T} \left( \dot{x}^2 + \dot{y}^2 \right) + \frac{1}{2} m_{S} \left( C_1^2 + C_2^2 \right) + \frac{1}{2} I_{T} \dot{\psi}^2 + \frac{1}{2} I_{S} \left( \dot{\psi} - \dot{\phi} \right)^2,\end{equation}
where
\begin{eqnarray} \nonumber C_1 &=& \dot{x} + \left( b + c \right) \dot{\psi} \sin \psi + d \left( \dot{\psi} - \dot{\phi} \right) \sin \left( \psi - \phi \right) \\ C_2 &=& \dot{y} - \left( b + c \right) \dot{\psi} \cos \psi - d \left( \dot{\psi} - \dot{\phi} \right) \cos \left( \psi - \phi \right). \label{eq:equationconstants} \end{eqnarray}
The time derivatives of \ref{eq:equationconstants} is
\begin{eqnarray} \nonumber \dot{C}_1 &=& \ddot{x} + \left( b + c \right) \ddot{\psi} \sin \psi + \left( b + c \right) \dot{\psi}^2 \cos \psi + d \left( \ddot{\psi} - \ddot{\phi} \right) \sin \left( \psi - \phi \right) + d \left( \dot{\psi} - \dot{\phi} \right)^2 \cos \left( \psi - \phi \right) \\ \dot{C}_2 &=& \ddot{y} - \left( b + c \right) \ddot{\psi} \cos \psi + \left( b + c \right) \dot{\psi}^2 \sin \psi - d \left( \ddot{\psi} - \ddot{\phi} \right) \cos \left( \psi - \phi \right) + d \left( \dot{\psi} - \dot{\phi} \right)^2 \sin \left( \psi - \phi \right) \end{eqnarray}
T = 1/2*mT*(VTdiff*VTdiff.') + 1/2*mS*(vSdiff*vSdiff.') + 1/2*IT*dPSI^2 + 1/2*IS*(dPSI-dPHI)^2;
Euler-Lagrange
The Euler-Lagrange formulation for this system is
\begin{equation} \frac{d}{dt} \left( \frac{\partial T}{\partial \dot{q}_k} \right) - \frac{\partial T}{\partial q_k} = Q_k \qquad \qquad k = 1, 2, 3, 4 \end{equation}
where
\begin{eqnarray} \frac{\partial T}{\partial q_1} &=& \frac{\partial T}{\partial x} = 0 \\ \frac{\partial T}{\partial q_2} &=& \frac{\partial T}{\partial y} = 0 \\ \frac{\partial T}{\partial q_3} &=& \frac{\partial T}{\partial \psi} = m_S C_1 \left[ \left( b + c \right) \dot{\psi} \cos \psi + d \left( \dot{\psi} - \dot{\phi} \right) \cos \left( \psi - \phi \right) \right] + m_S C_2 \left[ \left( b + c \right) \dot{\psi} \sin \psi + d \left( \dot{\psi} - \dot{\phi} \right) \sin \left( \psi - \phi \right) \right] \\ \frac{\partial T}{\partial q_4} &=& \frac{\partial T}{\partial \phi} = m_S C_1 \left[ - d \left( \dot{\psi} - \dot{\phi} \right) \cos \left( \psi - \phi \right) \right] + m_S C_2 \left[ - d \left( \dot{\psi} - \dot{\phi} \right) \sin \left( \psi - \phi \right) \right]. \end{eqnarray}
dTdq1 = diff(T,x); dTdq2 = diff(T,y); dTdq3 = diff(T,PSI); dTdq4 = diff(T,PHI); dTdq = [ dTdq1 ; dTdq2 ; dTdq3 ; dTdq4 ]; dTdq = subs(dTdq,symVariables,symfunVariables);
The partial derivatives are
\begin{eqnarray} \nonumber \frac{\partial T}{\partial \dot{q}_1} &=& \frac{\partial T}{\partial \dot{x}} = m_{\rm T} \dot{x} + m_S C_1 \\ \nonumber \frac{\partial T}{\partial \dot{q}_2} &=& \frac{\partial T}{\partial \dot{y}} = m_{\rm T} \dot{y} + m_S C_2 \\ \nonumber \frac{\partial T}{\partial q_3} &=& \frac{\partial T}{\partial \dot{\psi}} = m_S C_1 \left[ \left( b + c \right) \sin \psi + d \sin \left( \psi - \phi \right) \right] + m_S C_2 \left[ - \left( b + c \right) \cos \psi - d \cos \left( \psi - \phi \right) \right] + I_T \dot{\psi} + I_S \left( \dot{\psi} - \dot{\phi} \right) \\ \frac{\partial T}{\partial q_4} &=& \frac{\partial T}{\partial \dot{\phi}} = m_S C_1 \left[ - d \sin \left( \psi - \phi \right) \right] + m_S C_2 \left[ d \cos \left( \psi - \phi \right) \right] - I_S \left( \dot{\psi} - \dot{\phi} \right). \end{eqnarray}
Time derivatives
\begin{eqnarray} \nonumber \frac{d}{dt} \left( \frac{\partial T}{\partial \dot{q}_1} \right) &=& \frac{d}{dt} \left( \frac{\partial T}{\partial \dot{x}} \right) = m_{\rm T} \ddot{x} + m_S \dot{C}_1 \\ \nonumber \frac{d}{dt} \left( \frac{\partial T}{\partial \dot{q}_2} \right) &=& \frac{d}{dt} \left( \frac{\partial T}{\partial \dot{y}} \right) = m_{\rm T} \ddot{y} + m_S \dot{C}_2 \\ \nonumber \frac{d}{dt} \left( \frac{\partial T}{\partial \dot{q}_3} \right) &=& \frac{d}{dt} \left( \frac{\partial T}{\partial \dot{\psi}} \right) = m_S \dot{C}_1 \left[ \left( b + c \right) \sin \psi + d \sin \left( \psi - \phi \right) \right] + m_S C_1 \left[ \left( b + c \right) \dot{\psi} \cos \psi + d \left( \dot{\psi} - \dot{\phi} \right) \cos \left( \psi - \phi \right) \right] + m_S \dot{C}_2 \left[ - \left( b + c \right) \cos \psi - d \cos \left( \psi - \phi \right) \right] + m_S C_2 \left[ \left( b + c \right) \dot{\psi} \sin \psi + d \left( \dot{\psi} - \dot{\phi} \right) \sin \left( \psi - \phi \right) \right] + I_T \ddot{\psi} + I_S \left( \ddot{\psi} - \ddot{\phi} \right) \\ \nonumber \frac{d}{dt} \left( \frac{\partial T}{\partial \dot{q}_4} \right) &=& \frac{d}{dt} \left( \frac{\partial T}{\partial \dot{\phi}} \right) = m_S \dot{C}_1 \left[ - d \sin \left( \psi - \phi \right) \right] + m_S C_1 \left[ - d \left( \dot{\psi} - \dot{\phi} \right) \cos \left( \psi - \phi \right) \right] + m_S \dot{C}_2 \left[ d \cos \left( \psi - \phi \right) \right] + m_S C_2 \left[ - d \left( \dot{\psi} - \dot{\phi} \right) \sin \left( \psi - \phi \right) \right] - I_S \left( \ddot{\psi} - \ddot{\phi} \right) \end{eqnarray}
dTddq1 = diff(T,dx); dTddq2 = diff(T,dy); dTddq3 = diff(T,dPSI); dTddq4 = diff(T,dPHI); dTddq = [ dTddq1 ; dTddq2 ; dTddq3 ; dTddq4 ]; dTddq = subs(dTddq,symVariables,symfunVariables); ddTddq = diff(dTddq,t);
State equations
The state variables are
\begin{eqnarray} {\rm x}_1 &=& x \\ {\rm x}_2 &=& y \\ {\rm x}_3 &=& \psi \\ {\rm x}_4 &=& \phi \\ {\rm x}_5 &=& v_{\rm T} \\ {\rm x}_6 &=& \alpha_{\rm T} \\ {\rm x}_7 &=& \dot{\psi} \\ {\rm x}_8 &=& \dot{\phi} \end{eqnarray}
State space equation
\begin{equation} {\bf M} \left( {\bf x} \right) \dot{{\bf x}} = {\bf f} \left( {\bf x}, {\bf u} \right), \end{equation}
state vector
\begin{eqnarray} {\bf x} = \left[ \begin{array}{c} {\rm x}_{1} \\ {\rm x}_{2} \\ {\rm x}_{3} \\ {\rm x}_{4} \\ {\rm x}_{5} \\ {\rm x}_{6} \\ {\rm x}_{7} \\ {\rm x}_{8} \end{array} \right] \end{eqnarray}
input vector is
\begin{eqnarray} {\bf u} = \left[ \begin{array}{c} \delta_{\rm F} \\ \delta_{\rm R} \\ \delta_{\rm M} \\ F_{x,{\rm F}} \\ F_{x,{\rm R}} \\ F_{x,{\rm M}} \\ F_{y,{\rm F}} \\ F_{y,{\rm R}} \\ F_{y,{\rm M}} \end{array} \right]. \end{eqnarray}
Mass matrix is
\begin{eqnarray} {\bf M} = \left[ \begin{array}{ccccccccc} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & M_{55} & M_{56} & M_{57} & M_{58} \\ 0 & 0 & 0 & 0 & M_{65} & M_{66} & M_{67} & M_{68} \\ 0 & 0 & 0 & 0 & M_{75} & M_{76} & M_{77} & M_{78} \\ 0 & 0 & 0 & 0 & M_{85} & M_{86} & M_{87} & M_{88} \end{array} \right], \end{eqnarray}
where
\begin{eqnarray} \nonumber M_{55} &=& \left( m_{\rm T} + m_{\rm S} \right) \cos \left( \psi + \alpha_{\rm T} \right) \\ \nonumber M_{56} &=& - \left( m_{\rm T} + m_{\rm S} \right) v_{\rm T} \sin \left( \psi + \alpha_{\rm T} \right) \\ \nonumber M_{57} &=& m_{\rm S} \left[ \left( b + c \right) \sin \psi + d \sin \left( \psi - \phi \right) \right] \\ \nonumber M_{58} &=& - m_{\rm S} d \sin \left( \psi - \phi \right) \\ \nonumber M_{65} &=& \left( m_{\rm T} + m_{\rm S} \right) \sin \left( \psi + \alpha_{\rm T} \right) \\ \nonumber M_{66} &=& \left( m_{\rm T} + m_{\rm S} \right) v_{\rm T} \cos \left( \psi + \alpha_{\rm T} \right) \\ \nonumber M_{67} &=& - m_{\rm S} \left[ \left( b + c \right) \cos \psi + d \cos \left( \psi - \phi \right) \right] \\ \nonumber M_{68} &=& m_{\rm S} d \cos \left( \psi - \phi \right) \\ \nonumber M_{75} &=& - m_{\rm S} \left[ \left( b + c \right) \sin \alpha_{\rm T} + d \sin \left( \alpha_{\rm T} + \phi \right) \right] \\ \nonumber M_{76} &=& - m_{\rm S} \left[ \left( b + c \right) v_{\rm T} \cos \alpha_{\rm T} + d v_{\rm T} \cos \left( \alpha_{\rm T} + \phi \right) \right] \\ \nonumber M_{77} &=& m_{\rm S} \left[ \left( b + c \right)^2 + 2 \left( b + c \right) d \cos \phi + d^2 \right] + I_T + I_{\rm S} \\ \nonumber M_{78} &=& - m_{\rm S} \left[ \left( b + c \right) d \cos \phi + d^2 \right] - I_{\rm S} \\ \nonumber M_{85} &=& m_{\rm S} d \sin \left( \alpha_{\rm T} + \phi \right) \\ \nonumber M_{86} &=& m_{\rm S} d v_{\rm T} \cos \left( \alpha_{\rm T} + \phi \right) \\ \nonumber M_{87} &=& - m_{\rm S} \left[ \left( b + c \right) d \cos \phi + d^2 \right] - I_{\rm S} \\ \nonumber M_{88} &=& m_{\rm S} d^2 + I_{\rm S} \end{eqnarray}
% Euler-Lagrante - Left side EQ = ddTddq-dTdq; EQ = subs(EQ,symfunVariables,symVariables); EQ = formula(simplify(subs(EQ,[dx dy ddx ddy],[dx_Alt dy_Alt ddx_Alt ddy_Alt]))); dvar = [dVT dALPHAT ddPSI ddPHI]; % Prealocating M = sym(eye(8)); for i=1:length(EQ) for j=1:length(dvar) [C,~] = coeffs(EQ(i),dvar(j)); M(i+4,j+4) = C(1); end end M = simplify(M); disp(M)
[ 1, 0, 0, 0, 0, 0, 0, 0] [ 0, 1, 0, 0, 0, 0, 0, 0] [ 0, 0, 1, 0, 0, 0, 0, 0] [ 0, 0, 0, 1, 0, 0, 0, 0] [ 0, 0, 0, 0, cos(ALPHAT + PSI)*(mS + mT), -VT*sin(ALPHAT + PSI)*(mS + mT), (mS*(2*sin(PSI)*(b + c) - 2*d*sin(PHI - PSI)))/2, d*mS*sin(PHI - PSI)] [ 0, 0, 0, 0, sin(ALPHAT + PSI)*(mS + mT), VT*cos(ALPHAT + PSI)*(mS + mT), -(mS*(2*cos(PSI)*(b + c) + 2*d*cos(PHI - PSI)))/2, d*mS*cos(PHI - PSI)] [ 0, 0, 0, 0, -mS*(d*sin(ALPHAT + PHI) + b*sin(ALPHAT) + c*sin(ALPHAT)), -VT*mS*(d*cos(ALPHAT + PHI) + b*cos(ALPHAT) + c*cos(ALPHAT)), mS*b^2 + 2*mS*b*c + 2*mS*cos(PHI)*b*d + mS*c^2 + 2*mS*cos(PHI)*c*d + mS*d^2 + IS + IT, - IS - d^2*mS - b*d*mS*cos(PHI) - c*d*mS*cos(PHI)] [ 0, 0, 0, 0, d*mS*sin(ALPHAT + PHI), VT*d*mS*cos(ALPHAT + PHI), - IS - d^2*mS - b*d*mS*cos(PHI) - c*d*mS*cos(PHI), mS*d^2 + IS]
The \({\bf f}\) function is
\begin{equation*} {\bf f} = \left[ \begin{array}{c} v_{\rm T} \cos \left(\psi + \alpha_{\rm T} \right) \\ v_{\rm T} \sin \left(\psi + \alpha_{\rm T} \right) \\ \dot{\psi} \\ \dot{\phi} \\ f_5 \\ f_6 \\ f_7 \\ f_8 \\ \end{array} \right], \end{equation*}
where
\begin{eqnarray} f_{5} &=& F_{x,{\rm F}} \cos \left( \psi + \delta_{\rm F} \right) - F_{y,{\rm F}} \sin \left( \psi + \delta_{\rm F} \right) + F_{x,{\rm R}} \cos \left( \psi + \delta_{\rm R} \right) - F_{y,{\rm R}} \sin \left( \psi + \delta_{\rm R} \right) + F_{x,{\rm M}} \cos \left( \psi - \phi + \delta_{\rm M} \right) - F_{y,{\rm M}} \sin \left( \psi - \phi + \delta_{\rm M} \right) - m_S \left( b + c \right) \dot{\psi}^2 \cos \psi - m_S d \left( \dot{\psi} - \dot{\phi} \right)^2 \cos \left( \psi - \phi \right) + \left( m_{\rm T} + m_S \right) v_{\rm T} \sin \left( \psi + \alpha_{\rm T} \right) \dot{\psi} \\ f_{6} &=& F_{x,{\rm F}} \sin \left( \psi + \delta_{\rm F} \right) + F_{y,{\rm F}} \cos \left( \psi + \delta_{\rm F} \right) + F_{x,{\rm R}} \sin \left( \psi + \delta_{\rm R} \right) + F_{y,{\rm R}} \cos \left( \psi + \delta_{\rm R} \right) + F_{x,{\rm M}} \sin \left( \psi - \phi + \delta_{\rm M} \right) + F_{y,{\rm M}} \cos \left( \psi - \phi + \delta_{\rm M} \right) - m_S \left( b + c \right) \dot{\psi}^2 \sin \psi - m_S d \left( \dot{\psi} - \dot{\phi} \right)^2 \sin \left( \psi - \phi \right) - \left( m_{\rm T} + m_S \right) v_{\rm T} \cos \left( \psi + \alpha_{\rm T} \right) \dot{\psi} \\ f_{7} &=& F_{x,{\rm F}} a \sin(\delta_{\rm F}) + F_{y,{\rm F}} a \cos(\delta_{\rm F}) - F_{x,{\rm R}} b \sin(\delta_{\rm R}) - F_{y,{\rm R}} b \cos(\delta_{\rm R}) + F_{x,{\rm M}} \left[ b \sin(\phi - \delta_{\rm M}) - e \sin(\delta_{\rm M}) - d \sin(\delta_{\rm M}) + c \sin(\phi - \delta_{\rm M}) \right] + F_{y,{\rm M}} \left[ - d \cos(\delta_{\rm M}) - e \cos(\delta_{\rm M}) - b \cos(\phi - \delta_{\rm M}) - c \cos(\phi - \delta_{\rm M}) \right] - m_S \left( b + c \right) d \left( \dot{\psi} - \dot{\phi} \right)^2 \sin \phi + m_S \left( b + c \right) d \dot{\psi}^2 \sin \phi + m_S \left[ \left( b + c \right) v_{\rm T} \cos \alpha_{\rm T} + d v_{\rm T} \cos \left( \alpha_{\rm T} + \phi \right) \right] \dot{\psi} \\ f_{8} &=& F_{x,{\rm M}} \left( d + e \right) \sin(\delta_{\rm M}) + F_{y,{\rm M}} \left( d + e \right) \cos(\delta_{\rm M}) - m_S \left( b + c \right) d \dot{\psi}^2 \sin \phi - m_S d v_{\rm T} \cos \left( \alpha_{\rm T} + \phi \right) \dot{\psi}. \end{eqnarray}
% Euler-Lagrante - Right side
dq_Alt = formula(subs(dq,[dx dy ddx ddy],[dx_Alt dy_Alt ddx_Alt ddy_Alt]));
f1 = dq_Alt.';
f2 = simplify(Q - (EQ - M(5:end,5:end)*dvar.'));
f = [ f1 ; f2];
disp(f)
VT*cos(ALPHAT + PSI) VT*sin(ALPHAT + PSI) dPSI dPHI FxF*cos(PSI + deltaf) + FxR*cos(PSI + deltar) - FyF*sin(PSI + deltaf) - FyR*sin(PSI + deltar) + FxM*cos(PSI - PHI + deltam) - FyM*sin(PSI - PHI + deltam) - b*dPSI^2*mS*cos(PSI) - c*dPSI^2*mS*cos(PSI) - d*dPHI^2*mS*cos(PHI - PSI) - d*dPSI^2*mS*cos(PHI - PSI) + VT*dPSI*mS*sin(ALPHAT + PSI) + VT*dPSI*mT*sin(ALPHAT + PSI) + 2*d*dPHI*dPSI*mS*cos(PHI - PSI) FyF*cos(PSI + deltaf) + FyR*cos(PSI + deltar) + FxF*sin(PSI + deltaf) + FxR*sin(PSI + deltar) + FyM*cos(PSI - PHI + deltam) + FxM*sin(PSI - PHI + deltam) - b*dPSI^2*mS*sin(PSI) - c*dPSI^2*mS*sin(PSI) + d*dPHI^2*mS*sin(PHI - PSI) + d*dPSI^2*mS*sin(PHI - PSI) - VT*dPSI*mS*cos(ALPHAT + PSI) - VT*dPSI*mT*cos(ALPHAT + PSI) - 2*d*dPHI*dPSI*mS*sin(PHI - PSI) FyF*a*cos(deltaf) - FyR*b*cos(deltar) - FyM*d*cos(deltam) - FyM*e*cos(deltam) + FxF*a*sin(deltaf) - FyM*b*cos(PHI - deltam) - FxR*b*sin(deltar) - FyM*c*cos(PHI - deltam) - FxM*d*sin(deltam) - FxM*e*sin(deltam) + FxM*b*sin(PHI - deltam) + FxM*c*sin(PHI - deltam) - b*d*dPHI^2*mS*sin(PHI) - c*d*dPHI^2*mS*sin(PHI) + VT*d*dPSI*mS*cos(ALPHAT + PHI) + VT*b*dPSI*mS*cos(ALPHAT) + VT*c*dPSI*mS*cos(ALPHAT) + 2*b*d*dPHI*dPSI*mS*sin(PHI) + 2*c*d*dPHI*dPSI*mS*sin(PHI) FyM*d*cos(deltam) + FyM*e*cos(deltam) + FxM*d*sin(deltam) + FxM*e*sin(deltam) - b*d*dPSI^2*mS*sin(PHI) - c*d*dPSI^2*mS*sin(PHI) - VT*d*dPSI*mS*cos(ALPHAT + PHI)
Model functions
This section creates matlab functions with the different parts of the model.
matlabFunction(f,'File','f_function','Comments','Version: 1.1') matlabFunction(M,'File','M_function','Comments','Version: 1.1')
ans = function_handle with value: @f_function ans = function_handle with value: @M_function