Abstract
This chapter intends to cover three main topics. First, a fuzzy-PID controller is designed to control the propulsion vector of a launch vehicle, accommodating a CanSaT. Then, the genetic algorithm (GA) is employed to optimize the controller’s performance. Finally, through adjusting the algorithm parameters, their effect on the optimization process is examined. In this regard, the motion vector control is programmed based on the governing system’s dynamic equations of motion for payload delivery in the desired altitude and flight-path angle. This utilizes one single input and one preference fuzzy inference engine, where the latter acts to avoid the system instability in high angles for the propulsion vector. The optimization objective functions include the deviations of the thrust vector and the system from the stability path, which must be met simultaneously. Parameter sensitivity analysis of the genetic algorithm involves examining nine different cases and discussing their effect on the optimization results.
Keywords
- fuzzy-PID controller
- CanSat
- genetic algorithm
- parameter sensitivity analysis
1. Introduction
Due to costly space projects, affordable flight models and test prototypes are of incomparable importance in academic and research applications, such as data acquisition and subsystems testing. In this regard, CanSat could be used as a low-cost, high-tech, and light-weight model; this makes it popular in academia. CanSat is constituted from the words “can” and “sat,” which collectively means a satellite that is embeddable in a soda can [1]. In these apparatuses, an electronic payload is placed into a container dimensionally comparable to a soda can; it is then launched into space with a rocket or balloon [2]. The attained altitude is a few thousand meters, which is much lower than the altitude of sounding rockets [3].
The concept of fuzzy logic was introduced by Zadeh in 1965; it has been improved by several researchers, forming a potent tool for a variety of applications [4]. For example, Precup and Hellendoorn [5] and Larsen [6] have used fuzzy logic in controllers for various industrial and research applications. The control area has attracted the most significant studies on fuzzy systems [7–15]. Petrov et al. have used fuzzy-PID controllers to control systems with different nonlinear terms [16]. Hu and colleagues proposed a new and simple method for fuzzy-PID controller design based on fuzzy logic and GA-based optimization [17]. Juang et al. have used triangular membership functions in fuzzy inference systems along with a genetic algorithm to tune parameters or fuzzy-PID controllers [18]. Operating fuzzy-PID controllers and online adjustment of fuzzy parameters were the main output of Resnick et al. researches [19].
In 1950, Alan Turing proposed a “learning machine” which would parallel the principles of evolution [20]. Genetic algorithms (GAs) are stochastic global search and optimization methods that mimic the metaphor of natural biological evolution [21]. GAs consider the principle of survival of the fittest to produce better generations out of a population. Although genetic algorithms cannot always provide the optimal solution, it has its own advantages [22] and is a powerful tool for solving complex problems. GA is an effective strategy and had successfully been used in the offline control of systems by a number of studies. Krishnakumar and Goldberg [23] have shown the efficiency of genetic optimization methods in deriving controller structures in aerospace applications compared to traditional methods such as LQR and Powell’s gain set design. Porter and Mohamed [24] have taken initiative and by the use of GA have offered a simple and applicable eigenstructure assignment solution which is applied to the design of multivariable flight-control system of an aircraft. Others have denoted how to use GA to choose control structures [25].
Heuristic methods are highly dependent on their agents and parameters. Therefore, GA properties (mainly population size and crossover ratio) are of high importance in finding optimum points which are usually found by sensitivity analysis. These parameters are defined for a better acquaintance of readers in the following.
This chapter focuses on designing a GA-based fuzzy-PID controller. A two-termed cost function containing path and thrust vector deviations is fed into GA code to be optimized. The code adjusts the parameters. Nine different combinations with relative optimality are discussed. The chapter is dissected into following sections:
“CanSaT carrier system” which presents a simple model of the carrier system
“Fuzzy-PID controller” that describes controller design and its parameters
“Optimization” which describes the optimization process
“Results and discussion” that clarify results and comparisons
“Conclusion”
“References”
2. CanSaT carrier system
The dynamic equations of a CanSaT carrier system is derived from the Newtonian law. It should be added that in the separation stage, the projection of satellite velocity vector must be tangent to the horizontal plane. Figure 1 shows a simplified model of a launch vehicle in which

