## 3 Results  
The laboratory experimental setup hardware is illustrated in Figure 3. The double-girder crane bridge is driven by two 0.18 kW AC gear motors supplied by SV004 iC5-1F 0.4 kW frequency inverters (LS Industrial Systems Co., Ltd., Anyang-si, South Korea) that are controlled by the voltage signal \(u\) within the range \(\pm 10\). The incremental encoders with a resolution of 400, 2000, and 100 ppr (pulses per rotation) are used to measure position \(x\), sway angle \(\alpha\), and rope length \(l\), respectively. The encoders are installed on the wheels to measure position \(x\) relative to the crane bridge, under the trolley connected to a pair of fork arms embracing the hoisting cable to measure sway angle \(\alpha\), and on the hoisting drum to measure rope length \(l\). The data from the sensors were sampled at 10 Hz using a PC (16 GB RAM, Quad Core 4 GHz Intel Core i7-6700 K CPU, Intel, Santa Clara, CA, USA) equipped with the IO card PCI1710 HG, MS Windows 10 operating system, and Matlab software release R2020. During the experiments, the PLC was used to transmit the signals from the sensors to the PC and the control signal \(u\) to the actuators. A constant velocity Kalman filter was used to estimate the velocity of the crane \(v\) with the process noise and measurement noise that follow Gaussian distributions \(N\Big{(}0,\sigma_{p}^{2}\Big{)}\) and \(N\big{(}0,\sigma_{m}^{2}\big{)}\), where \(\sigma_{p}=8\) and \(\sigma_{m}=0.2\). Figure 3: Experimental setup. The identification model was obtained from input-output experimental data collected from a series of 10 experiments carried out at different operating points, with rope lengths \(l\) = [0.8, 1.1, 1.4, 1.7, 2.0] m and payload masses \(m\) = [10, 30, 50] kg. The input excitation signal \(u\) was a sequence of step functions with varying amplitude. The data from the experiment carried out with \(l\) = 1.1 m and \(m\) = 50 kg and the experiment carried out with \(l\) = 1.7 m and \(m\) = 10 kg were used as the testing data, while the rest were used as the training data to evolve the GP-NARX model. Similarly to [43], the training data are split randomly with a 70:30 ratio into two sets, where the first data set is used in the GP algorithm to determine the MSE used as the fitness function, while the second data set is used for model selection, i.e., the model with the lowest MSE on the second training data set is stored as the best model. The GP algorithm was run 15 times with the grammar and parameters given in Tables 1 and 2, respectively, and the best model in each run was saved. The accuracy and complexity of the best models from each run are shown in Figure 4, with the green points corresponding to models on the Pareto frontier and the green pentagram representing the selected model. Nonlinear regressors \(\phi_{1}\) and \(\phi_{2}\) and coefficients \(\theta_{1}\) and \(\theta_{2}\) of the crane velocity (3) and pendulum sway (4) models, respectively, are presented in Table 3.  
The GP-NARX model had 11 model terms selected for the velocity submodel (3), while the sway submodel (4) had 13 model terms selected. The mass of the payload did not appear in any of the terms, making the models independent of the payload mass. Figure 5 presents the input signal \(u\) applied to excite the underactuated part of the overhead crane in the two experiments carried out to obtain testing data at operating points \(l\) = 1.1 m, \(m\) = 50 kg] and \(l\) = 1.7 m, \(m\) = 10 kg], and the 20-step-ahead prediction (crane velocity and payload sway angle) performance of the GP-NARX models. The models were then experimentally  
Figure 4: Comparison of GP-NARX models’ performance and complexity in 20-step-ahead prediction of (**a**) crane velocity and (**b**) payload sway (the green points correspond to models on the Pareto frontier, while the green pentagram point represents the selected model).