Information Technology - New Generations pp 675-681 | Cite as

# Incremental Topology Generated for ANN: A Case Study on a Helicopter’s Flight Simulation

## Abstract

This paper presents a method for the development of artificial neural networks (ANN) that consists in the use of a search space algorithm to adjust the components of an ANN’s initial structure, based on the performance obtained by different network configurations. Also, it is possible to represent an ANN’s structure as a genetic sequence, which enables directly loading a corresponding genetic sequence to instantly generate and run a previously trained ANN. This paper also shows some results obtained by different ANNs developed by this method, which demonstrate its features by analyzing its accuracy and trueness. As an example for application of this method, a case study is presented for a specific flight simulation, using data obtained from a helicopter’s flight dynamics simulator for ANN training. Helicopter flight dynamics is a relevant study, for it can be used, for example, to provide precise data to a flight simulator, which implies in an important issue for pilot training, and subsequently, this type of application may help reducing the probability of pilot’s faults in a real flight mission. Finally, some considerations are made about the work shown in this paper as the results, discussions and conclusions are presented.

## Keywords

ANN Artificial Intelligence Helicopter## 86.1 Introduction

Due to the advances on the aviation’s technology and the consequent increase in demand for the use of aircraft for different purposes, such as passenger transport, search and rescue missions, etc., safety of flight missions becomes even more relevant [1]. Among the main actions to improve it, advances in the quality of training provided to pilots can be cited, and in this context, the use of simulators is considered as one of these main activities [2]. Therefore, the development of more realistic flight simulators provides better quality training [3], which can contribute to minimize the risk of accidents.

Additionally, the modeling of flight dynamics is important to provide more realistic training, by its application in a flight simulator. This paper briefly presents fundamentals that are used for the computational model represented. It is important to mention that, despite of the availability of advanced flight simulators, there are at least two advantages when a customized system is developed: (1) it is specifically designed for a particular aircraft (eventually one that is not yet available in a commercial simulator), which provides added realism to the simulation and (2) even the possibility of the development of an autopilot for a particular aircraft [4]. Also, as an ANN (Artificial Neural Network) can be successfully used to reproduce causal relations, even for complex systems, it is an interesting solution for this kind of application [5, 6, 7].

There are several methods for the development, training and validation of ANN [5, 8]. This paper presents a method that is based on some concepts, such as evolutionary development [8], incremental development made by mutations [9] and the representation of an ANN with a corresponding genetic sequence [10].

## 86.2 Flight Controls of a Helicopter

This section presents the helicopter flight controls as described by Cunha Jr. [11]. The helicopter lift is generated by the resultant force of the air passage (relative wind) into the blades. Helicopters have degree of freedom in the three spatial axes. The coordinate system used to study the dynamics of a helicopter is the rigid body system or system of the fuselage line reference. To operate it, there are three flight control instruments: *collective*, *cyclic* and *pedals*, which provide four degrees of control freedom: pitch, roll, yaw and flight.

The use of the collective commands provide ascending and descending movements of the helicopter, changing the step of all main rotor’s blades at the same time and at the same angle of attack. For example, if given the command to go up, the pilot must pull the collective and the resulting step is positive, otherwise the collective should be pushed, so the helicopter goes down.

The cyclic enables the pilot to make the longitudinal (pitch) and lateral (roll) movements of the helicopter, by changing the pitch of the main rotor blades differently, depending on the position where it is during the course of rotation. Examples: if given a forward command, the pitch of the blades decreases when they are going ahead and increases when they pass through the back of the helicopter. If the command is given to the left, the pitch of the blades is reduced when passing the left side and increases when they pass the right side.

The pedals enable the pilot to control the rotations in the horizontal plane around the vertical z-axis (yaw) of the helicopter. They change the pitch of all tail rotor blades simultaneously and in the same angle of attack. The tail rotor is critical for the stability of the helicopter, for it is responsible for neutralizing or not the torque generated by the main rotor on the fuselage.

