Advertisement

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

  • Pedro FernandesJr.
  • Alexandre C. B. Ramos
  • Danilo Pereira Roque
  • Marcelo Santiago de Sousa
Conference paper
Part of the Advances in Intelligent Systems and Computing book series (AISC, volume 738)

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

The content presented in this section is mainly based on [14]. An ANN, as its name suggests, is basically a computer application that simulates a biological neural network’s functioning. This is done by creating a virtual structure composed by interconnected neurons. Each neuron’s structure is basically similar to the following description (Fig. 86.1).
Fig. 86.1

Basic representation of an ANN’s artificial neuron

Where: X1, X2, …, Xn give the input values; W1, W2 …, Wn 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.

Using the topology shown in Fig. 86.2, one way to represent this ANN’s topology as a genetic sequence is: 4. 5. 2. abcdefghijklmnopqrst. vwxyz. ABCDEFGHIJKLMNOPQRST. VWXYZ, where each character respectively refers to: 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.
Fig. 86.2

example of an ANN topology. Each neuron is numbered by its position in its respective layer, for clearer identification related to its respective genetic representation

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).

Some different adjustments were tried as a way to compare their results, also to find the best combination between the tried adjustments and to provide a general behavior view of the ANN generated. For a comparison between different ways to define initial values for the links’ weights, the following three tries were made: each weight was initialized by receiving a different random value; all weights were initialized set to 1, and all weights were initialized set to 0. Other comparison made is between two different value’s tables used as reference for the link’s weights: table T1, mentioned in the previous section and table T2, which has the same reference and char values as table T1, but has different actual values, real values obtained by two divisions, the first one gives 28 values, calculated by x/3, where x varies by 1, from −27 to 0, and another gives the last 36 values, calculated by y/4, where y varies by 1, from 1 to 36. And finally, comparing two different 1D (one dimensional) search space algorithms, used to set the best found value to each link’s weight: a customized search based on the concept of search used in the golden section search algorithm and naive search. Each combination of initial set value, referenced table and search space algorithm gives a different type of test. Each type of test was performed at a total time of 600 s and the summarized results are presented in Table 86.2, that shows how much time was elapsed and how many mutations occurred to the ANN until it has reached its best performance (regarding trueness).
Table 86.2

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:

If (error ≤ output[x].amplitude/6): Range1++
$$ \mathit{Trueness}=100-\left(\left(\frac{\mathit{error}}{\frac{\mathit{output}\left[x\right]. \mathit{amplitude}}{6}}\right)\ast 33.333333\right) $$

Computing Range 2 and calculating trueness:

Else If (error ≤ output[x].amplitude/3): Range2++
$$ \mathit{Trueness}=100-\left(\left(\frac{\mathit{error}}{\frac{\mathit{output}\left[x\right]. \mathit{amplitude}}{3}}\right)\ast 66.666666\right) $$

Computing Range 3 and calculating trueness:

Else If (error ≤ output[x].amplitude/2): Range3++
$$ \mathit{Trueness}=100-\left(\left(\frac{\mathit{error}}{\frac{\mathit{output}\left[x\right]. \mathit{amplitude}}{2}}\right)\ast 100\right) $$

Computing Range 4 and calculating trueness:

Else: Range4++
$$ \mathit{Trueness}=\left(\left(\frac{\frac{\mathit{output}\left[x\right]. \mathit{amplitude}}{2}}{\mathit{error}}\right)-1\right)\ast 100 $$

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.

The results presented in Table 86.3 show the importance of the correct adjustments—as this method is very limited in values to be used as links’ weights—for example, table T1 that has values from different magnitudes, have provided to its developed ANNs much better results than those obtained by the ANNs trained using table T2. Also, the initial values’ setting is relevant, as the results have shown. And finally, about the search method, although naïve search is the most expensive, considering a very restrict search space, it can be even a good option, for it will set the very best values for each ANN’s component, so the best topology may be found within less mutations. Although the average performance of the naïve search was better than that obtained by the custom method, both had similar performances in best conditions (using table T1 and random initial values), as it can be seen in Table 86.2.
Table 86.3

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.

The next figure shows a detailed comparison between obtained and expected values for one of the outputs, when the ANN is already trained and performing with trueness above 90% (Fig. 86.5).
Fig. 86.3

obtained trueness in each mutation (new running of type 2)

Fig. 86.4

obtained accuracy by range of closeness in each mutation (new running of type 2)

Fig. 86.5

Comparison between expected and obtained values by the ANN after training for longitudinal cyclic (pitch) in the proposed scenario

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. 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. 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. 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. 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. 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. 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. 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. 8.
    X. Yao, Evolving artificial neural networks. Proc. IEEE 25, 1423–1447 (1999)Google Scholar
  9. 9.
    K.O. Stanley, R. Miikkulainen, Efficient evolution of neural network topologies. Proc. 2002 Cong. Evol. Comput. 6, 1757–1762 (2002)Google Scholar
  10. 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. 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. 12.
    P.V.M. Simplício, Helicopter Nonlinear Flight Control Using Incremental Nonlinear Dynamic Inversion (Delft University of Technology, Delft, 2011)Google Scholar
  13. 13.
    G.D. Padfield, Helicopter Flight Dynamics, 2nd edn. (John Wiley & Sons, Hoboken, 2008)Google Scholar
  14. 14.
    I. Lima, C.A.M. Pinheiro, F.A.O. Santos, Inteligência Artificial, 1st edn. (Elsevier, Brasil, 2014)Google Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  • Pedro FernandesJr.
    • 1
  • Alexandre C. B. Ramos
    • 1
  • Danilo Pereira Roque
    • 2
  • Marcelo Santiago de Sousa
    • 2
  1. 1.Federal University of Itajubá, Mathematics and Computng InstituteItajubáBrazil
  2. 2.Federal University of Itajubá, Mechanical Engineering InstituteItajubáBrazil

Personalised recommendations