Mathematical Methods Applied to the Celestial Mechanics of Artificial Satellites 2014View this Special Issue
Research Article | Open Access
Inseok Yang, Dongik Lee, Dong Seog Han, "Designing a Robust Nonlinear Dynamic Inversion Controller for Spacecraft Formation Flying", Mathematical Problems in Engineering, vol. 2014, Article ID 471352, 12 pages, 2014. https://doi.org/10.1155/2014/471352
Designing a Robust Nonlinear Dynamic Inversion Controller for Spacecraft Formation Flying
The robust nonlinear dynamic inversion (RNDI) control technique is proposed to keep the relative position of spacecrafts while formation flying. The proposed RNDI control method is based on nonlinear dynamic inversion (NDI). NDI is nonlinear control method that replaces the original dynamics into the user-selected desired dynamics. Because NDI removes nonlinearities in the model by inverting the original dynamics directly, it also eliminates the need of designing suitable controllers for each equilibrium point; that is, NDI works as self-scheduled controller. Removing the original model also provides advantages of ease to satisfy the specific requirements by simply handling desired dynamics. Therefore, NDI is simple and has many similarities to classical control. In real applications, however, it is difficult to achieve perfect cancellation of the original dynamics due to uncertainties that lead to performance degradation and even make the system unstable. This paper proposes robustness assurance method for NDI. The proposed RNDI is designed by combining NDI and sliding mode control (SMC). SMC is inherently robust using high-speed switching inputs. This paper verifies similarities of NDI and SMC, firstly. And then RNDI control method is proposed. The performance of the proposed method is evaluated by simulations applied to spacecraft formation flying problem.
Spacecraft formation flying (SFF) problem is a cooperative control problem that distributes the task of a single spacecraft into a group of spacecrafts to improve the robustness of a space mission by decreasing the possibility of a single failure that can lead to total mission loss [1–3]. For this reason, SFF has attracted considerable interest owing to its advantages of not only increased mission success probability but also increased feasibility, flexibility, and so forth. According to the distribution strategies, the control methods for SFF can be categorized into two ways: centralized and decentralized . In decentralized control, each spacecraft in a formation group can communicate with each other. In particular, by transmitting the condition of each vehicle, they can avoid the fault-sensitive problem that can lead to serious problems, such as collision. The main drawbacks of decentralized formation control are the difficulties in analyzing the global SFF stability and the increase of system complexity significantly if formation member is big. In contrast, centralized formation flying such as the leader-follower approach is easy to implement because formation can be achieved by controlling the relative position or velocity. The objective of SFF problem in this paper is to evaluate the formation keeping performance using the proposed controller. Therefore, the leader-follower formation problem of two spacecrafts is considered. This paper considers the full nonlinear dynamics describing the relative position to design a suitable nonlinear controller for SFF.
In this paper, spacecraft formation flying using the robust nonlinear dynamic inversion (RNDI) control method is proposed. The proposed RNDI control method is based on well-known nonlinear dynamic inversion (NDI). NDI is a nonlinear control synthesis technique that steers the system states to track a user-designed desired trajectory [4–6]. By inverting the original dynamics to remove the system nonlinearities directly, NDI does not require linearizing and designing gain-scheduled controllers for each equilibrium point. Therefore, NDI provides a solution for the difficulties in ensuring stabilities and performances between various operational points in gain-scheduled controllers. The advantages of NDI control are that it is conceptually simple and has many similarities to classical control methods. In addition, it naturally handles nonlinear systems without gain-scheduling because it works as a self-scheduled controller. For this reason, NDI has become a popular flight controller and been applied to various high-performance aircrafts such as X-38 [4, 5], F-18 HARV [7, 8], and F-16 [8, 9]. On the other hand, accurate knowledge of the nonlinear system dynamics is needed to obtain a perfect cancellation of the original dynamics. Actually, in real applications, such an assumption of taking all accurate information about system nonlinearities is rarely met due to uncertainties, such as model mismatches, disturbances, and measurement noises [4, 9–13]. As these uncertainties lead to the closed-loop system control performance degradation and make the system unstable, robustness issues against uncertainties must be considered when designing NDI controller.
A variety of methods have been proposed to achieve robustness in NDI controller. Many studies have reported that the system controlled by NDI with a proportional-integral- (PI-) type of desired dynamics can improve the robustness [10, 13, 14]. As shown in Figure 1(a), the PI controller is designed as the desired dynamics satisfying the specific requirements that the states track after removing the original dynamics by NDI. The PI controller takes advantages of simple design and similarities with classical control. However, the desired dynamics types are selected by considering the system requirements, so there are some systems where the PI-type of desired dynamics is unsuitable. One of the most widely used methods for solving the robustness issue is to employ an additional linear controller, such as the structured singular value (-analysis) and synthesis [4, 5, 8, 9, 11]. In these methods, NDI works as an inner-loop controller while an additional linear robust controller is employed as an outer-loop controller, as shown in Figure 1(b). Therefore, the linear controller attempts improve the robustness of the overall control system. These methods, however, are based on linearized system equations and lead to an increase of the order of the control system. For example, the controller order increases to 14 while designing the controller for the X-38 . Recently, Yang et al. proposed a robust dynamic inversion (RDI) control method using sliding mode control (SMC) . SMC is a robust nonlinear control method that takes distinct values as control inputs to steer the system states into a user-designed sliding surface and to maintain the states on it [16, 17]. By combining dynamic inversion (DI) and SMC, the RDI controller guarantees stability against uncertainties without using any additional outer-loop controller and, moreover, it takes the advantages of both controllers (Figure 2) . However, the proposed RDI is designed as a linear controller, so it cannot cover the advantages of self-scheduling of NDI controller. This paper extends the results of  for nonlinear systems and verifies the feasibility of the proposed RNDI controller with application to the SFF problem.
(a) PI-type of desired dynamics based method
(b) Robust linear controller based method
2. Mathematical Model of Spacecraft Formation Flying
This section presents the derivation of a nonlinear SFF model. Formation flying considered in this paper is assumed to be composed of two spacecrafts: leader and follower. The leader spacecraft provides the reference trajectory assumed to be a circular orbit with constant velocity while the follower spacecraft navigates the neighborhood of the leader according to the desired reference trajectory. Figure 3 shows the coordinate reference frames used throughout this paper. Two main coordinate frames are the Earth centered inertia frame whose origin is located in the center of the Earth and the leader orbit frame whose origin is attached to the center of mass of the leader spacecraft. The nonlinear dynamics of the leader and follower with respect to the frame can be represented as follows [1, 3]: where and are control input vectors of the leader and follower spacecrafts, respectively. And and are the disturbance force vectors acting on the leader and follower spacecrafts, respectively. It is assumed that the masses of spacecrafts are small relative to the mass of the Earth; that is, , , so and . Because the relative position of the follower spacecraft , the second derivative of the relative position can be represented as follows: where and . In this paper, it is assumed that the leader spacecraft is free flying; that is, ; then it satisfies that .
If the relative position in the leader orbit frame is given as for the unit vectors , , and along with the -frame, then the relative acceleration vector can be obtained as follows: In the moving leader orbit frame, the position vector is constant; that is, . By substituting (4) into (3), the nonlinear dynamics of the follower spacecraft relative to the leader can be obtained as Denote the relative position and velocity vectors as and in the leader orbit frame, respectively. Then (5) can be represented as follows: where
3. The Proposed Robust Nonlinear Dynamic Inversion
In this section, the mathematical backgrounds of sliding mode control and nonlinear dynamic inversion are introduced. And then the robust nonlinear dynamic inversion method is proposed.
3.1. Sliding Mode Controller
Sliding mode control (SMC), also called variable structure control (VSC), is a high-speed switching nonlinear control method that forces the system states into a user-designed sliding surface and maintains the states on the surface [17, 18]. SMC consists of two phases (Figure 4): structuring the sliding surface and constructing the switching feedback gains.
Consider the following system: where is a state vector, is an input vector with , and and are smooth functions. Let a set be the regular () dimensional submanifold in , defined in , such as where () is a smooth function. Define as the individual sliding surface or individual switching surface. Then surface constructed by intersecting individual sliding surfaces is defined as the sliding surface : where . If the states of the system are in , that is, , then the behavior of the states is called sliding motion or sliding mode. Moreover, if sliding mode exists, the tangent vectors of the states always are forced to track the sliding surface as shown in Figure 4. Then each entry () of the sliding mode control law can be obtained by taking one of the following values : where .
As shown in (11), designing the sliding surface is crucial because the sliding surface determines the control input and, moreover, the performance of the closed-loop system. For this reason, various designing methods such as Fillipov’s method and equivalent control method have been proposed [18, 19]. In this paper, the equivalent control method is considered to analyze the similar characteristics between SMC and NDI. If the system states intercept the sliding surface at and a sliding mode exists for , then and for all . Then the equivalent input that forces the state trajectory to stay on the sliding surface can be analyzed as follows : Substituting (12) into (1), the system dynamics on the sliding surface for is governed by The dynamics represented in (13) is defined as the ideal sliding dynamics . Consequently, the closed-loop system dynamics in sliding mode are specified by the sliding surface.
One of the widely used designing methods of the sliding mode controller combines switching inputs and the equivalent inputs, as represented in (12); that is, if the sliding surface is determined, then the sliding mode controller can be obtained by adding switching input () of which entry yields  where is the th entry of the equivalent input analyzed in (12). And is the switching input that forces the system states to move towards the sliding surface. In , the possible candidates for designing the switching input are introduced: for example,(i)relay with constant gains: with ;(ii)relay with state dependent gains: with ;(iii)univector nonlinearity with scale factor: = with .
3.2. Similar Characteristics between Sliding Mode Control and Nonlinear Dynamic Inversion
Before analyzing the similar characteristics between SMC and NDI, the conventional NDI controller is firstly introduced. NDI controller consists of two blocks (Figure 5): desired dynamic block and dynamic inversion (DI) block [4–6]. In the desired dynamic block, the control variables are defined and the rate commands of the selected control variables are generated. And in the DI block, proper control inputs are generated by inverting the plant dynamics in order to make the inner closed-loop transfer function as an integrator . Hence, the system states controlled by the dynamic inversion block will follow the user-selected control variables. For this reason, the desired dynamics are usually designed to satisfy the specific performances/requirements so that the performance of the controlled system can achieve the system requirements. In , some forms of desired dynamics are introduced: proportional, proportional integral, flying quality, ride quality, and so forth.
It is worth noting that the requirement for existing NDI control law in (15) is that must exist. However, the matrix is not generally a full rank for nonflat systems. These systems have a larger number of states than the number of control inputs. Hence, the number of states that can be inverted is less than or equal to the number of inputs. One way of achieving is to formulate the existence problem as a two-time scale problem. A two-time scale problem makes the system states separate into fast and slow dynamics. The fast dynamics comprise a group of states affected directly by the control inputs. On the other hand, the slow dynamics consists of states influenced by the fast dynamics. Separating the system states into two groups reduces the system order enough to provide a chance to exist more number of inputs than the number of the fast dynamic states. Consequently, can be obtained [4–6]. In contrast, for an overactuated system that adopts a larger number of inputs than the number of states, the inverse can be obtained by reducing the number of inputs to be equal to the number of states using control allocation [8, 9].
By substituting (15) into (8), the inner-loop dynamics in Figure 5 controlled by conventional NDI yields Hence, NDI controller replaces the original dynamics into the user-selected desired dynamics by inverting the original dynamics. Consequently, the control system can guarantee the stability without gain-scheduling. However, it is impossible to achieve perfect cancellation of the original dynamics due to uncertainties such as model mismatches, disturbances, and measurement noises, which leads to poor robustness of NDI controller. Hence, robustness issues against uncertainties must be considered when designing NDI controller.
To achieve the robustness of NDI, the equivalent control method used to design sliding surface is considered. For desired trajectory , let . Select a set of nonlinear smooth functions, , as a sliding surface. If the system states intercept the sliding surface at and the sliding mode exists for , then and for all . Then the equivalent input that the state trajectory stays on the sliding surface can be analyzed as follows [13–15]: If and , then (17) can be represented as a form of NDI input shown in (15) Hence, if the sliding surface is designed by an identity matrix, then the equivalent input of SMC can be represented as NDI input.
Definition 1. Let be a set of smooth functions (); that is, =. Then is defined as the NDI surface; that is, the NDI surface is the sliding surface designed by the identity matrix.
It is worth noting that the ideal sliding dynamics shown in (13) yields the desired dynamics as follows: In (19), the states on the identity sliding surface are governed by the desired dynamics. Moreover, the performances of the control system in sliding mode are determined only by the desired dynamics. This suggests that the difficulties in designing a sliding mode controller to satisfy the specific system performances are converted to the desired dynamics designing problem.
3.3. Design of the Robust Nonlinear Dynamic Inversion
Similar to the design method of SMC, each entry () of the RNDI control law can be obtained by introducing the following values: where satisfies the following: for , the th entry of and for , the -entry of where the superscripts + and − denote the right- and left-hand limit, respectively. The following theorem and corollary propose the method for designing the RNDI controller and provide the stability analytically.
Theorem 2. Consider the following input: where is the conventional NDI input and is the switching input that satisfies the following: for , Then the closed-loop system controlled by (22) is globally stable.
Corollary 3. If the switching input denoted as is designed with for a positive , then the control system is globally stable.
Proof. If , then and, conversely, if , then . Hence, according to Theorem 2, the control system is globally stable.
Definition 4. The control law proposed in Theorem 2 is called the robust nonlinear dynamic inversion (RNDI) law; that is, for a diagonal matrix () with , the RNDI control law yields
It is worth noting that the form of the switching input represented in Corollary 3 is a relay with constant gains form in SMC as mentioned in Section 3.1. Actually, the switching function satisfying (23) can be obtained directly from SMC design method as follows:(i)relay with constant gains: with ;(ii)relay with state dependent gains: with ;(iii)univector nonlinearity with scale factor: with .
It is also remarkable that using the function while designing the switching input leads to unfavorable results in control systems such as the chattering problem. The chattering problem makes the system have unmodeled high frequencies or actuator saturation. In sliding mode control theory, several methods have been proposed to overcome this problem by designing a continuous control input instead of a discontinuous switching input. This method forces the controlled system to follow the approximated sliding motion in some boundaries instead of the ideal sliding motion. Following the similar manner, the chattering problem in the RNDI control can be solved using the continuous control input. For example, replace into in order to design a continuous switching input as follows: for a positive , Then . In (27), is the boundary layer in which the states are governed by the following dynamics: for and () with ,
3.4. Stability of the Proposed RNDI Controller
In this paper, the stability of the closed-loop system controlled by the proposed RNDI is analyzed by a Lyapunov stability criterion. Consider the following nonlinear system including bounded model uncertainties and and bounded disturbance : It is assumed that satisfying , where is the minimum eigenvalue of . For the desired state , denote . To analyze the stability of the proposed RNDI controller, select a Lyapunov candidate as follows: Then the derivative of yields By the hypothesis, , the derivative of is always negative. Hence, the system controlled by the proposed RNDI controller is globally stable against disturbances, noises, and model mismatches.
4. Simulation Results
In this section, numerical simulations are conducted to evaluate the performance of the proposed robust nonlinear dynamic inversion controller.
4.1. Simulation Description
The aim of SFF is to design the feasible control input such that as for a given reference relative position trajectory, , of the follower spacecraft with respect to the leader spacecraft. To evaluate the performance of the proposed RNDI controller, MATLAB Simulink is selected as a simulation tool. Figure 7 shows the block diagram of the overall SFF structure using MATLAB Simulink. In this paper, it is assumed that the reference trajectory is set to ; that is, the follower spacecraft tracks a circular orbit centered at the leader spacecraft with a radius of 100 meters on a plane generated by and with an angular velocity . The initial relative position and velocity are assumed to be, respectively, as follows: Table 1 lists some parameters and their values used in this simulation. Some uncertainties such as disturbances and sensor noises of velocity and position are induced in this simulation. Disturbances acting on the follower spacecraft are assumed such that (N). And it is also assumed that maximally 20% of random velocity sensor noises in three axes create difficulties in allowing the follower spacecraft to obtain accurate velocity information. Moreover, maximally 20% and 40% of random position sensor noises in and axes are also considered in this simulation.
4.2. Simulation Results
Figure 8 describes the position tracking error results of the no disturbance case and disturbances injected case. The objective of this simulation is to verify the performance degradation of the disturbances injected spacecraft. In both cases, NDI with the proportional type of the desired dynamics is designed as a primary controller for SFF. As shown in Figure 8, if no disturbance is acting on the spacecraft, then the position errors between the referenced position and the follower position are zero in 30 sec. However, the lack of robustness in NDI controller leads a significant performance degradation of the disturbed spacecraft, so it tracks the references with a tracking error of almost 8 m, 1 m, and 4 m in , , and axes, respectively.
(a) Position tracking error in -direction
(b) Position tracking error in -direction
(c) Position tracking error in -direction
Figures 9 and 10 show the trajectories of the follower spacecraft controlled by NDI and RNDI controllers. As mentioned in Figure 8, the position errors between the referenced position and follower position controlled by NDI cannot be zero due to the induced uncertainties. However, by combining the switching input into conventional NDI controller, the RNDI control law attempts to reduce the effect of the uncertainties. Consequently, the state can track the reference signal within 1 m error as shown in Figure 9. The control inputs generated by NDI and RNDI controllers are described in Figure 10. To compensate the induced uncertainties, the spacecraft controlled by RNDI generates a large input force in axis around 27 sec (Figure 10(b)). Figure 11 shows the trajectory of the spacecraft controlled by the RNDI controller. The spacecraft maneuvers around a circle with a 100-meter radius. Although the spacecraft is vibrated due to the induced uncertainties, the error distance between the reference trajectory and the position of the follower is less than 1 m, as shown in Figure 9. Hence, the follower spacecraft controlled by the proposed RNDI can track the reference trajectory.
(a) Position tracking error in -direction
(b) Position tracking error in -direction
(c) Position tracking error in -direction
(a) Control inputs generated by NDI
(b) Control inputs generated by RNDI
In this paper, the robust nonlinear dynamic inversion control strategy that improves the robustness of NDI has been proposed. NDI is a nonlinear control technique that eliminates the need of linearizing and designing gain-scheduled controllers for each equilibrium point by canceling the original dynamics. Because NDI removes the system nonlinearities directly, it provides an opportunity to overcome the difficulties of ensuring stabilities and performances between various operational points while gain-scheduling. However, the main drawback of designing NDI controller is the weak robustness due to difficulties in obtaining accurate information of the nonlinear system dynamics. In contrast to NDI, SMC is considered a robust nonlinear control technique that uses switching values as inputs to force the system states into a sliding surface and to maintain the states on it. The proposed RNDI controller is designed by combining the conventional NDI controller and switching inputs analyzed in SMC. Hence, RNDI takes the advantages of both NDI and SMC, such that it(i)is easy to design and implement;(ii)eliminates the need of gain-scheduling;(iii)is easy to achieve the system required performance due to the similar concept to classical control methods; and(iv)is inherently robust.
However, the drawback of SMC such as the chattering problem still remains as a problem of RNDI control. It is expected that various chattering-free methods can be used to reduce the effect of chattering phenomenon, for example, replacing the sign function into the saturation function.
Moreover, the equivalence of NDI input and equivalent input designed by the identity sliding surface is also analyzed in this paper. The reduced order dynamics on the sliding surface can be converted to the user-selected desired dynamics. As a result, the difficulties in designing a sliding mode controller for satisfying the specific system performances are converted to a designing problem of the desired dynamics. Hence, RNDI provides an opportunity to solve the difficulties in selecting the sliding surface of SMC. The effectiveness of the proposed RNDI controller is confirmed by a set of simulations with application to the spacecraft formation flying.
|G:||Universal gravity constant|
|M:||Mass of the Earth|
|:||Mass of the follower spacecraft|
|:||Mass of the leader spacecraft|
|:||Distance from the center of the Earth to the center of the follower spacecraft|
|:||Distance from the center of the Earth to the center of the leader spacecraft|
Conflict of Interests
The authors declare that there is no conflict of interests regarding the publication of this paper.
This research was supported by the MSIP (Ministry of Science, ICT & Future Planning), Korea, under the C-ITRC (Convergence Information Technology Research Center) support program (NIPA-2014-H0401-14-1004) supervised by the NIPA (National IT Industry Promotion Agency).
- Y. Lv, Q. Hu, G. Ma, and J. Zhou, “6 DOF synchronized control for spacecraft formation flying with input constraint and parameter uncertainties,” ISA Transactions, vol. 50, no. 4, pp. 573–580, 2011.
- D. Forta, F. Bordi, and C. Scolese, “Low-cost minimum size satellites for demonstration of formation flying modes at small, kilometer-size distance,” in Proceedings of the 13th AIAA/USU Conference on Small Satellite, SSC99-VI-3, pp. 1–15, 1999.
- M. S. De Queiroz, V. Kapila, and Q. Yan, “Adaptive nonlinear control of multiple spacecraft formation flying,” Journal of Guidance, Control, and Dynamics, vol. 23, no. 3, pp. 385–390, 2000.
- J. Georgie and J. Valasek, “Evaluation of longitudinal desired dynamics for dynamic-inversion controlled generic reentry vehicles,” Journal of Guidance, Control, and Dynamics, vol. 26, no. 5, pp. 811–819, 2003.
- D. Ito, J. Georgie, J. Valasek, and D. T. Ward, Reentry Vehicle Flight Controls Design Guidelines: Dynamic Inversion, NASA/TP—2002–210771, 2002.
- A. J. Ostroff and B. J. Bacon, “Force and moment approach for achievable dynamics using nonlinear dynamic inversion,” in Proceedings of the AIAA Guidance, Navigation, and Control Conference and Exhibit, pp. 424–434, Reston, Va, USA, 1999.
- D. Enns, D. Bugajski, R. Hendrick, and G. Stein, “Dynamic inversion: an evolving methodology for flight control design,” International Journal of Control, vol. 59, no. 1, pp. 71–91, 1994.
- J. A. Richard, J. M. Buffington, A. G. Sparks, and S. S. Banda, Robust Multivariable Flight Control, Springer, New York, NY, USA, 1994.
- R. J. Adams and S. S. Banda, “Robust flight control design using dynamic inversion and structured singular value synthesis,” IEEE Transactions on Control Systems Technology, vol. 1, no. 2, pp. 80–92, 1993.
- M. B. McFarland and S. M. Hoque, “Robustness of a nonlinear missile autopilot designed using dynamic inversion,” in Proceedings of the AIAA Guidance, Navigation, and Control Conference and Exhibit, AIAA-2000-3970, Denver, Colo, USA, August 2000.
- G. Looye and H.-D. Joos, “Design of robust dynamic inversion control laws using multi-objective optimization,” in Proceedings of the AIAA Guidance, Navigation, and Control Conference and Exhibit, AIAA-2001-4285, 2001.
- P. B. Acquatella, W. Falkena, E. van Kampen, and Q. P. Chu, “Robust nonlinear spacecraft attitude control using incremental nonlinear dynamic inversion,” in Proceedings of the AIAA Guidance, Navigation, and Control Conference and Exhibit, Minneapolis, Minn, USA, August 2012.
- P. K. Menon, V. R. Iragavarapu, and E. J. Ohlmeyer, “Nonlinear Missile Autopilot Design using Time-Scale Separation,” in Proceedings of the AIAA Guidance, Navigation, and Control Conference and Exhibit, AIAA-1997-3765, 1997.
- A. Steinicke and G. Michalka, “Improving transient performance of dynamic inversion missile autopilot by use of backstepping,” in Proceedings of the AIAA Guidance, Navigation, and Control Conference and Exhibit, AIAA-2002-4658, Monterey, Calif, USA, August 2002.
- I. Yang, D. Kim, and D. Lee, “A flight control strategy using robust dynamic inversion based on sliding mode control,” in proceeding of the AIAA Guidance, Navigation, and Control Conference, August 2012.
- H. Sira-Ramirez, “Differential geometric methods in variable-structure control,” International Journal of Control, vol. 48, no. 4, pp. 1359–1390, 1988.
- V. I. Utkin, “Variable structure systems with sliding modes,” IEEE Transactions on Automatic Control, vol. 22, no. 2, pp. 212–222, 1977.
- R. A. DeCarlo, S. H. Zak, and G. P. Matthews, “Variable structure control of nonlinear multivariable systems: a tutorial,” Proceedings of the IEEE, vol. 76, no. 3, pp. 212–232, 1988.
- J. Y. Hung, W. Gao, and J. C. Hung, “Variable structure control: a survey,” IEEE Transactions on Industrial Electronics, vol. 40, no. 1, pp. 2–22, 1993.
- G. Papageorgiou and M. Polansky, “Tuning a dynamic inversion pitch axis autopilot using McFarlane-Glover loop shaping,” Optimal Control Applications & Methods, vol. 30, no. 3, pp. 287–308, 2009.
Copyright © 2014 Inseok Yang et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.