## 86.3 Modeling of a Helicopter’s Flight Dynamics

The modeling and the information described in this section are based mainly on [11, 12, 13] and the presented application example is based on [12], who analyzed the *Bolkow Bo-105* model.

Initially, it can be said that a helicopter, as well as other aircraft, has its dynamic governed by the three laws of Newton: (1) a balance in the body (sum of zero forces) tends to remain at rest or moving straight and with constant speed; (2) force equals the change of momentum; and (3) if a body A applies a force F on a body B, body B applies a force in the same module, the same direction and the opposite way to the body A (-F). From these laws, and knowledge of the forces (and moments) applied, it is possible to obtain the equations describing a helicopter’s flight dynamics.

The forces acting on the main rotor and tail rotor are the weight force and aerodynamic forces, similar to the forces acting on a wing. The difference is that the “aerodynamic surface”, rotor blades, are in angular movement at a speed (approximately) constant. Each rotor blade airfoil section is subjected to a force that is proportional to both the dynamic pressure, the area of the unit section, the air density and the aerodynamic coefficients. The dynamic pressure is a function of helicopter’s speed, angular velocity of the blades, and blade position relative to the central axis that passes through the fuselage. The aerodynamic coefficients are a function of the geometry of the section and the rotor as a whole and the local angle of attack on the blade. This local attack angle is dependent on different parameters, including the fuselage angle of attack orientation of the main rotor shaft, twist in the rotor blade due to cyclic controls and collective inflow, angular velocity and rate, and external disturbances. The attack angle of the rotor blades is a function that is calculated using these variables: beat, inflow, helicopter controls, and angular velocities.

Now it is presented the conceptual description of the implemented modeling. Initially, the forces are calculated in each section, and these may be integrated along the length of the blades of both rotors so that the total forces and moments acting on the main rotor and the tail rotor are obtained. Then, those values are used to calculate aerodynamic coefficients by their respective equations. To solve the differential equations, it is important to make a numerical integration, which requires the equations of motion, data relative to the helicopter and the initial conditions of simulation.

The initial conditions are obtained by a trimming process (obtaining equilibrium conditions). On balance, the resulting force and moment are zero. In this case, the differential equations become algebraic equations. And an optimization process is used to obtain the values of states and controls to ensure the achievement of the equilibrium condition. It requires equations to be used, helicopter data and some parameters required for the initial condition: speed, altitude, slip angle, curve speed and climb speed (or gamma angle). The equilibrium condition requires minimizing various equations. It wasn’t possible to minimize all the equations simultaneously, so it was initially supposed inflow equals to zero, and thus obtained the states and controls of the helicopter (without inflow). Then, the obtained states are used as initial conditions to find the inflow value. So it is made the trimming again with the new inflow parameters. This sequence is repeated until convergence of values. Finally, having the initial conditions, numerical integration is made, which enables calculation of flight parameters that provide reference data for the ANN’s development as input and output values.

## 86.4 A Brief Review on Artificial Neural Networks and Explanation on the Method

Where: *X*_{1}, *X*_{2}, …, *X*_{n} give the input values; *W*_{1}, *W*_{2} …, *W*_{n} are the weights respectively applied to the input values; *Σ* is the sum of the input values after they were multiplied by their respective weights, and outputs a value *a*, then processed by an activation function *f(a)*, that generates an output value according to its function; and *y* is the output value that will be sent to another neuron or given as result.

There are different ways to implement an ANN. For example, regarding to the activation function of a neuron, it can be linear or semi-linear, the connections between neurons may or not compose cycles, different learning rules can be applied, etc. Learning rules consist in the method used to modify an ANN’s topology, in a way that these changes tend to generate a new and more accurate topology for the network, which means that the error (difference between expected output values and resulted output values obtained by the use of an ANN) must decrease. In general, an ANN can “learn” patterns, by gradually adapting, according to the data received during training, until it is capable to perform the intended functions with previously specified goal parameters. During training, it is necessary to make tests as validation, to check ANN’s generalization capability, so it must provide correct output data when given inputs that are different from those used for adapting in training. If the ANN still performs well, it can be tested with different data to be evaluated, and if approved it’s then used for that specific application for which it was developed.