Figure 1.
Carrier system scheme.
The dynamics of the system can be summarized in
in which
In the notation
in which
Meanwhile, geometric relations dictate the following equations in the vertical plane:
By substituting (6) in (4), we have
Insertion of (5) into (2) in a similar pattern yields to
with considering
By substituting
in which
where
3. Fuzzy controller design
Two types of fuzzy inference motors are utilized in the proposed fuzzy controller [26]. The first type is single input fuzzy inference motor (SIFIM). The second inference motor type is the preferred fuzzy inference motor (PFIM) that represents the control priority order of each norm block output.
The
where
The membership functions of SIFIMs are shown in Figure 2. As mentioned before

Figure 2.
Membership functions of SIFIMs (note: NB = negative big; Z = zero; PB = positive big).
If | Then |
---|---|
Table 1.
Fuzzy rules of SIFIMs.
The other type of fuzzy inference motors (PFIMs) guarantees satellite control system performance using desired values in one or more axes of the coordinate system. PFIM-i calculates
The membership functions of PFIMs are shown in Figure 3, while their fuzzy rules are tabulated in Table 2.

Figure 3.
Membership functions of PFIM (note: DS = distance short; DM = distance medium; DL = distance long).
If | Then | |
---|---|---|
Table 2.
Fuzzy rules of PFIMs.
By calculating
where
in which
4. Optimization
GA is an approach for solving optimization problems based on biological evolution via repeatedly modifying a population of individual solutions. At each level, individuals are chosen randomly from the current population (as parents) and then employed to produce the children for the next generation. In this chapter, the following operators are implemented for optimization of the fuzzy-PID controller:
Population size (PS): Increasing the population size enables GA to search more points and thereby obtain a better result. However, the larger the population size, the longer it takes for the GA to compute each generation.
Crossover options: Crossover options specify how GA combines two individuals, or parents, to form a crossover child for the next generation.
Crossover fraction (CF): Crossover fraction specifies the fraction of each population, other than elite children, that are made up of crossover children.
Selection function: Selection function specifies how GA chooses parents for the next generation.
Migration options: Migration options determine how individuals move between subpopulations. Migration occurs if the population size is set to be a vector of length greater than 1. When migration occurs, the best individuals from one subpopulation replace the worst individuals in another subpopulation. Individuals that migrate from one subpopulation to another are copied. They are not removed from the source subpopulation.
Stopping criteria options: Stopping criteria options specify the causes of terminating the algorithm.
In this chapter, the configuration of GA is set at the values given in Table 3.
Parameter | Value |
---|---|
CF | 0.4, 0.6, 0.8 |
PS | 90, 200, 500 |
Selection function | Tournament |
Mutation function | Constraint dependent |
Crossover function | Intermediate |
Migration direction | Forward |
Migration fraction | 0.2 |
Migration interval | 20 |
Stopping criteria | Fitness limit to 10−4 |
Table 3.
GA configuration parameters.
Furthermore, the multi-objective optimization of the proposed fuzzy-PID controller is done with respect to six design variables and two objective functions (OFs). The base values [
5. Results and discussion
In this section, by regarding two aforementioned OFs, the effect of two parameters of PS and CF is measured in the optimization. Figure 4 represents Pareto fronts of these two functions after optimization. Meanwhile, Figure 5 shows the system’s position under performance of the designed controller. The angle of propulsion vector of the CanSaT carrier system is demonstrated in Figure 6. Tables 4–6 display the magnitude of design variables. OF1 and OF2 are shown for optimum points of

Figure 4.
Pareto front by Objectives 1 and 2 corresponds to the (a) PS = 90 and CF = 0.4, (b) PS = 90 and CF = 0.6, (c) PS = 90 and CF = 0.8, (d) PS = 200 and CF = 0.4, (e) PS = 200 and CF = 0.6, (f) PS = 200 and CF = 0.8, (g) PS = 200 and CF = 0.4, (h) PS = 200 and CF = 0.6, and (i) PS = 200 and CF = 0.8.

Figure 5.
Time response of the CanSaT carrier system’s position for (a) A1, B1, and C1; (b) A2, B2, and C2; (c) A3, B3, and C3; (d) A4, B4, and C4; (e) A5, B5, and C5; (f) A6, B6, and C6; (g) A7, B7, and C7; (h) A8, B8, and C8; and (i) A9, B9, and C9 as the optimum points.

Figure 6.
Time response of the thrust angle of CanSaT carrier system for (a) A1, B1, and C1; (b) A2, B2, and C2; (c) A3, B3, and C3; (d) A4, B4, and C4; (e) A5, B5, and C5; (f) A6, B6, and C6; (g) A7, B7, and C7; (h) A8, B8, and C8; and (i) A9, B9, and C9 as the optimum points.
Design variable | Point PS = 90/CF = 0.4 | Value | Point PS = 90/CF = 0.6 | Value | Point PS = 90/CF = 0.8 | Value |
---|---|---|---|---|---|---|
A1 | −0.0094 | A2 | 0.0050 | A3 | 0.013 | |
2.83 | 2.71 | 2.93 | ||||
0.36 | 0.30 | 0.35 | ||||
0.36 | −0.036 | −0.25 | ||||
0.46 | 3.17 | 0.68 | ||||
0.95 | 1.94 | 0.83 | ||||
B1 | −0.0075 | B2 | 0.044 | B3 | −0.039 | |
−0.0023 | 0.00019 | −0.0069 | ||||
2.90 | 2.31 | 2.11 | ||||
0.022 | 0.021 | −0.036 | ||||
−0.022 | −0.26 | 0.39 | ||||
1.68 | 3.19 | 1.71 | ||||
C1 | −0.0094 | C2 | 0.033 | C3 | 0.036 | |
2.83 | 2.48 | 2.33 | ||||
0.36 | 0.31 | 0.36 | ||||
0.36 | 0.025 | 0.044 | ||||
0.46 | 3.083 | 0.34 | ||||
0.95 | 2.05 | 1.022 |
Table 4.
Design variables for Ai, Bi, and Ci (i = 1, 2, 3).
Design variable | Point PS = 200/CF = 0.4 | Value | Point PS = 200/CF = 0.6 | Value | Point PS = 200/CF = 0.8 | Value |
---|---|---|---|---|---|---|
A4 | 0.015 | A5 | −0.0025 | A6 | −0.01061 | |
2.79 | 2.59 | 2.7385 | ||||
0.35 | 0.33 | 0.3856 | ||||
−0.60 | 0.13 | 0.4005 | ||||
1.76 | 0.63 | 0.8030 | ||||
0.92 | −0.17 | −1.1440 | ||||
B4 | −0.088 | B5 | −0.15 | B6 | 0.01091 | |
−0.00020 | 0.0017 | 0.000345 | ||||
2.84 | 2.48 | 3.2541 | ||||
−0.0046 | 0.055 | 0.009406 | ||||
0.45 | 0.64 | −0.08872 | ||||
2.97 | 0.78 | 1.5818 | ||||
C4 | 0.093 | C5 | 0.016 | C6 | 0.009348 | |
2.75 | 2.23 | 2.7109 | ||||
0.40 | 0.33 | 0.3817 | ||||
0.056 | 0.16 | 0.3722 | ||||
1.94 | 0.68 | 0.5992 | ||||
0.53 | −0.055 | −0.4311 |
Table 5.
Design variables for Ai, Bi, and Ci (i = 4, 5, 6).
Design variable | Point PS = 500/CF = 0.4 | Value | Point PS = 500/CF = 0.6 | Value | Point PS = 500/CF = 0.8 | Value |
---|---|---|---|---|---|---|
A7 | 0.0018 | A8 | −0.013 | A9 | −0.014 | |
2.55 | 2.56 | 2.71 | ||||
0.31 | 0.35 | 0.36 | ||||
0.040 | 0.48 | 0.61 | ||||
0.52 | 1.30 | 1.29 | ||||
1.50 | 0.32 | −0.57 | ||||
B7 | −0.011 | B8 | −0.17 | B9 | −0.040 | |
0.00013 | 0.030 | 0.0064 | ||||
2.43 | 1.26 | 0.77 | ||||
−0.0015 | 0.027 | 0.012 | ||||
0.058 | 0.86 | 0.16 | ||||
2.84 | 1.42 | 0.36 | ||||
C7 | 0.0017 | C8 | −0.013 | C9 | −0.00073 | |
2.55 | 2.56 | 2.60 | ||||
0.31 | 0.35 | 0.38 | ||||
0.040 | 0.48 | 0.52 | ||||
0.52 | 1.30 | 0.54 | ||||
1.50 | 0.32 | −0.45 |
Table 6.
Design variables for Ai, Bi, and Ci (i = 7, 8, 9).
Objective function | Point PS = 90/CF = 0.4 | Value | Point PS = 90/CF = 0.6 | Value | Point PS = 90/CF = 0.8 | Value |
---|---|---|---|---|---|---|
OF1 | A1 | 0.029 | A2 | 0.030 | A3 | 0.030 |
OF2 | 0.042 | 0.045 | 0.045 | |||
OF1 | B1 | 0.40 | B2 | 0.40 | B3 | 0.40 |
OF2 | 0.000017 | 0.000011 | 0.000079 | |||
OF1 | C1 | 0.029 | C2 | 0.030 | C3 | 0.000079 |
OF2 | 0.042 | 0.039 | 0.034 |
Table 7.
Objective functions for Ai, Bi, and Ci (i = 1, 2, 3).
Objective function | Point PS = 200/CF = 0.4 | Value | Point PS = 200/CF = 0.6 | Value | Point PS = 200/CF = 0.8 | Value |
---|---|---|---|---|---|---|
OF1 | A4 | 0.029 | A5 | 0.030 | A6 | 0.029 |
OF2 | 0.042 | 0.042 | 0.040 | |||
OF1 | B4 | 0.40 | B5 | 0.40 | B6 | 0.40 |
OF2 | 0.0000037 | 0.000035 | 0.0000073 | |||
OF1 | C4 | 0.032 | C5 | 0.032 | C6 | 0.030 |
OF2 | 0.037 | 0.0359 | 0.039 |
Table 8.
Objective functions for Ai, Bi, and Ci (i = 4, 5, 6).
Objective function | Point PS = 500/CF = 0.4 | Value | Point PS = 500/CF = 0.6 | Value | Point PS = 500/CF = 0.8 | Value |
---|---|---|---|---|---|---|
OF1 | A7 | 0.030 | A8 | 0.030 | A9 | 0.029 |
OF2 | 0.040 | 0.038 | 0.041 | |||
OF1 | B7 | 0.40 | B8 | 0.39 | B9 | 0.40 |
OF2 | 0.0000021 | 0.00012 | 0.000065 | |||
OF1 | C7 | 0.030 | C8 | 0.030 | C9 | 0.030 |
OF2 | 0.040 | 0.038 | 0.037 |
Table 9.
Objective functions for Ai, Bi, and Ci (i = 7, 8, 9).
Further, as seen in Figure 4, points Ai and
To analyze the effects of each parameter in GA, Figures 7–12 are produced. Figure 7 shows the dependency of OF1 (at points Ai) to nine different combination forms of GA parameters. The figure shows that the minimum area under “situation of launch vehicle” curve is obtainable for PS = 200 and CF = 0.8. It is also inferred that for better results, parameters PS and CF must be increased simultaneously. For low PS, increasing CF helps to improve first OF, but with more magnitudes of PS, higher CFs yield better results.

Figure 7.
GA parameters versus OF1 for the best points from the viewpoint of OF1.

Figure 8.
GA parameters versus OF2 for the best points from the viewpoint of OF1.

Figure 9.
GA parameters versus OF1 for the best points from the viewpoint of OF2.

Figure 10.
GA parameters versus OF2 for the best points from the viewpoint of OF2.

Figure 11.
GA parameters versus OF1 for the best points from the viewpoint of OF1 and OF2.

Figure 12.
GA parameters versus OF2 for the best points from the viewpoint of OF1 and OF2.
Figure 8 represents dependency of OF2 (at points
6. Conclusion
This chapter represents a design of a fuzzy controller based on a GA code for the purpose of controlling propulsion vector of a launch vehicle which carries CanSaT. Minimizing the errors initiated by system deviation from equilibrium state and propulsion thrust deviation are two objectives for optimizing this controller. This is done by manipulating GA parameters in nine different combination forms to satisfy each objective function and also both of them simultaneously. Further it is examined how these parameters affect the optimal points.
By observing constraints of minimum settling time and overshoot, the results show that the optimal points proposed by the first OF are in proximity with the ones from both OFs which in some cases end in coincidence. Finally, by comparing magnitudes of OFs for various combinations of GA parameters, the optimum points and their relevant parameters are introduced.
Conflict of interest
The authors declare that there is no conflict of interest.