Introduction

Natural disasters have become increasingly frequent in recent years, with helicopters assuming a growing role in rescue and relief operations, such as responding to landslides and conducting maritime hurricane ship rescues. In order to improve the resilience and self-protection of helicopter pilots and lifeguards, there is an urgent need to set up an emergency rescue helicopter flight and rescue training system to conduct targeted training in a simulated environment1,2,3. The helicopter’s X, Y,Z translational simulation motions are facilitated by high-performance traveling vehicles, whereas yaw, roll and pitch require specially designed attitude motion simulation motion mechanisms for implementation. The motion mechanism needs to be suspended under the traveling crane spreader and connected to the bracket on top of the simulated nacelle to drive the nacelle to realize the attitude simulation motion in three degrees of freedom4.

Figure 1 shows the motion mechanism of a helicopter simulation driving system, which consists of a two-degree-of-freedom swing mechanism driven by four pneumatic actuators. The yaw motion (rotation) is achieved through a rotation mechanism mounted on the trolley.

Fig. 1
figure 1

Two degrees of freedom parallel stable platform.

The swing platform is connected to the underside of the suspension platform through the Hook hinge, and the position control of the four cylinders enables control over the rolling and pitching movements of the nacelle. This pneumatic servo motion mechanism, characterized by its parallel structure, is commonly utilized in driving simulators5,6,7. Its pitch and roll motions are coupled, and attitude control needs to be solved8. To fulfill the composite swing requirements for helicopter attitude simulation, the actuator must possess a large stroke. At the same time the pneumatic system has a large compressibility and limited attitude control accuracy9,10; Furthermore, leather bladder actuators suffer from inherent limitations in terms of longevity and reliability.

Simulated motion platforms find extensive application in the training and testing of ships, vehicles, aircraft, and other equipment. Currently, various types of parallel mechanisms are utilized for this purpose11,12,13,14,15,16,17,18,19,20, including main parallel mechanisms, redundant parallel mechanisms, series and series-parallel mechanisms,21,22and non-series parallel mechanisms. The drive elements of the series structure are connected serially in a head-to-tail fashion, with the output of each front mechanism being the input to the rear mechanism19. Figure 2 shows the dynamic flight simulator developed by ETC Company in the United States3, which realizes the pitch and roll action of the platform through two driving motors, and possesses three degrees of freedom for motion simulation.

Fig. 2
figure 2

dynamic flight simulator.

This tandem motion mechanism boasts a compact design, with its two-way swing exhibiting relative independence, and the compound swing requiring no complex motion resolution. Nonetheless, its spatial arrangement is asymmetrical, and its drive load capacity is relatively limited23,24,25.

Based on the characteristics of the suspension mechanism, including the limited vertical working space, high load capacity requirements, and the medium center of gravity, this paper proposes a redundant cross-shaft series and parallel swing mechanism26,27,28. This design integrates the advantages of both series and parallel mechanisms, offering a symmetrical structure, high stiffness, a compact and flexible layout, and enhanced load-bearing capacity29,30. Furthermore, it effectively reduces the vertical space required for operation.

To improve the stability of the mechanism, a force/position hybrid control strategy is implemented. This approach combines the benefits of both force control and position control, allowing for more precise regulation of the system’s behavior under varying loads and external disturbances. The force/position hybrid control not only enhances the system’s dynamic performance but also ensures the stability and reliability of the mechanism during operation, even in complex conditions.

Initially, the rotary swing platform’s 3D model was constructed using SolidWorks. Subsequently, an analysis was conducted on the kinematic relationship among the drive space, joint space, and platform attitude. Additionally, the loop and its dynamics were analyzed, followed by simulation experiments.

Three-degree-of-freedom kinematic mechanism design

The three-degree-of-freedom motion mechanism is a tandem structure consisting of a slewing support, a suspension bracket, a cross shaft, a swing frame, and a servo-electric cylinder. As a driving part, the servo electric cylinder forms a triangular loop structure with the bidirectional swing mechanism of the cross shaft, the suspension bracket or the swing frame. The cross shaft structure ensures the independence of the rolling and pitching joints’ degrees of freedom, thus preventing internal force coupling within each degree of freedom of the drive space. The servo-electric cylinder employs a symmetrical arrangement and redundant drive control method, with the active cylinder operating in position mode to deliver precise position output, while the slave cylinder operates in force control mode to enhance overall motion coordination by optimizing the output force distribution between the two cylinders.

Fig. 3
figure 3

Structure diagram of three degree of freedom rotary swinging platform.

The three-dimensional solid model of the three-degree-of-freedom motion mechanism is shown in Fig. 3. The degrees of freedom of the mechanism can be calculated according to Kutzbach-Gluebler formula:

$$F{\text{=}}d(n-m-1)+\sum\limits_{{{\text{i}}=1}}^{m} {{f_{\text{i}}}} +\mu -g=3$$
(1)

In the formula:\({\text{F}}\) number of freedom;

\({\text{d}}\) Order of mechanism,6;

\({\text{n}}\) Total number of organizational components,12;

\({\text{m}}\) Number of Kinematic pairs of the mechanism,15;

\({{\text{f}}_i}\) Relative degrees of freedom of the ith Kinematic pair in the mechanism,1;

\({\text{\varvec{\upmu}}}\) Number of excess restraints,12;

\({\text{g}}\) Number of local degrees of freedom,0;

Mechanism kinematics analysis

The kinematic analysis of the moving platform begins with establishing the relationship between the joint space and platform attitude by solving the chi-square transformation matrix and quaternion matrix of the mechanism. Subsequently, the relationship between the drive space and the joint space is established by the closed-loop vector method, yielding the kinematic equations of the system.

Homogeneous transformation matrix

In this paper, the focus lies predominantly on analyzing the platform’s attitude, with the swing frame securely affixed to the cabin. To streamline the analysis, the swing frame’s attitude is substituted with that of the cabin, thus representing the moving platform’s attitude. The engine room coordinate system is repositioned to the swing center, the suspension support, cross shaft and swing frame are separated from the entire machine, forming a standard series three-link mechanism. The coordinate system of each component is shown in Fig. 4.

Fig. 4
figure 4

Three degrees of freedom rotary swing platform. (a) Rotary swing platform coordinate system. (b) Schematic diagram of three-degree-of-freedom rotary swinging platform mechanism.

Each member rotates around the Z-axis of its respective coordinate system. The rotation angles of the suspension bracket, cross-shaft, and swing frame are denoted as 1, 2, and 3 respectively, and are defined as positive in the counterclockwise direction.

In Fig. 4, \({O_0} - {X_0}{Y_0}{Z_0}\) represents the fixed coordinate system, firmly attached to fixed platform.\({O_1} - {X_1}{Y_1}{Z_1}\) is solidly connected with the suspension bracket, which is obtained by rotating \({\theta _1}\) the fixed reference system around its own Z-axis. Therefore, the chi-square transformation matrix of the suspension bracket relative to the fixed coordinate system is:

$${T_{\text{1}}}={}^{0}{A_1}=Rot({\text{Z,}}{\theta _1})=\left[ {\begin{array}{*{20}{c}} {{\text{c}}{\theta _{\text{1}}}}&{ - {\text{s}}{\theta _1}}&0&0 \\ {{\text{s}}{\theta _{\text{1}}}}&{{\text{c}}{\theta _1}}&0&0 \\ 0&0&1&0 \\ 0&0&0&1 \end{array}} \right]$$
(2)

In the given text, \(\cos {\theta _1}\)is represented in abbreviated form\(c{\theta _1}\), \(\sin {\theta _1}\)is also abbreviated as\(s{\theta _1}\), and all subsequent trigonometric functions mentioned in the text are expressed in their abbreviated forms.

\({\theta _2} - {X_2}{Y_2}{Z_2}\)is solidly connected to the cross-axis and is obtained by \({\theta _1} - {X_1}{Y_1}{Z_1}\) moving d along its own Z-axis, followed by a -90° rotation around its own Y-axis, and then a \({\theta _2}\)rotation around its own Z-axis. Consequently, the chi-square transformation matrix of the cross-axis with respect to the fixed coordinate system is:

$$\begin{gathered} {T_2}={T_1}{}^{1}{A_2}={T_1}Trans(0,0,{d_1})Rot({\text{Y}}, - 90)Rot({\text{Z}},{\theta _2}) \hfill \\ _{{\mathop {}\limits^{{}} }}\mathop {_{{}}}\limits_{{}} =\left[ {\begin{array}{*{20}{c}} { - {\text{s}}{\theta _1}{\text{s}}{\theta _2}}&{ - {\text{s}}{\theta _1}{\text{c}}{\theta _2}}&{ - {\text{c}}{\theta _1}}&0 \\ {{\text{c}}{\theta _1}{\text{s}}{\theta _2}}&{{\text{c}}{\theta _1}{\text{c}}{\theta _2}}&{ - {\text{s}}{\theta _1}}&0 \\ {{\text{c}}{\theta _2}}&{ - {\text{s}}{\theta _2}}&0&{{d_1}} \\ 0&0&0&1 \end{array}} \right] \hfill \\ \end{gathered}$$
(3)