The proposed method can be described as following: once both the quantity of inputs and outputs for a given ANN are known, it can be generated an initial topology for the ANN consisting in the input and output layers as expected and also a hidden layer that has the same number of neurons as the number of outputs of the ANN. Each of the inputs is connected to each of the hidden layer’s neurons, and each of the hidden layer’s neurons is connected to only one of the outputs (in a way that each of the hidden layer’s neurons is connected to one different output). This basic initial structure is then optimized by applying a first round of training. Whenever the predetermined performance goals are achieved by the developed ANN, training is interrupted. If it doesn’t occur after this first step of adaptation, that initial structure is updated by the addition of a new set of neurons in the hidden layer, exactly as that initial hidden layer, that is, with the same arrangement of connections between inputs and outputs. The previously trained neurons and connections are maintained as they were, and only the new components are trained. After the training, the ANN is evaluated again. This process continues until it is obtained the best tested ANN topology for that application. By applying this method, it is possible to represent an ANN’s topology as a genetic sequence, which may be composed, for example, by predefined ranges of values for each of the ANN’s topology components: connection weights, neuron’s activation functions, etc., enabling to encode from an ANN’s topology to its genetic sequence and also to decode from a genetic sequence to an ANN’s topology, which allows the system to load a specific ANN’s genetic sequence, generate its respective ANN and make it promptly available to be used.

*, where each character respectively refers to:*

**4. 5. 2. abcdefghijklmnopqrst. vwxyz. ABCDEFGHIJKLMNOPQRST. VWXYZ***inputs amount. outputs amount*.

*hidden layers amount*.

*weight of each connection between inputs and hidden layer’s neurons by order*.

*weight of each connection between hidden layer’s neurons and outputs by order*. Note that the characters are related to their actual values shown in Table 86.1.

Values from different magnitudes (T1)

Table T1 | |||||
---|---|---|---|---|---|

Actual value | Reference | Char | Actual value | Reference | Char |

−9 | 63 | ? | 0.005000 | 95 | _ |