\({\theta _3} - {X_3}{Y_3}{Z_3}\) represents the coordinate system of the motion platform, which is solidly connected with the swing frame.It is obtained by rotating \({\theta _2} - {X_2}{Y_2}{Z_2}\) around its own X-axis by -90°, followed by \({\theta _3}\)rotation around its own Z-axis. Hence, the chi-square transformation matrix of the swing frame with respect to the fixed coordinate system is:

$$\begin{gathered} {T_{\text{3}}}={T_2}{}^{2}{A_3}={T_2}Rot({\text{X}}, - 90)Rot({\text{Z}},{\theta _3}) \hfill \\ _{{\mathop {}\limits^{{}} }}\mathop {_{{}}}\limits_{{}} =\left[ {\begin{array}{*{20}{c}} { - {\text{s}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3}+{\text{c}}{\theta _1}{\text{s}}{\theta _3}}&{{\text{s}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3}+{\text{c}}{\theta _1}{\text{c}}{\theta _3}}&{ - {\text{s}}{\theta _1}{\text{c}}{\theta _2}}&0 \\ {{\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3}+{\text{s}}{\theta _1}{\text{s}}{\theta _3}}&{ - {\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3}+{\text{s}}{\theta _1}{\text{c}}{\theta _3}}&{{\text{c}}{\theta _1}{\text{c}}{\theta _2}}&0 \\ {{\text{c}}{\theta _2}{\text{c}}{\theta _3}}&{ - {\text{c}}{\theta _2}{\text{s}}{\theta _3}}&{ - {\text{s}}{\theta _2}}&{{d_1}} \\ 0&0&0&1 \end{array}} \right] \hfill \\ \end{gathered}$$
(4)

Quaternionic coordinate transformation matrix

The chi-square transformation matrix represents the position of the moving platform concerning a fixed coordinate system. However, for helicopter motion simulation, the position change of the moving platform relative to its own coordinate system holds greater significance. Therefore, in order to characterize the attitude change of the moving platform, quaternions are introduced to describe the attitude of the moving platform.

Quaternions consist of one real number and three imaginary numbers31,32:

$$q={q_{\text{0}}}+{q_{\text{1}}}\varvec{i}+{q_{\text{2}}}\varvec{j}+{q_{\text{3}}}\varvec{k}$$
(5)

When the platform attitude is changed, the rotation matrix of the quaternion is33:

$$M=\left[ {\begin{array}{*{20}{c}} {{q_{\text{0}}}^{{\text{2}}}+{q_{\text{1}}}^{{\text{2}}} - {q_{\text{2}}}^{{\text{2}}} - {q_{\text{3}}}^{{\text{2}}}}&{{\text{2}}({q_{\text{1}}}{q_{\text{2}}} - {q_{\text{0}}}{q_{\text{3}}})}&{{\text{2}}({q_{\text{1}}}{q_{\text{3}}}+{q_{\text{0}}}{q_{\text{2}}})} \\ {{\text{2}}({q_{\text{1}}}{q_{\text{2}}}+{q_{\text{0}}}{q_{\text{3}}})}&{{q_{\text{0}}}^{{\text{2}}} - {q_{\text{1}}}^{{\text{2}}}+{q_{\text{2}}}^{{\text{2}}} - {q_{\text{3}}}^{{\text{2}}}}&{{\text{2}}({q_{\text{2}}}{q_{\text{3}}} - {q_{\text{0}}}{q_{\text{1}}})} \\ {{\text{2}}({q_{\text{1}}}{q_{\text{3}}} - {q_{\text{0}}}{q_{\text{2}}})}&{{\text{2}}({q_{\text{2}}}{q_{\text{3}}}+{q_{\text{0}}}{q_{\text{1}}})}&{{q_{\text{0}}}^{{\text{2}}} - {q_{\text{1}}}^{{\text{2}}} - {q_{\text{2}}}^{{\text{2}}}+{q_{\text{3}}}^{{\text{2}}}} \end{array}} \right]$$
(6)

Since the movement of the platform is dynamic at all times, the quaternion matrix M undergoes constant change. Quaternion is a function that evolves with time34. The quaternion differential equation is established as follows:

$$\mathop Q\limits^{\cdot } =\frac{1}{2}Q\omega$$
(7)

where \(\omega\) represents the angular rate of rotation about the axis in a fixed coordinate system fixed to the platform, obtained by expanding Eq. (8):

$$\left[ \begin{gathered} \mathop {{q_1}}\limits^{\cdot } \hfill \\ \mathop {{q_1}}\limits^{\cdot } \hfill \\ \mathop {{q_2}}\limits^{\cdot } \hfill \\ \mathop {{q_3}}\limits^{\cdot } \hfill \\ \end{gathered} \right]=\frac{1}{2}\left[ {\begin{array}{*{20}{c}} 0&{ - {\omega _{\text{\varvec{\upgamma}}}}}&{ - {\omega _{\text{\varvec{\upbeta}}}}}&{ - {\omega _{\text{\varvec{\upalpha}}}}} \\ {{\omega _{\text{\varvec{\upgamma}}}}}&0&{{\omega _{\text{\varvec{\upalpha}}}}}&{ - {\omega _{\text{\varvec{\upbeta}}}}} \\ {{\omega _{\text{\varvec{\upbeta}}}}}&{ - {\omega _{\text{\varvec{\upalpha}}}}}&0&{{\omega _{\text{\varvec{\upgamma}}}}} \\ {{\omega _{\text{\varvec{\upalpha}}}}}&{ - {\omega _{\text{\varvec{\upbeta}}}}}&{ - {\omega _{\text{\varvec{\upgamma}}}}}&0 \end{array}} \right]\left[ \begin{gathered} {q_0} \hfill \\ {q_1} \hfill \\ {q_2} \hfill \\ {q_3} \hfill \\ \end{gathered} \right]$$
(8)

where \({\omega _\alpha }\), \({\omega _\beta }\), and \({\omega _\gamma }\) are the angular rates of rotation about the three axes in the coordinate system of the motion platform. Using the first-order Lunger-Kutta method, the updated quaternion can be obtained as:

$${\left[ \begin{gathered} {q_0} \hfill \\ {q_1} \hfill \\ {q_2} \hfill \\ {q_3} \hfill \\ \end{gathered} \right]_{{\text{t+\varvec{\Delta}t}}}}={\left[ \begin{gathered} {q_0} \hfill \\ {q_1} \hfill \\ {q_2} \hfill \\ {q_3} \hfill \\ \end{gathered} \right]_{\text{t}}}+\frac{{\Delta t}}{2}\left[ \begin{gathered} - {\omega _{\text{\varvec{\upgamma}}}}{q_1} - {\omega _{\text{\varvec{\upbeta}}}}{q_2} - {\omega _{\text{\varvec{\upalpha}}}}{q_3} \hfill \\ {\omega _{\text{\varvec{\upgamma}}}}{q_0} - {\omega _{\text{\varvec{\upbeta}}}}{q_3}+{\omega _{\text{\varvec{\upalpha}}}}{q_2} \hfill \\ {\omega _{\text{\varvec{\upgamma}}}}{q_3}+{\omega _{\text{\varvec{\upbeta}}}}{q_0} - {\omega _{\text{\varvec{\upalpha}}}}{q_1} \hfill \\ - {\omega _{\text{\varvec{\upgamma}}}}{q_2}+{\omega _{\text{\varvec{\upbeta}}}}{q_1}+{\omega _{\text{\varvec{\upalpha}}}}{q_0} \hfill \\ \end{gathered} \right]$$
(9)

Where, t and \(t+\Delta t\) represent the current and next time of attitude solution respectively, and only 3 angular rates around the axis are needed to obtain the updated quaternion matrix.

Relationship between joint space and platform stance

Slewing joints, rolling joints and pitching joints together form the joint space of the three-degree-of-freedom slewing platform, and changes in the joint space will directly impact the platform attitude. In the initial state, the attitude transformation matrix \({M_0}\) of the moving platform with respect to the fixed coordinate system is:

$${M_{\text{0}}}=\left[ {\begin{array}{*{20}{c}} {\text{0}}&{\text{1}}&{\text{0}} \\ {\text{0}}&{\text{0}}&{\text{1}} \\ {\text{1}}&{\text{0}}&{\text{0}} \end{array}} \right]$$
(10)

From the chi-square transformation matrix and the rotation matrix of the quaternion, one can establish the relationship between the joint rotation angle and the rotation matrix of the quaternion as:

$$T_{3}^{{3{\text{x}}3}}={M_0}M$$
(11)

where \(T_{3}^{{3{\text{x}}3}}\) is the rotation matrix in the chi-square transformation matrix \({T_3}\).