−8 | 64 | @ | 0.006000 | 96 | ` |

−7 | 65 | A | 0.007000 | 97 | a |

−6 | 66 | B | 0.008000 | 98 | b |

−5 | 67 | C | 0.009000 | 99 | c |

−4 | 68 | D | 0.010000 | 100 | d |

−3 | 69 | E | 0.020000 | 101 | e |

−2 | 70 | F | 0.030000 | 102 | f |

−1 | 71 | G | 0.040000 | 103 | g |

−0.900000 | 72 | H | 0.050000 | 104 | h |

−0.800000 | 73 | I | 0.060000 | 105 | i |

−0.700000 | 74 | J | 0.070000 | 106 | j |

−0.600000 | 75 | K | 0.080000 | 107 | k |

−0.500000 | 76 | L | 0.090000 | 108 | l |

−0.400000 | 77 | M | 0.100000 | 109 | m |

−0.300000 | 78 | N | 0.200000 | 110 | n |

−0.200000 | 79 | O | 0.300000 | 111 | o |

−0.100000 | 80 | P | 0.400000 | 112 | p |

−0.090000 | 81 | Q | 0.500000 | 113 | q |

−0.080000 | 82 | R | 0.600000 | 114 | r |

−0.070000 | 83 | S | 0.700000 | 115 | s |

−0.060000 | 84 | T | 0.800000 | 116 | t |

−0.050000 | 85 | U | 0.900000 | 117 | u |

−0.040000 | 86 | V | 1 | 118 | v |

−0.030000 | 87 | W | 2 | 119 | w |

−0.020000 | 88 | X | 3 | 120 | x |

−0.010000 | 89 | Y | 4 | 121 | y |

0 | 90 | Z | 5 | 122 | z |

0.001000 | 91 | [ | 6 | 123 | { |

0.002000 | 92 | \ | 7 | 124 | | |

0.003000 | 93 | ] | 8 | 125 | } |

0.004000 | 94 | ^ | 9 | 126 | ∼ |

This is only a conceptual simplified example; there are other topological characteristics that should be represented, like each neuron’s activation function. It is important to mention that, in this method, every ANN’s mutation performed is set by running a search space algorithm that finds the best tested value for each ANN’s component.

## 86.5 Results and Discussion

This section shows sample results obtained by different ANN generated by this work’s method. In this case study, as an simple example for testing the method, let’s consider the helicopter flying at 3200 m of altitude, both slip angle, curve speed and climb speed valued as zero and speed varying from 1 to 56 m/s (meters per second) as initial conditions, and as result the ANN must give the correct values used as reference for each of the respective helicopter commands, totalizing five input parameters (speed, altitude, slip angle, curve speed and climb speed) and four output parameters (collective, cyclic pitch, cyclic roll and pedals).

Summarized results

Type | Best perf. (%) | Time (s) | Mutations |
---|---|---|---|

1 (random, T1, custom) | 91.317 | 406 | 79 |

2 (random, T1, naive) | 91.699 | 295 | 47 |

3 (random, T2, custom) | 26.012 | 318 | 79 |

4 (random, T2, naive) | 72.902 | 205 | 41 |

5 (0, T1, custom) | 69.474 | 233 | 68 |

6 (0, T1, naive) | 67.601 | 345 | 49 |

7 (0, T2, custom) | −98.822 | 593 | 99 |

8 (0, T2, naive) | −9.126 | 0 | 2 |

9 (1, T1, custom) | 83.974 | 156 | 61 |

10 (1, T1, naive) | 77.541 | 381 | 51 |

11 (1, T2, custom) | −98.822 | 592 | 99 |

12 (1, T2, naive) | 62.871 | 551 | 59 |

Other results presented in this section are related to the generalization capability of the ANN along its training, by comparing results obtained by the ANN with both training and validation datasets.

Each case of the ANN’s performance was calculated by the following rules:

*Computing Range 1 and calculating trueness:*

_{[x]}.amplitude/6): Range1++

*Computing Range 2 and calculating trueness:*

_{[x]}.amplitude/3): Range2++

*Computing Range 3 and calculating trueness:*

_{[x]}.amplitude/2): Range3++

*Computing Range 4 and calculating trueness:*

Where:

output_{[x]}.amplitude = Output_{[x]}.max−Output_{[x]}.min.

error = |output_{[x]}.obtained−output_{[x]}.expected|.

Accuracy is given by the sum of the obtained results by each range of closeness. Trueness is calculated as average of the obtained outputs’ closeness in each epoch (mutation) of the ANN.

The next table shows the summarized results obtained by each of the 12 before mentioned tests.

Even those summarized results already show some information to discuss about. It’s noticeable that the ANNs developed using table T1 had, in general, best results than those that used table T2. The custom search method showed poor results when using table T2, especially when the links’ weights are initialized set to 0 or 1. In general, when the links’ weights are initialized with random values, the developed ANNs have best performance. The next table shows the average results by each adjustment applied to the developed ANNs.

Average results by adjustment

Adjustment | Best perf. (%) | Time (s) | Mutations |
---|---|---|---|

Initial random values | 50.248 | 307 | 38 |

Initial value is 0 | 7.282 | 293 | 55 |

Initial value is 1 | 31.391 | 420 | 68 |

Table T1 | 80.268 | 303 | 59 |

Table T2 | −7.498 | 377 | 63 |

Custom search method | 12.189 | 383 | 81 |

Naive search method | 60.581 | 296 | 42 |

As it can be seen in the Figs. 86.3 and 86.4, as the mutations occur, they generally provide enhancements in the ANN’s performance, and also considering the over fit effect, the ANN tends to keep a performance par, being capable to maintain or recover performance with a larger topology.

## 86.6 Conclusions

This paper presented a method for the development of an ANN using search space algorithms to adjust each of the ANN’s components, and it also enables genetic representation of an ANN’s topology, which can provide benefits like promptly load and run an already generated ANN by its topology’s description. Different adjustments were tested and their results shown for comparison, providing analysis about the method such as its general performance along its incremental development. It’s important to notice that the presented results only constitute a very specific scenario within this case study, as a sample to show and discuss some of this method’s characteristics.

## Notes

### Acknowledgment

The author thank UNIFEI for research support, and CAPES and FAPEMIG for financial support. Confirmation number: 270.

## References

- 1.X. You, M. Ji, H. Han, The effects of risk perception and flight experience on airline pilots’ locus of control with regard to safety operation behaviors. Accid. Anal. Prev.
**9**, 131–139 (2013)CrossRefGoogle Scholar - 2.J.S. Melo, M.S.R. Tadeucci.
*A atividade aérea e uso de simulador de voo*, XIV Encontro Latino Americano, (2010)Google Scholar - 3.J. Ryder, T. Santarelli, J. Scolaro, J. Hicinbothom, W. Zachary, Comparison of cognitive model uses in intelligent training systems. Proc. Hum. Factors Ergon. Soc. Annu. Meet.
**4**, 374–377 (2000)CrossRefGoogle Scholar - 4.L.R. Ribeiro,
*Plataforma de Testes para Sistemas de Piloto Automático Utilizando Matlab/Simulink e Simulador de voo X-Plane*(Instituto Tecnológico de Aeronáutica, São José dos Campos, 2011)Google Scholar - 5.W.C. Lu, R.M. Faye, A.C.B. Ramos, J. Slama, F. Mora-Camino, Neural inversion of flight guidance dynamics. ISDA 2007
**6**, 190–195 (2007)Google Scholar - 6.A.K. Ghosh, S.C. Raisinghani, Frequency-domain estimation of parameters from flight data using neural networks. J. Guid. Control. Dyn.
**6**, 525–530 (2001) CrossRefGoogle Scholar - 7.D.J. Linse, R.F. Stengel, Identification of aerodynamic coefficients using computational neural networks. J. Guid. Control. Dyn.
**8**, 1018–1025 (1993)MathSciNetCrossRefGoogle Scholar - 8.X. Yao, Evolving artificial neural networks. Proc. IEEE
**25**, 1423–1447 (1999)Google Scholar - 9.K.O. Stanley, R. Miikkulainen, Efficient evolution of neural network topologies. Proc. 2002 Cong. Evol. Comput.
**6**, 1757–1762 (2002)Google Scholar - 10.S. Cussat-Blanc, K. Harrington, J. Pollack, Gene regulatory network evolution through augmenting topologies. IEEE Trans. Evol. Comput.
**15**, 823–837 (2015) CrossRefGoogle Scholar - 11.S.S. Cunha Jr., M.S. de Sousa, D.P. Roque, A.C.B. Ramos, P. Fernandes Jr., Dynamic simulation of the flight behavior of a rotary-wing aircraft. Inf. Tech. N. Gener.
**13**, 1087–1099 (2016)Google Scholar - 12.P.V.M. Simplício,
*Helicopter Nonlinear Flight Control Using Incremental Nonlinear Dynamic Inversion*(Delft University of Technology, Delft, 2011)Google Scholar - 13.G.D. Padfield,
*Helicopter Flight Dynamics*, 2nd edn. (John Wiley & Sons, Hoboken, 2008)Google Scholar - 14.I. Lima, C.A.M. Pinheiro, F.A.O. Santos,
*Inteligência Artificial*, 1st edn. (Elsevier, Brasil, 2014)Google Scholar