$${T_{\text{3}}}^{{3 \times 3}}=\left[ {\begin{array}{*{20}{c}} { - {\text{s}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3}+{\text{c}}{\theta _1}{\text{s}}{\theta _3}}&{{\text{s}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3}+{\text{c}}{\theta _1}{\text{c}}{\theta _3}}&{ - {\text{s}}{\theta _1}{\text{c}}{\theta _2}} \\ {{\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3}+{\text{s}}{\theta _1}{\text{s}}{\theta _3}}&{ - {\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3}+{\text{s}}{\theta _1}{\text{c}}{\theta _3}}&{{\text{c}}{\theta _1}{\text{c}}{\theta _2}} \\ {{\text{c}}{\theta _2}{\text{c}}{\theta _3}}&{ - {\text{c}}{\theta _2}{\text{s}}{\theta _3}}&{ - {\text{s}}{\theta _2}} \end{array}} \right]$$
(12)

Different from the kinematic solution of tandem robots, as a rescue helicopter simulation platform, the description of the end position of the three-degree-of-freedom slewing and swinging platform needs to be referenced to the coordinate system with the kinematic platform.The yaw, roll, and pitch angles are commonly employed for the attitude description, offering greater intuitive significance. The attitude of the moving platform is described by yaw angle \(\gamma\), roll angle \(\beta\), and pitch angle \(\alpha\).

The attitude angle is related to the quaternion as35:

$$\left\{ \begin{gathered} \gamma =\arctan 2(2({q_{\text{0}}}{q_1}+{q_2}{q_3}),1 - 2({q_1}^{2}+{q_2}^{2})) \hfill \\ \beta =\arcsin 2({q_{\text{0}}}{q_2} - {q_1}{q_3}) \hfill \\ \alpha =\arctan 2(2({q_{\text{0}}}{q_3}+{q_1}{q_2}),1 - 2({q_2}^{2}+{q_3}^{2})) \hfill \\ \end{gathered} \right.$$
(13)

\({\theta _1}\) represents the rotation angle of the slewing joint, \({\theta _2}\) denotes the rotation angle of the rolling joint, and \({\theta _3}\) signifies the rotation angle of the pitching joint. Given the motion angles of the slewing joint, rolling joint, and pitching joint of the three-degree-of-freedom slewing swing platform, the joint Eq. (11) and Eq. (13) can be obtained to obtain the slewing swing platform attitude equation as:

$$\left\{ \begin{gathered} \gamma =\arctan 2({\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3}+{\text{s}}{\theta _1}{\text{c}}{\theta _3},{\text{c}}{\theta _1}{\text{c}}{\theta _2}) \hfill \\ \beta =\arcsin ({\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3} - {\text{s}}{\theta _1}{\text{s}}{\theta _3}) \hfill \\ \alpha =\arctan \frac{{{\text{s}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3}+{\text{c}}{\theta _1}{\text{s}}{\theta _3}}}{{{\text{c}}{\theta _2}{\text{c}}{\theta _3}}} \hfill \\ \end{gathered} \right.$$
(14)

By derivation of Eq. (14), the velocity equation of the swinging platform can be obtained as follows:

$$\left\{ \begin{gathered} \mathop \gamma \limits^{ \cdot } ={\operatorname{c} ^2}\gamma \left( {{{\mathop \theta \limits^{ \cdot } }_1}\frac{{{\text{c}}{\theta _3}}}{{{{\text{c}}^2}{\theta _1}{\text{c}}{\theta _2}}}+{{\mathop \theta \limits^{ \cdot } }_2}\frac{{{\text{s}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3}+{\text{c}}{\theta _1}{\text{s}}{\theta _3}}}{{{\text{c}}{\theta _1}{{\text{c}}^2}{\theta _2}}}+{{\mathop \theta \limits^{ \cdot } }_3}\frac{{{\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3} - {\text{s}}{\theta _1}{\text{s}}{\theta _3}}}{{{\text{c}}{\theta _1}{\text{c}}{\theta _2}}}} \right) \hfill \\ \mathop \beta \limits^{ \cdot } =\frac{1}{{{\text{c}}{\theta _2}}}\left[ {{{\mathop \theta \limits^{ \cdot } }_1}( - {\text{s}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3} - {\text{c}}{\theta _1}{\text{s}}{\theta _3})+{{\mathop \theta \limits^{ \cdot } }_2}{\text{c}}{\theta _1}{\text{c}}{\theta _2}{\text{c}}{\theta _3} - {{\mathop \theta \limits^{ \cdot } }_3}{\text{(c}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3} - {\text{s}}{\theta _1}{\text{c}}{\theta _3})} \right] \hfill \\ \mathop \alpha \limits^{ \cdot } ={\operatorname{c} ^2}\alpha \left( {{{\mathop \theta \limits^{ \cdot } }_1}\frac{{{\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3} - {\text{s}}{\theta _1}{\text{s}}{\theta _3}}}{{{\text{c}}{\theta _2}{\text{c}}{\theta _3}}}+{{\mathop \theta \limits^{ \cdot } }_2}\frac{{{\text{s}}{\theta _1}{\text{c}}{\theta _3}+{\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3}}}{{{{\text{c}}^2}{\theta _2}{\text{c}}{\theta _3}}}+{{\mathop \theta \limits^{ \cdot } }_3}\frac{{{\text{c}}{\theta _1}}}{{{\text{c}}{\theta _2}{{\text{c}}^2}{\theta _3}}}} \right) \hfill \\ \end{gathered} \right.$$
(15)

By derivation of Eq. (15), the acceleration equation of the swinging platform can be obtained as follows:

$$\left\{ \begin{gathered} \mathop \gamma \limits^{{ \cdot \cdot }} = - 2{\mathop \gamma \limits^{ \cdot 2 } }\tan \gamma +{\operatorname{c} ^2}\gamma ({\mathop \theta \limits^{{ \cdot \cdot }} _1}{J_1}+{\mathop \theta \limits^{ \cdot } _1}\mathop {{J_1}}\limits^{ \cdot } +{\mathop \theta \limits^{{ \cdot \cdot }} _2}{J_2}+{\mathop \theta \limits^{ \cdot } _2}\mathop {{J_2}}\limits^{ \cdot } +{\mathop \theta \limits^{{ \cdot \cdot }} _3}{J_3}+{\mathop \theta \limits^{ \cdot } _3}\mathop {{J_2}}\limits^{ \cdot } ) \hfill \\ \mathop \beta \limits^{{ \cdot \cdot }} =\frac{1}{{{\text{c}}{\theta _2}}}(\mathop \beta \limits^{ \cdot } {\mathop \theta \limits^{ \cdot } _2}{\text{s}}{\theta _2}+{\mathop \theta \limits^{{ \cdot \cdot }} _1}{J_4}+{\mathop \theta \limits^{ \cdot } _1}\mathop {{J_4}}\limits^{ \cdot } +{\mathop \theta \limits^{{ \cdot \cdot }} _2}{J_5}+{\mathop \theta \limits^{ \cdot } _2}\mathop {{J_5}}\limits^{ \cdot } +{\mathop \theta \limits^{{ \cdot \cdot }} _3}{J_6}+{\mathop \theta \limits^{ \cdot } _3}\mathop {{J_6}}\limits^{ \cdot } ) \hfill \\ \mathop \alpha \limits^{{ \cdot \cdot }} = - 2{\mathop \alpha \limits^{ \cdot 2 }} \tan \alpha +{\operatorname{c} ^2}\alpha ({\mathop \theta \limits^{{ \cdot \cdot }} _1}{J_7}+{\mathop \theta \limits^{ \cdot } _1}\mathop {{J_7}}\limits^{ \cdot } +{\mathop \theta \limits^{{ \cdot \cdot }} _2}{J_8}+{\mathop \theta \limits^{ \cdot } _2}\mathop {{J_8}}\limits^{ \cdot } +{\mathop \theta \limits^{{ \cdot \cdot }} _3}{J_9}+{\mathop \theta \limits^{ \cdot } _3}\mathop {{J_9}}\limits^{ \cdot } ) \hfill \\ \end{gathered} \right.$$
(16)

In the formula:

$$\left\{ \begin{gathered} {J_1}=\frac{{{\text{c}}{\theta _3}}}{{{{\text{c}}^2}{\theta _1}{\text{c}}{\theta _2}}} \hfill \\ {J_2}=\frac{{{\text{s}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3}+{\text{c}}{\theta _1}{\text{s}}{\theta _3}}}{{{\text{c}}{\theta _1}{{\text{c}}^2}{\theta _2}}} \hfill \\ {J_3}=\frac{{{\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3} - {\text{s}}{\theta _1}{\text{s}}{\theta _3}}}{{{\text{c}}{\theta _1}{\text{c}}{\theta _2}}} \hfill \\ {J_4}= - {\text{s}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3} - {\text{c}}{\theta _1}{\text{s}}{\theta _3} \hfill \\ {J_5}={\text{c}}{\theta _1}{\text{c}}{\theta _2}{\text{c}}{\theta _3} \hfill \\ {J_6}={\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3} - {\text{s}}{\theta _1}{\text{c}}{\theta _3} \hfill \\ {J_7}=\frac{{{\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3} - {\text{s}}{\theta _1}{\text{s}}{\theta _3}}}{{{\text{c}}{\theta _2}{\text{c}}{\theta _3}}} \hfill \\ {J_8}=\frac{{{\text{s}}{\theta _1}{\text{c}}{\theta _3}+{\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3}}}{{{{\text{c}}^2}{\theta _2}{\text{c}}{\theta _3}}} \hfill \\ {J_9}=\frac{{{\text{c}}{\theta _1}}}{{{\text{c}}{\theta _2}{{\text{c}}^2}{\theta _3}}} \hfill \\ \end{gathered} \right.$$
(17)
$$\left\{ \begin{gathered} \mathop {{J_1}}\limits^{\cdot } ={\mathop \theta \limits^{\cdot } _1}\frac{{{\text{2s}}{\theta _1}{\text{c}}{\theta _3}}}{{{{\text{c}}^3}{\theta _1}{\text{c}}{\theta _2}}}+{\mathop \theta \limits^{\cdot } _2}\frac{{{\text{s}}{\theta _2}{\text{c}}{\theta _3}}}{{{{\text{c}}^2}{\theta _1}{{\text{c}}^2}{\theta _2}}}+{\mathop \theta \limits^{\cdot } _3}\frac{{{\text{s}}{\theta _3}}}{{{{\text{c}}^2}{\theta _1}{\text{c}}{\theta _2}}} \hfill \\ \mathop {{J_2}}\limits^{\cdot } ={\mathop \theta \limits^{\cdot } _1}\frac{{{\text{s}}{\theta _2}{\text{c}}{\theta _3}}}{{{{\text{c}}^2}{\theta _1}{{\text{c}}^2}{\theta _2}}}+{\mathop \theta \limits^{\cdot } _2}\frac{{{\text{s}}{\theta _1}{\text{c}}{\theta _3}+\operatorname{s} {\theta _1}{{\text{s}}^2}{\theta _2}{\text{c}}{\theta _3}+2{\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3}}}{{{\text{c}}{\theta _1}{{\text{c}}^3}{\theta _2}}}+{\mathop \theta \limits^{\cdot } _3}\frac{{{\text{c}}{\theta _1}{\text{c}}{\theta _3} - {\text{s}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3}}}{{{\text{c}}{\theta _1}{{\text{c}}^2}{\theta _2}}} \hfill \\ \mathop {{J_3}}\limits^{\cdot } ={\mathop \theta \limits^{\cdot } _1}\frac{{ - {\text{s}}{\theta _3}}}{{{{\text{c}}^2}{\theta _1}{\text{c}}{\theta _2}}}+{\mathop \theta \limits^{\cdot } _2}\frac{{{\text{c}}{\theta _1}{\text{c}}{\theta _3} - {\text{s}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3}}}{{{\text{c}}{\theta _1}{{\text{c}}^2}{\theta _2}}} - {\mathop \theta \limits^{\cdot } _3}\frac{{{\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3}{\text{+s}}{\theta _1}{\text{c}}{\theta _3}}}{{{\text{c}}{\theta _1}{\text{c}}{\theta _2}}} \hfill \\ \mathop {{J_4}}\limits^{\cdot } ={\mathop \theta \limits^{\cdot } _1}({\text{s}}{\theta _1}{\text{s}}{\theta _3} - {\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3}) - {\mathop \theta \limits^{\cdot } _2}{\text{s}}{\theta _1}{\text{c}}{\theta _2}{\text{c}}{\theta _3}+{\mathop \theta \limits^{\cdot } _3}({\text{s}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3} - {\text{c}}{\theta _1}{\text{c}}{\theta _3}) \hfill \\ \mathop {{J_5}}\limits^{\cdot } = - {\mathop \theta \limits^{\cdot } _1}{\text{s}}{\theta _1}{\text{c}}{\theta _2}{\text{c}}{\theta _3} - {\mathop \theta \limits^{\cdot } _2}{\text{c}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3} - {\mathop \theta \limits^{\cdot } _3}{\text{c}}{\theta _1}{\text{c}}{\theta _2}{\text{s}}{\theta _3} \hfill \\ \mathop {{J_6}}\limits^{\cdot } = - {\mathop \theta \limits^{\cdot } _1}{\text{(s}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3}+{\text{c}}{\theta _1}{\text{c}}{\theta _3})+{\mathop \theta \limits^{\cdot } _2}{\text{c}}{\theta _1}{\text{c}}{\theta _2}{\text{s}}{\theta _3}+{\mathop \theta \limits^{\cdot } _3}{\text{(c}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3}+{\text{s}}{\theta _1}{\text{s}}{\theta _3}) \hfill \\ \mathop {{J_7}}\limits^{\cdot } = - {\mathop \theta \limits^{\cdot } _1}\frac{{{\text{s}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3}{\text{+c}}{\theta _1}{\text{s}}{\theta _3}}}{{{\text{c}}{\theta _2}{\text{c}}{\theta _3}}}+{\mathop \theta \limits^{\cdot } _2}\frac{{{\text{c}}{\theta _1}{\text{c}}{\theta _3} - {\text{s}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3}}}{{{{\text{c}}^2}{\theta _2}{\text{c}}{\theta _3}}} - {\mathop \theta \limits^{\cdot } _3}\frac{{{\text{s}}{\theta _1}}}{{{\text{c}}{\theta _2}{{\text{c}}^2}{\theta _3}}} \hfill \\ \mathop {{J_8}}\limits^{\cdot } ={\mathop \theta \limits^{\cdot } _1}\frac{{{\text{c}}{\theta _1}{\text{c}}{\theta _3} - {\text{s}}{\theta _1}{\text{s}}{\theta _2}{\text{s}}{\theta _3}{\text{+}}}}{{{{\text{c}}^2}{\theta _2}{\text{c}}{\theta _3}}}+{\mathop \theta \limits^{\cdot } _2}\frac{{{\text{c}}{\theta _1}{\text{s}}{\theta _3}+{\text{c}}{\theta _1}{{\text{s}}^2}{\theta _2}{\text{s}}{\theta _3}+2{\text{s}}{\theta _1}{\text{s}}{\theta _2}{\text{c}}{\theta _3}}}{{{{\text{c}}^2}{\theta _2}{\text{c}}{\theta _3}}}+{\mathop \theta \limits^{\cdot } _3}\frac{{{\text{c}}{\theta _1}{\text{s}}{\theta _2}}}{{{{\text{c}}^2}{\theta _2}{{\text{c}}^2}{\theta _3}}} \hfill \\ \mathop {{J_9}}\limits^{\cdot } = - {\mathop \theta \limits^{\cdot } _1}\frac{{{\text{s}}{\theta _1}}}{{{\text{c}}{\theta _2}{{\text{c}}^2}{\theta _3}}}+{\mathop \theta \limits^{\cdot } _2}\frac{{{\text{c}}{\theta _1}{\text{s}}{\theta _2}}}{{{{\text{c}}^2}{\theta _2}{{\text{c}}^2}{\theta _3}}}+{\mathop \theta \limits^{\cdot } _3}\frac{{{\text{2s}}{\theta _3}}}{{{\text{c}}{\theta _2}{{\text{c}}^3}{\theta _3}}} \hfill \\ \end{gathered} \right.$$
(18)

When the change in attitude angle of the three-degree-of-freedom slewing swing platform is known, the inverse kinematic equation can be obtained as:

$$\left\{ \begin{gathered} {\theta _1}= - \arcsin \frac{{2({q_2}{q_3} - {q_0}{q_1})}}{{\sqrt {1 - 4{{({q_1}{q_3}+{q_0}{q_2})}^2}} }} \hfill \\ {\theta _2}=\arcsin 2({q_1}{q_3}+{q_0}{q_2}) \hfill \\ {\theta _3}=\arcsin \frac{{ - 2({q_1}{q_2} - {q_0}{q_3})}}{{\sqrt {1 - 4{{({q_1}{q_3}+{q_0}{q_2})}^2}} }} \hfill \\ \end{gathered} \right.$$
(19)

The relationship between joint space and drive space

The suspension bracket, the cross shaft and the swing frame of the three-degree-of-freedom rotary swing platform are connected directly or indirectly through the servo electric cylinder to form a loop, facilitating the redundant control of the two joint movements of rolling and pitching, as shown in Fig. 5. \({H_1}\)and \({H_3}\) serve as master loops and \({H_2}\) and \({H_4}\) function as slave loops. In the loop, four servo-electric cylinders are driven by displacement to form the drive space for the slewing swing stage. O is the rotation center of the roll and pitch joints.

Fig. 5
figure 5

Loop structure sketch.

Given that the roll portion loops \({H_1}\), \({H_2}\) and the pitch portion loops \({H_3}\), \({H_4}\) do not affect each other, it is feasible to streamline the spatial closed-loop structure to a planar closed-loop mechanism. Kinematic analysis was performed using the closed-loop vector method, with the loop divided into two parts: roll and pitch.

Kinematic analysis of rolling part loop

The servo-electric cylinders in the loop are arranged symmetrically, with the master loop \({H_1}\) controlled by velocity and the slave loop \({H_2}\) controlled by force. Thus, the motion state of the master loop moving sub determines the motion state of the roll joint as well as the slave loop moving sub. A vector diagram illustrating the construction of a roll part loop is shown in Fig. 6. The point O coincides with the origin, \({R_1}\sim {R_4}\) represent the articulation points between the suspension bracket, the cross shaft and the servo electric cylinder, respectively. \({P_1}\) and \({P_2}\) denote respectively the moving pairs formed by the displacement of the servo electric cylinder through the push rod. The connection of the articulated points is denoted as vector\({L_1}\sim {L_6}\), with the length of each vector corresponding to \({l_1}\sim {l_6}\). The translational motion of the moving sub is converted into a rotation around the \(\:O\)-point through the loop, which drives the swing frame to realize the rolling motion.

Fig. 6
figure 6

Roll part loop vector diagram.

The main loop vector equation can be derived from the vector diagram as:

$${L_1}+{L_2}={L_3}$$
(20)

The slave loop vector equation is:

$${L_4}+{L_5}={L_6}$$
(21)

Equation (20) is expressed as the component equation in the \(\:{L}_{3}\) direction and perpendicular to the \(\:{L}_{3}\) direction as follows:

$$\left\{ \begin{gathered} {l_1}\cos \angle {R_1}O{R_2}+{l_2}\cos \angle O{R_1}{R_2}={l_3} \hfill \\ {l_1}\sin \angle {R_1}O{R_2}={l_2}\sin \angle O{R_1}{R_2} \hfill \\ \end{gathered} \right.$$
(22)

Equation (21) is expressed as the component equation in the \(\:{L}_{6}\) direction and perpendicular to the \(\:{L}_{6}\) direction as follows:

$$\left\{ \begin{gathered} {l_4}\cos \angle {R_3}O{R_4}+{l_5}\cos \angle O{R_3}{R_4}={l_6} \hfill \\ {l_4}\sin \angle {R_3}O{R_4}={l_5}\sin \angle O{R_3}{R_4} \hfill \\ \end{gathered} \right.$$
(23)

According to Eq. (22), it can be concluded that the angle of rolling joint during rolling is:

$${\theta _{\text{2}}}=\angle {R_1}O{R_2} - {\theta _R}=\arccos (\frac{{{l_1}^{2}+{l_3}^{2} - {l_2}^{2}}}{{2{l_1}{l_3}}}) - {\theta _R}$$
(24)

\({\theta _R}\) is the angle between \({L_1}\) and \({L_3}\) at the initial position, and the change length of the servo electric cylinder at the initial position is \(\Delta {L_2}=0\), that is, the rolling angle is 0°. At this time, \({l_1}=481.59\;mm\), \({l_2}=935\;mm\) and \({l_3}=1007.56\;mm\) are substituted into Eq. (24) to get\({\theta _R}={67.4^ \circ }\). When the servo electric cylinder push rod moves, the length of vector \({L_2}\) is \({l_2}\):

$${l_2}=\Delta {l_2}+935$$
(25)

The joint Eq. (24) and Eq. (25) provide the positive kinematic equation of the roll joint as:

$${\theta _{\text{2}}}=\arccos (\frac{{{l_1}^{2}+{l_3}^{2} - {{(\Delta {l_2}+935)}^2}}}{{2{l_1}{l_3}}}) - {\theta _{\text{R}}}$$
(26)

When the servo electric cylinder push rod moves, the displacement \(\Delta {l_5}\) of the moving pair from the loop is:

$$\Delta {l_5}={l_5} - 935$$
(27)

Through Eqs. (23), (26) and (27), the displacement \(\Delta {l_5}\) from the slave loop can be obtained:

$$\Delta {l_5}=\sqrt {{l_4}^{2}+{l_6}^{2} - 2{l_4}{l_6}cos({\theta _{\text{R}}} - {\theta _2})} - 935$$
(28)

By derivation of Eqs. (26) and (28), the angular velocity of the rolling joint and the velocity of the moving pair from the slave loop can be obtained as:

$$\mathop {{\theta _{\text{2}}}}\limits^{\cdot } =\frac{{(\Delta {l_2}+935){{\mathop {\Delta l}\limits^{\cdot } }_2}}}{{\sin ({\theta _2}+{\theta _R}){l_1}{l_3}}}$$
(29)
$$\mathop {\Delta {l_5}}\limits^{\cdot } = - \frac{{{l_4}{l_6}\mathop {{\theta _2}}\limits^{\cdot } \sin ({\theta _{\text{R}}} - {\theta _2})}}{{\Delta {l_5}+935}}$$
(30)

By derivation of Eqs. (29) and (30), the angular acceleration of the rolling joint and the acceleration of the moving pair from the slave loop can be obtained as follows:

$$\mathop {{\theta _{\text{2}}}}\limits^{{\cdot \cdot }} =\frac{{{{\mathop {\Delta {l_2}}\limits^{\cdot } }^2}+(\Delta {l_2}+935)\mathop {\Delta {l_2}}\limits^{{\cdot \cdot }} - {{\mathop {{\theta _2}}\limits^{\cdot } }^2}\cos ({\theta _2}+{\theta _R}){l_1}{l_3}}}{{\sin ({\theta _2}+{\theta _R}){l_1}{l_3}}}$$
(31)
$$\mathop {{\theta _{\text{2}}}}\limits^{{\cdot \cdot }} =\frac{{{{\mathop {\Delta {l_2}}\limits^{\cdot } }^2}+(\Delta {l_2}+935)\mathop {\Delta {l_2}}\limits^{{\cdot \cdot }} - {{\mathop {{\theta _2}}\limits^{\cdot } }^2}\cos ({\theta _2}+{\theta _R}){l_1}{l_3}}}{{\sin ({\theta _2}+{\theta _R}){l_1}{l_3}}}$$
(32)

Kinematic analysis of pitch partial loops

The creation of the vector diagram of the pitch part of the loop is similar to the creation of the vector diagram of the roll part of the loop, as shown in Fig. 7. \({R_5}\sim {R_8}\) represent the hinge points between the swing frame, the cross shaft and the servo electric cylinder respectively. \({P_1}\) and \({P_2}\) denote the moving pairs constituted by servo-electric cylinders through pushrod displacement. The line at the hinged point is represented as vector \({S_1}\sim {S_6}\), with the corresponding length of each vector represented as \({s_1}\sim {s_6}\). The translation motion of the moving sub is converted into the rotation of the swing frame around the point O by means of the loop.

Fig. 7
figure 7

Tilt part loop vector diagram.

The analysis and calculation of the vector diagram of the pitching closed-loop mechanism follow the same approach as for the roll part, and the rotation Angle \(\:{\theta\:}_{3}\) of the pitching joint is obtained:

$${\theta _{\text{3}}}={\theta _{\text{P}}} - \angle {R_5}O{R_6}={\theta _{\text{P}}} - \arccos (\frac{{{s_1}^{2}+{s_3}^{2} - {s_2}^{2}}}{{2{s_1}{s_3}}})$$
(33)

\({\theta _P}\)is the angle between \({S_1}\) and \({S_2}\) at the initial position, the servo-electric cylinder change length\(\Delta {s_2}=0\),at the initial position, i.e., the pitch joint angle is\({0^ \circ }\),\({s_1}=481.59\;mm\), \({s_2}=935\;mm\), \({s_3}=1007.56\;mm\) and substituting into Eq. (33) to get \({\theta _P}={67.4^ \circ }\). When the servo electric cylinder push rod moves, the length of vector \({S_2}\) is \({s_2}\):

$${s_2}=\Delta {s_2}+935$$
(34)

Combining Eqs. (33) and (34) yields the positive kinematic equations for the pitching part as:

$${\theta _{\text{3}}}={\theta _{\text{P}}} - \arccos (\frac{{{s_1}^{2}+{s_3}^{2} - {{(\Delta {s_2}+935)}^2}}}{{2{s_1}{s_3}}})$$
(35)

Moving sub-displacement \(\Delta {s_5}\) from the loop is:

$$\Delta {s_5}=\sqrt {{s_4}^{2}+{s_6}^{2} - 2{s_4}{s_6}cos({\theta _{\text{R}}}+{\theta _3})} - 935$$
(36)

By derivation of Eqs. (35) and (36), the angular velocity of the pitching joint and the velocity of the moving pair from the slave loop are:

$$\mathop {{\theta _3}}\limits^{\cdot } = - \frac{{(\Delta {s_2}+935)\mathop {\Delta {s_2}}\limits^{\cdot } }}{{\sin ({\theta _{\text{P}}} - {\theta _3}){s_1}{s_3}}}$$
(37)
$$\mathop {\Delta {s_5}}\limits^{\cdot } =\frac{{{s_4}{s_6}\mathop {{\theta _2}}\limits^{\cdot } \sin ({\theta _{\text{p}}}+{\theta _3})}}{{\Delta {s_5}+935}}$$
(38)

By derivation of Eqs. (37) and (38), the angular acceleration of the pitching joint and the motion acceleration of the moving pair from the slave loop are:

$$\mathop {{\theta _{\text{3}}}}\limits^{{\cdot \cdot }} =\frac{{{{\mathop { - \Delta {s_2}}\limits^{\cdot } }^2} - (\Delta {s_2}+935)\mathop {\Delta {s_2}}\limits^{{\cdot \cdot }} +{{\mathop {{\theta _3}}\limits^{\cdot } }^2}\cos ({\theta _{\text{P}}} - {\theta _3}){s_1}{s_3}}}{{\sin ({\theta _{\text{P}}} - {\theta _3}){s_1}{s_3}}}$$
(39)
$$\mathop {\Delta {s_5}}\limits^{{\cdot \cdot }} =\frac{{{s_4}{s_6}{{\mathop {{\theta _2}}\limits^{\cdot } }^2}\cos ({\theta _{\text{p}}}+{\theta _3})+{s_4}{s_6}\mathop {{\theta _2}}\limits^{{\cdot \cdot }} \sin ({\theta _{\text{p}}}+{\theta _3}) - {{\mathop {\Delta {s_5}}\limits^{\cdot } }^2}}}{{\Delta {s_5}+935}}$$
(40)

Mechanical dynamics analysis

For modeling the dynamics of a three-degree-of-freedom swing mechanism, the velocity of each member relative to itself is first solved. Subsequently, the Lagrangian dynamics equations of the system are derived by solving the kinetic energy and potential energy of the system.

Solving for the angular velocity of a member relative to itself

From the chi-square transformation matrix in the kinematic analysis, we get:

$${}^{{\text{a}}}{A_{\text{b}}}=\left[ {\begin{array}{*{20}{c}} {{}^{{\text{a}}}{R_{\text{b}}}}&{{}^{{\text{a}}}{P_{\text{b}}}} \\ 0&1 \end{array}} \right]$$
(41)

where \({}^{a}{R_b}\) denotes the coordinate rotation matrix from coordinate system \(\left\{ b \right\}\) to coordinate system \(\left\{ a \right\}\); and \({}^{a}{P_b}\)is the position vector from coordinate system \(\left\{ b \right\}\) to coordinate system \(\left\{ a \right\}\).

The angular velocity of each member relative to itself is solved according to the Newton-Euler recursive formula, with the angular velocity being:

$${\omega _{\text{b}}}={}^{{\text{b}}}{A_{\text{a}}}{\omega _{\text{a}}}+{}^{{\text{b}}}{Z_{\text{b}}}\mathop {{\theta _{\text{b}}}}\limits^{\cdot }$$
(42)

Solve the angular velocity of the suspension bracket, the cross shaft, and the swing frame relative to itself as:

$${\omega _1}={}^{1}{A_0}{\omega _0}+{}^{1}{Z_1}\mathop {{\theta _1}}\limits^{\cdot } ={(\begin{array}{*{20}{c}} 0&0&1 \end{array})^ \top }\mathop {{\theta _1}}\limits^{\cdot } ={(\begin{array}{*{20}{c}} 0&0&{\mathop {{\theta _1}}\limits^{\cdot } } \end{array})^ \top }$$
(43)
$$\begin{gathered} {\omega _2}={}^{2}{A_1}{\omega _1}+{}^{2}{Z_2}\mathop {{\theta _2}}\limits^{\cdot } \hfill \\ \mathop {}\nolimits^{{}} ={(\begin{array}{*{20}{c}} {{\text{c}}{\theta _2}}&{ - {\text{s}}{\theta _2}}&0 \end{array})^ \top }\mathop {{\theta _1}}\limits^{\cdot } +{(\begin{array}{*{20}{c}} 0&0&1 \end{array})^ \top }\mathop {{\theta _2}}\limits^{\cdot } \hfill \\ \mathop {}\nolimits^{{}} ={(\begin{array}{*{20}{c}} {\mathop {{\theta _1}}\limits^{\cdot } {\text{c}}{\theta _2}}&{ - \mathop {{\theta _1}}\limits^{\cdot } {\text{s}}{\theta _2}}&{\mathop {{\theta _2}}\limits^{\cdot } } \end{array})^ \top } \hfill \\ \end{gathered}$$
(44)
$$\begin{gathered} {\omega _3}={}^{3}{A_2}{\omega _2}+{}^{3}{Z_3}\mathop {{\theta _3}}\limits^{\cdot } \hfill \\ \mathop {}\nolimits^{{}} ={(\begin{array}{*{20}{c}} {\mathop {{\theta _1}}\limits^{\cdot } {\text{c}}{\theta _2}{\text{c}}{\theta _3} - \mathop {{\theta _2}}\limits^{\cdot } {\text{s}}{\theta _3}}&{ - \mathop {{\theta _1}}\limits^{\cdot } {\text{c}}{\theta _2}{\text{s}}{\theta _3} - \mathop {{\theta _2}}\limits^{\cdot } {\text{c}}{\theta _3}}&{ - \mathop {{\theta _1}}\limits^{\cdot } {\text{s}}{\theta _2}} \end{array})^ \top }+{(\begin{array}{*{20}{c}} 0&0&1 \end{array})^ \top }\mathop {{\theta _3}}\limits^{\cdot } \hfill \\ \mathop {}\nolimits^{{}} ={(\begin{array}{*{20}{c}} {\mathop {{\theta _1}}\limits^{\cdot } {\text{c}}{\theta _2}{\text{c}}{\theta _3} - \mathop {{\theta _2}}\limits^{\cdot } {\text{s}}{\theta _3}}&{ - \mathop {{\theta _1}}\limits^{\cdot } {\text{c}}{\theta _2}{\text{s}}{\theta _3} - \mathop {{\theta _2}}\limits^{\cdot } {\text{c}}{\theta _3}}&{\mathop {{\theta _3}}\limits^{\cdot } - \mathop {{\theta _1}}\limits^{\cdot } {\text{s}}{\theta _2}} \end{array})^ \top } \hfill \\ \end{gathered}$$
(45)

Lagrange’s kinetic equation

Kinetic energy of the system

In the three-degree-of-freedom rotary swing platform, the suspension bracket undergoes fixed-axis rotation, while the movement of the cross-axis and the swing frame entails fixed-point rotations. Therefore, the kinetic energy of the suspension bracket, the cross-axis, and the swing frame are as follows, respectively:

$${K_1}=\frac{1}{2}{\omega _1}^{T}{{\text{J}}_{\text{1}}}{\omega _1}=\frac{1}{2}\left( {\begin{array}{*{20}{c}} 0&0&{\mathop {{\theta _1}}\limits^{ \cdot } } \end{array}} \right)\left[ {\begin{array}{*{20}{c}} {{{\text{J}}_{{\text{1xx}}}}}&{{{\text{J}}_{{\text{1xy}}}}}&{{{\text{J}}_{{\text{1xz}}}}} \\ {{{\text{J}}_{{\text{1yx}}}}}&{{{\text{J}}_{{\text{1yy}}}}}&{{{\text{J}}_{{\text{1yz}}}}} \\ {{{\text{J}}_{{\text{1zx}}}}}&{{{\text{J}}_{{\text{1zy}}}}}&{{{\text{J}}_{{\text{1zz}}}}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} 0 \\ 0 \\ {\mathop {{\theta _1}}\limits^{ \bullet } } \end{array}} \right]=\frac{1}{2}{{\text{J}}_{{\text{1zz}}}}{\mathop {{\theta _1}}\limits^{ \cdot 2 }}$$
(46)
$${K_2}=\frac{1}{2}{\omega _2}^{ \top }{{\text{J}}_2}{\omega _2}=\frac{1}{2}(\begin{array}{*{20}{c}} {{\omega _{2{\text{x}}}}}&{{\omega _{2{\text{y}}}}}&{{\omega _{2{\text{z}}}}} \end{array})\left[ {\begin{array}{*{20}{c}} {{{\text{J}}_{{\text{2xx}}}}}&{{{\text{J}}_{{\text{2xy}}}}}&{{{\text{J}}_{{\text{2xz}}}}} \\ {{{\text{J}}_{{\text{2yx}}}}}&{{{\text{J}}_{{\text{2yy}}}}}&{{{\text{J}}_{{\text{2yz}}}}} \\ {{{\text{J}}_{{\text{2zx}}}}}&{{{\text{J}}_{{\text{2zy}}}}}&{{{\text{J}}_{{\text{2zz}}}}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{\omega _{2{\text{x}}}}} \\ {{\omega _{2{\text{y}}}}} \\ {{\omega _{2{\text{z}}}}} \end{array}} \right]$$
(47)
$${K_3}=\frac{1}{2}{\omega _3}^{ \top }{{\text{J}}_3}{\omega _3}=\frac{1}{2}(\begin{array}{*{20}{c}} {{\omega _{{\text{3x}}}}}&{{\omega _{{\text{3y}}}}}&{{\omega _{{\text{3z}}}}} \end{array})\left[ {\begin{array}{*{20}{c}} {{{\text{J}}_{{\text{3xx}}}}}&{{{\text{J}}_{{\text{3xy}}}}}&{{{\text{J}}_{{\text{3xz}}}}} \\ {{{\text{J}}_{{\text{3yx}}}}}&{{{\text{J}}_{{\text{3yy}}}}}&{{{\text{J}}_{{\text{3yz}}}}} \\ {{{\text{J}}_{{\text{3zx}}}}}&{{{\text{J}}_{{\text{3zy}}}}}&{{{\text{J}}_{{\text{3zz}}}}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{\omega _{{\text{3x}}}}} \\ {{\omega _{{\text{3y}}}}} \\ {{\omega _{{\text{3z}}}}} \end{array}} \right]$$
(48)

where the moment of inertia \({J_i}\) of each member can be obtained in Solidworks. The kinetic energy of the three-degree-of-freedom rotary swinging platform system is:

$$K={K_{\text{1}}}+{K_2}+{K_3}=\sum\limits_{{{\text{i}}=1}}^{3} {{K_{\text{i}}}}$$
(49)

Potential energy of the system

An object of mass \(\:m\) at height \(\:h\) has a potential energy of:

$$V=mgh$$
(50)

Therefore, the potential energy of the mass \(\:dm\) at position \({}^{i}r\) on the connecting rod i is:

$$dV= - {g^ \top }{T_{\text{i}}}{}^{{\text{i}}}rdm$$
(51)

In the formula:

$${g^ \top }=\left[ {\begin{array}{*{20}{c}} {{g_x}}&{{g_y}}&{{g_z}}&1 \end{array}} \right]$$
(52)

Integrating the above equation yields:

$${V_{\text{i}}}= - {m_{\text{i}}}{g^ \top }{T_{\text{i}}}{}^{{\text{i}}}{r_{\text{i}}}$$
(53)

where \({m_i}\) is the mass of connecting rod i and \({}^{i}{r_i}\) is the center of gravity position vector in the coordinate system of connecting rod i itself.

The potential energy of a three-degree-of-freedom slewing and swinging platform system is the algebraic sum of the potential energies of the components:

$$V=\sum\limits_{{{\text{i}}=1}}^{3} {{V_{\text{i}}}} =\sum\limits_{{{\text{i}}=1}}^{3} {( - {m_{\text{i}}}} {g^ \top }{T_{\text{i}}}{}^{{\text{i}}}{r_{\text{i}}})$$
(54)

Dynamic model of rotary oscillating platform

The Lagrangian function of the system is:

$$L=K - V=\sum\limits_{{{\text{i}}=1}}^{3} {{K_{\text{i}}}} +\sum\limits_{{{\text{i}}=1}}^{3} {( - {m_{\text{i}}}} {g^ \top }{T_{\text{i}}}{}^{{\text{i}}}{r_{\text{i}}})$$
(55)

Let the rotation angles\({\theta _1}\), \({\theta _2}\) and \({\theta _3}\)of the three-degree-of-freedom rotating platform be considered as generalized coordinates. The corresponding generalized velocities are represented by \({\theta _1}\), \({\theta _2}\) and\({\theta _3}\), while the generalized forces for the generalized coordinates \({\theta _i}\) be \({M_i}\). The torque expression obtained from the Lagrange equation is as follows:

$${M_{\text{i}}}=\frac{d}{{dt}}(\frac{{\partial L}}{{\partial \mathop {{\theta _{\text{i}}}}\limits^{\cdot } }}) - \frac{{\partial L}}{{\partial {\theta _{\text{i}}}}}\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {}&{} \end{array}}&{}&{}&{\begin{array}{*{20}{c}} {}&{({\text{i}}=1,2,3)} \end{array}} \end{array}$$
(56)

In the formula:

$$\frac{d}{{dt}}(\frac{{\partial L}}{{\partial \mathop {{\theta _{\text{i}}}}\limits^{\cdot } }})=\frac{{d{\omega _2}^{ \top }}}{{dt}}{J_2}(\frac{{\partial {\omega _2}}}{{\partial {\theta _{\text{i}}}}})+{\omega _2}^{ \top }{J_2}\frac{d}{{dt}}(\frac{{\partial {\omega _2}}}{{\partial {\theta _{\text{i}}}}})+\frac{{d{\omega _3}^{ \top }}}{{dt}}{J_3}(\frac{{\partial {\omega _3}}}{{\partial {\theta _{\text{i}}}}})+{\omega _3}^{ \top }{J_3}\frac{d}{{dt}}(\frac{{\partial {\omega _3}}}{{\partial {\theta _{\text{i}}}}})$$
(57)
$$\begin{gathered} \frac{{\partial L}}{{\partial {\theta _{\text{i}}}}}={\omega _2}^{ \top }{J_2}\frac{d}{{dt}}(\frac{{\partial {\omega _2}}}{{\partial {\theta _{\text{i}}}}})+{\omega _3}^{ \top }{J_3}\frac{d}{{dt}}(\frac{{\partial {\omega _3}}}{{\partial {\theta _{\text{i}}}}})+{m_1}{g^ \top }\frac{{\partial {T_1}}}{{\partial {\theta _{\text{i}}}}}{}^{1}{r_1} \hfill \\ \mathop {}\nolimits^{{}} \mathop {}\nolimits^{{}} +{m_2}{g^ \top }\frac{{\partial {T_2}}}{{\partial {\theta _{\text{i}}}}}{}^{2}{r_{\text{2}}}+{m_3}{g^ \top }\frac{{\partial {T_3}}}{{\partial {\theta _{\text{i}}}}}{}^{3}{r_{\text{3}}} \hfill \\ \end{gathered}$$
(58)

The rolling joint and pitching joint parts are designed with redundant drive, employing force control from the slave loop servo-electric cylinder, where the driving force equals that of the main loop servo-electric cylinder. Following the principle of equivalence, the driving force exerted by both sets of servo-electric cylinders in the master and slave loops is equivalent to the joint torque.

According to the relationship between force and torque, the corresponding relationship between the driving force \({F_1}\) and the equivalent driving torque \({M_2}\) of the servo-electric cylinder of the rolling part is established as:

$${F_1}=\frac{{{M_2}}}{{{l_3}\sin \angle O{R_1}{R_2}+{l_6}\sin \angle O{R_3}{R_4}}}$$
(59)

The correspondence between the driving force \({F_2}\) and the equivalent driving torque \({M_3}\) of the servo-electric cylinder in the pitching section is:

$${F_2}=\frac{{{M_3}}}{{{s_3}\sin \angle O{R_6}{R_5}+{s_6}\sin \angle O{R_8}{R_7}}}$$
(60)

Research on hybrid force-displacement control strategy

An accurate model of the motor control system is constructed by modelling and parameterising the current, speed and position loops of the servo motor. In order to enhance the dynamic response and stability of the system, a hybrid force/position control strategy is proposed. In this strategy, the non-redundant branch employs position control to determine the position of the swing mechanism, thereby ensuring accuracy. The redundant branch, on the other hand, utilises force control to optimise the force distribution and enhance the system stiffness. Simulation results demonstrate that this strategy can markedly improve the dynamic performance and control accuracy of the system.

Design of hybrid force-displacement control strategy

The cross-axis swing mechanism contains two degrees of freedom, four drive numbers, and the number of drives is larger than the number of degrees of freedom, so two drive branches are selected as position drives and two drive branches are force drives, and the output states of the position drives and force drives are fed back to the inputs of the drive joints in real time. As shown in Fig. 8, where li1,li2 is the desired value of the position input, li1’,li2’ is the actual feedback input value of the position-driven joints, fi1,fi2 is the desired value of the branch member force, and fi1’,fi2’ is the actual force state feedback of the branch member. fi1’,fi2’ are the desired values of the branch member forces, and fi1’,fi2’ are the actual feedback input values of the branch member force states.

Fig. 8
figure 8

Hybrid force/position control structure strategy.

Redundant drive control system simulation analysis

Position drive simulation result analysis

The motion attitude of the swing mechanism can be divided into two synergistic actions, pitch and roll, and each of the two synergistic actions is divided into six stages during the motion process: accelerated swing, uniform swing, decelerated swing, accelerated swing, uniform swing, decelerated swing. The inverse solution of the positional attitude is performed through the vehicle’s motion attitude to find out the expansion and contraction displacements of each electric cylinder of the swing mechanism, and the solved displacements are taken as the electric cylinder drive displacement function, and the drive displacement function curve is shown in Fig. 9. In the case of non-redundant drive with only position drive, the force on the drive branch can be derived by measuring the drive branch in pitch position and the drive branch in roll position, and the measured force is shown in Fig. 10.

Fig. 9
figure 9

Displacement drive function curve.

Fig. 10
figure 10

Position drive mode drive branch force curve. (a) The pitch position drives the branch stress curve (b) Roll position drive branch force curve.

Force/position control drive force simulation results analysis

In the case that the motion attitude of the swing mechanism is the same as the motion process state and the motion state of the position drive mode, a constant force F = 12,500 N is added to the pitch force drive branch and the roll force drive branch, and the direction of the force is the same as the axis direction of the force drive branch. Therefore, the swing mechanism forms a hybrid force/position redundancy drive, and the simulation results of the pitch position drive branch and the roll position drive branch are shown in Fig. 11. If a variable force is applied to the pitching and rolling force drive branches instead, and other conditions remain unchanged, the force drive function curves are shown in Fig. 12 to accomplish the two coordinated actions of the swing mechanism in pitching and rolling. Through the variable force driving function applied to the force driving branch, the swing mechanism force/position hybrid redundancy drive to find out the force on the driving branch of the pitching position and the driving branch of the rolling position, and the simulation curve is shown in Fig. 13.

Fig. 11
figure 11

Constant force/bit drive mode Position drive branch force curve. (a) The pitch position drives the branch force curve (b) Roll position drive branch force curve.

Fig. 12
figure 12

Force driving function curve.

Fig. 13
figure 13

Variable force/bit drive mode Position drive branch curve. (a) The pitch position drives the branch force curve (b) Roll position drive branch force curve.

In both the position-controlled drive mode and the constant force/position-controlled drive mode, the force applied to the position-driven branch at the stage when the motion state of the swing mechanism is changed generates an oscillation phenomenon, and too large an oscillation may lead to the structural damage of the electric cylinder. It can be seen from the hybrid force/position control drive mode that when the drive branch is driven by force to form the redundant drive of the swing mechanism, the peak value of the drive force of the position drive branch decreases to a certain extent, and the amplitude of the decrease is about 40%, and the amplitude of the decrease is about 60% when comparing the variable force/position control drive with the constant force control drive mode, and the force applied to the position drive branch does not oscillate when the state of motion is changed. The force applied to the position drive branch does not oscillate when the motion state is changed, and the output can be stabilized. The simulation proves that under the same load and motion law, the hybrid force/position control redundant drive mode can effectively reduce the peak driving force of each positional drive branch of the swing mechanism, and the reduction is obvious, which proves that the redundant drive can improve the dynamic performance of the swing mechanism.

Simulation and analysis of rotary oscillating platform prototype

According to the design requirements, the rotation speed of the slewing joint is not less than\({20^ \circ }/s\).The design of the slewing joint speed image shown in Fig. 14.with a maximum slewing speed of \(20^\circ /s\).

The rated torque of the selected motor is \(8800Nmm\), the reduction ratio of the gearbox is \(80\), and the rated torque of the gear shaft is \(704000Nmm\).The simulation can obtain the pinion driving torque image as shown in Fig. 15. The maximum torque does not exceed \(700000Nmm\),which meets the requirements.

Fig. 14
figure 14

Rotary joint velocity.

Fig. 15
figure 15

Pinion drive torque.

Performance requirements for pitch joints and roll joints include a range of action \(\pm 10^\circ\), With acceleration reaching \(0.1\;rad/{s^2}\). Additionally, the unidirectional \(0 - 10^\circ\) swing cycle should not exceed 2 s. This structure adopts a combined speed and force driving approach, where the master loop electric cylinder utilizes speed control, while the slave loop electric cylinder provides the same thrust as the master loop electric cylinder.

The roll section follows follows the same kinematic law as the pitch section. For instance, the pitch section adheres to a swing period requirement of 2s. The design of the main loop speed drive is shown in Fig. 16. The pitch joint angle is simulated as shown in Fig. 17. while the swing acceleration is shown in Fig. 18. All these figures demonstrate compliance with the performance requirements. As can be seen through Fig. 19, the motion patterns of the master-loop servo-electric cylinder actuator and the slave-loop servo-electric cylinder actuator are nearly identical.

Fig. 16
figure 16

Main loop servo electric cylinder push rod speed curve.

Fig. 17
figure 17

Pitch joint swing angle.

Fig. 18
figure 18

Pitch joint acceleration curve.

Fig. 19
figure 19

Master loop vs. slave loop actuator displacements.

The unidirectional swing angle of the pitching joint reaches \(10^\circ\), with the thrust change curve shown in Fig. 20. peaking at a maximum of \(28746N\). Similarly, the unidirectional swing angle of the rolling joint reaches \(10^\circ\), with the thrust change curve shown in Fig. 21. reaching a maximum of \(23046N\).The servo-electric cylinders are rated at \(55000N\), meeting the stipulated requirements with a substantial margin.

Fig. 20
figure 20

Pitching structure servo electric cylinder push rod thrust.

Fig. 21
figure 21

Rolling section servo-electric cylinder actuator push force.

Experimental analysis

The experimental system of spatially symmetric two-degree-of-freedom swing mechanism serve as the object of study, as shown in Fig. 22. The system components include the task management calculator, swing mechanism, and motion control system. To facilitate the two swinging motions of roll and pitch, mechanical decoupling of the bi-directional motions is achieved based on the cross-axis bi-directional swing structure connecting the lower disk bracket and the swing frame. This approach enables separate control of the motions without mutual interference.

Fig. 22
figure 22

Experimental system for redundant drive of oscillating mechanism.

This experiment specifies that the master-loop servo-electric cylinder is in position control mode while the slave-loop servo-electric cylinder is set to torque control mode. When the two servo motors in the same direction work in a configuration relationship for simultaneous drive, a master-slave mode is established for a single motion direction of the two drive cylinders. In this mode, the master loop cylinder operates in position mode, adhering to the prescribed position movement. Subsequently, its current signal is transmitted to the slave loop cylinder. The slave loop cylinder receives the current signal solely to provide the same drive torque, without consideration of the position state38.

Set the pitch master loop servo-electric cylinder and the roll master loop servo-electric cylinder to position drive mode, while setting the pitch slave loop motor and the roll slave loop motor to torque drive mode, with the addition of an enabling function to achieve bidirectional swing redundant drive of the swing mechanism. The experiment shows that both the pitching joint and the rolling joint follow the same motion pattern, as depicted in Fig. 23. illustrating the swinging angle.

Fig. 23
figure 23

Pitch and roll joint swing angle.

Figures 24, 25, 26 and 27 show the torque of each motor when the mechanism swings. Analysis of the experimental data reveals that, during swinging, the percentage of torque output from the pitch motor (main loop) and the pitch motor (slave loop) is approximately 10% higher than that from the rotary motor (main loop) and the rotary motor (slave loop). This discrepancy is attributed to the mechanism’s configuration, which exhibits greater mass in the pitch direction than in the roll direction. Meanwhile, the torque of the master loop motor is basically the same as that of the slave loop motor in the force/position based hybrid mode, which enhances the drive coordination between the branches of the mechanism in any single direction, thereby improving the stability of the system operation and optimizing the dynamic performance of the drive force of the cross axis swing mechanism.

Fig. 24
figure 24

Pitch the percentage of torque of the main loop motor.

Fig. 25
figure 25

Pitch the percentage of torque of the slave loop motor.

Fig. 26
figure 26

Roll the main loop motor torque percentage.

Fig. 27
figure 27

Roll the slave loop motor torque percentage.

Summary

  1. (1)

    The kinematics of the three-degree-of-freedom slewing and swinging platform is theoretically analyzed, establishing the relationship between the drive space, joint space, and platform attitude. Based on this analysis, the velocity and acceleration models are deduced, providing a theoretical basis for the subsequent dynamic analysis.

  2. (2)

    Dynamic equations are established for the mechanism based on the Lagrangian method. The dynamics of the mechanism is simulated and analyzed using Recurdyn software, and the analysis results verifies the accuracy of the dynamics model.

  3. (3)

    An experimental study on the application of spatially symmetric two-degree-of-freedom swing mechanism is carried out, and the experimental results prove that the dynamic performance of the mechanism can be further improved by adopting the force-position hybrid control strategy, which provides a realizable and practical reference for the practical application of spatially symmetric two-degree-of-freedom swing mechanism.