Engineering Applications of Artificial Intelligence 81 (2019) 145–156
Contents lists available at ScienceDirect
Engineering Applications of Artificial Intelligence journal homepage: www.elsevier.com/locate/engappai
Fuzzy control allocation of microthrusters for space debris removal using CubeSats✩ Marsil A.C. Silva ∗, Minghe Shan, Angelo Cervone, Eberhard Gill Faculty of Aerospace Engineering, TU Delft, The Netherlands
ARTICLE Keywords: Control allocation Fuzzy Microthruster CubeSat
INFO
ABSTRACT This paper presents an innovative approach combining a fuzzy controller and a control allocation method applied to the control problem of allocating actuators’ efforts in an over-actuated system. The controller is applied to a space debris removal mission using a deployable net on-board a 3U CubeSat. The controller calculates the necessary effort of each thruster on-board the spacecraft to compensate the disturbances generated by the firing of the bullets attached to the borders of the net. Two cases with four and six thrusters are tested in a simulation scenario with experimental data. The simulation also covers the non-nominal situation of failure in one of the thrusters. A Monte Carlo simulation is performed in order to assess different scenarios. Results show that the proposed approach successfully recovers the stability of the satellite within a reasonable time. A comparison against a traditional control allocation method is done to assess the performance of the proposed approach specially in terms of computational time. Results with both methods are similar in terms of stabilization time and computational time.
1. Introduction In recent years, there has been an increase in the number of small multi-mission platforms such as CubeSats, in an attempt to reduce costs of space missions. CubeSats have been used for different purposes including Earth observation, research and technology demonstration. However, a key technology that is still under development is the micropropulsion system that has the potential to significantly increase the capabilities of CubeSat missions. Such a system might extend the range of applications to include station keeping, orbit transfers, and removal of space debris. The latter has recently been subject of extensive research and development in an effort to reduce the amount of debris in orbit. According to the Space Debris Office (SDO) of the European Space Agency (ESA), space debris is defined as ‘‘all non-functional, human-made objects, including fragments and elements thereof, in Earth orbit or re-entering into Earth’s atmosphere’’ (ESA, 2018). Space debris poses a big threat to operational satellites which form a crucial infrastructure for society and to astronauts’ lives. According to the main source of information on space debris, the U.S. Space Surveillance Network (SSN), more than 18 900 objects larger than 10 cm have been cataloged as of April 2018 (Anz-Meador, 2018). Among the total number of objects in orbit, only 1987 spacecraft are active, i.e., around 10% of the objects are operating in an environment where 90% of the other objects are space debris (Kelso, 2018).
To mitigate the risk of collisions with those space debris objects, active space debris removal is of great relevance and urgency. According to Sorge (2015), ‘‘Active Debris Removal (ADR) involves changing the orbit of a debris object via the actions of another system’’. In the last two decades, many enabling ADR techniques, such as using a robotic arm (Reintsema et al., 2010), a harpoon (Reed et al., 2012), or a net (Bischof et al., 2004) have been proposed, discussed and analyzed. Among these ADR methods, the net capturing method is regarded as one of the most promising capturing methods due to its multiple advantages, e.g., it allows a large distance between the chaser satellite and the target, such that close rendezvous and docking are not mandatory. It is furthermore compatible to different sizes, shapes and orbits of space debris objects. Additionally, it is flexible, lightweight, cost efficient and less likely to generate more space debris objects (Shan et al., 2017b,a). The net capturing method deploys a light-weight net using a set of bullets that are fired in a diverging manner in the direction of the target spacecraft as depicted in Fig. 1. Once the net reaches the target, it will wrap itself around the body and allow the main satellite to move the target. The firing of the bullets will generate forces and torques on the main satellite that need to be compensated in order to keep the stability of the spacecraft and the safety of the mission. To this purpose, a set of thrusters installed in the chaser satellite is used to control the angular and linear motions. As indicated in Silva et al. (2018a), the thrusters need to provide relatively high thrust in a short
✩ No author associated with this paper has disclosed any potential or pertinent conflicts which may be perceived to have impending conflict with this work. For full disclosure statements refer to https://doi.org/10.1016/j.engappai.2019.02.008. ∗ Corresponding author. E-mail address:
[email protected] (M.A.C. Silva).
https://doi.org/10.1016/j.engappai.2019.02.008 Received 22 February 2018; Received in revised form 4 January 2019; Accepted 11 February 2019 Available online xxxx 0952-1976/© 2019 Published by Elsevier Ltd.
M.A.C. Silva, M. Shan, A. Cervone et al.
Engineering Applications of Artificial Intelligence 81 (2019) 145–156
Nomenclature
period without the need of having extremely high specific impulses. In this context, microresistojets represent a suitable option for controlling the disturbances as they can produce relatively high thrust with low power consumption when compared, for instance, with ion thrusters, while having reasonably high specific impulses. Recently with the advance of Micro Electro Mechanical Systems (MEMS) technologies many MEMS thrusters have been developed and in particular the Vaporizing Liquid Microthruster (VLM) is one type of microresistojet that has demonstrated promising performances specially with the use of green propellants such as water (Silva et al., 2017; Guerrieri et al., 2017).
Abbreviations ADR CEM ESA
Active Debris Removal SDO Control Effectiveness SSN Matrix European Space Agency VLM
Space Debris Office Space Surveillance Network Vaporizing Liquid Microthrusters
MEMS Micro Electro Mechanical Systems Symbols Symbol Description
In this context, this paper proposes a novel fault tolerant fuzzy control allocation method to control a set of microresistojets on board of a space debris removal CubeSat equipped with a net deployment system. The proposed approach uses a control allocation method to automatically generate the rules used by the inference system of the fuzzy controller that actuates the thrusters. Control allocation methods are necessary when the system is over-actuated, i.e. there is redundancy in the set of actuators that allows multiple solutions for the generation of control efforts. There are many applications for such methods including the attitude/position control of spacecraft with thrusters (Servidia and Pena, 2002, 2005; Pena et al., 2000). Many different methods exist to solve the control allocation problem in unconstrained or constrained spaces (Oppenheimer, 2011; Johansen and Fossen, 2013) but they are often based on complex calculations that are computationally expensive in the context of the recent trend towards miniaturization of spacecraft that also requires reduction in computational costs. In this case, the use of fuzzy logic might help in simplifying the implementation of a control allocation method (Tohidy and Sedigh, 2013; Fan et al., 2011; Chang et al., 2016). As the fuzzy controller is based on a set of rules it is intended to help in reducing computational costs that are very important for such small systems as the case of CubeSats. The computational effort rises significantly when using traditional approaches of control allocation based on matrices calculations as they require matrix inversions that can be costly depending on the size of the system. With the approach presented here, the computational cost can be transferred from the operational phase to a design phase therefore reducing the computational effort specially in cases with a large number of actuators.
𝐈 𝑘𝑝 𝑘𝑟 𝑚
Control effectiveness matrix — torque Control effectiveness matrix Control effectiveness matrix — force Bullets shooting angle Position of thruster 𝑖 Orientation of thruster 𝑖 Thrust matrix with 𝑛 columns Thrust of thruster 𝑖 Inertia matrix Proportional gain Rate gain Spacecraft mass
𝑚 𝑛
Output dimension No Input dimension No
𝑞
Attitude quaternions
𝐀
𝐁
𝐁
𝛽 𝑑⃗𝑖 𝑒⃗𝑖 𝐅 𝐹𝑖
In the proposed approach, the rules of the fuzzy controller are automatically generated using a control allocation method (in this paper the redistributed pseudo inverse is used (Oppenheimer, 2011; Johansen and Fossen, 2013). The generation of the rules is usually done using expert’s knowledge of the system (Tohidy and Sedigh, 2013), however, when the system is over-actuated, there might be multiple solutions for the problem and a computational method might be needed to select the most appropriate configuration specially when a large set of actuators are to be used. Therefore, another advantage of the proposed approach is that it combines the intuitive part of the fuzzy system with the mathematically formal part of the control allocation method. This combination is important to comply with the needs of both simple and complex systems.
Time Symbol Description dep. No 𝑇⃗𝑒 𝑥𝑡 External torque
Time dep. Yes
No
𝑇⃗
Torque created by Yes thrusters
No
𝑇⃗𝑑
Disturbance torque Yes
No
𝜏
General output
Yes
No
𝑡
Time
-
No
(𝑠)
Yes
𝑈⃗ 𝑒 𝑥𝑡
Laplace transform Yes of input voltage External force Yes
Yes
𝑈⃗
No No No No
𝑈⃗ 𝑑 𝑢 𝑣 𝜔 ⃗ 𝑥 (𝑠)
Force created by thrusters Disturbance force General input Velocity Spacecraft rotation rate Position Laplace transform of output thrust
Yes Yes Yes Yes Yes Yes Yes
Yes
1.1. Notations and nomenclature Throughout this paper we use the following notation to represent mathematical quantities: • Bold upright (non-italic) capital letters for matrices. Example: 𝐀. • Non-bold italic arrowed letters for vectors. Example: 𝑣. ⃗ • Italic capital or small letters for other quantities. Example: 𝑚.
The proposed method is applied to two cases: one with four thrusters and the other with six thrusters considering failure, i.e., an abnormal situation caused by a fault. In this paper, we consider a failure as a situation in which one of the thrusters is not able to provide any thrust and we assume that the failure is instantaneously detected. Results show that the controller is able to control the spacecraft using the fuzzy control allocation method and recover stability in the nominal and in the failure situation. A Monte Carlo simulation is performed to assess the influence of different input parameters (including experimental values) in the response of the controller.
1.2. Paper outline The remainder of this paper is organized as follows: Section 2 presents the description of the problem and the requirements used to design the controller, Section 3 presents the spacecraft dynamics and the definition of the control allocation problem, the design of the controller is presented in Section 4, Section 5 shows the simulation results used to assess the performance of the proposed approach, and Section 6 presents the conclusions of the paper. 146
M.A.C. Silva, M. Shan, A. Cervone et al.
Engineering Applications of Artificial Intelligence 81 (2019) 145–156
Fig. 1. Representation of a space debris removal mission using the net capturing concept.
2. Mission description and requirements
can be controlled with a valve regulating the levels of thrust generated with a fast response time compared to gaseous flow. This is a very important feature that allows a more precise attitude control. In this paper, we use a simplified model of the thruster presented in Silva et al. (2018b) given by the following transfer function in its Laplace form:
Throughout this paper we analyze the performance of the proposed controller when applied to a CubeSat mission to remove space debris using a deployable net. The satellite is a 3U CubeSat, i.e. its size is 30 × 10 × 10 cm and mass of 4 kg , and we consider a maximum of 10 W generated by the electrical power system. The net deployment system is installed in the middle unit of the spacecraft and the remaining units are for the bus and propulsion system that, in the analyzed cases, contains either 4 or 6 thrusters. The spacecraft’s body is considered a cuboid with mass uniformly distributed in order to simplify the modeling, i.e., it reduces the inertia matrix to a diagonal matrix. The net deployment system is based on the one presented in Shan et al. (2017c), which deploys a net of 1 × 1 m using four bullets with mass of 30 g attached to the corners of the net. The bullets are fired with a velocity of 1.8 m∕s at an angle of 25◦ to assure that the net is open when it reaches the target. However, due to uncertainties in the operations the velocities and shooting angles might vary. In the experiment reported in Shan et al. (2017c) these values vary around ±0.14 m∕s and ±4.21◦ respectively. The options of propulsion systems for such small spacecraft are not many as most of the CubeSats launched to this date do not have a propulsion system. As indicated previously, a space debris removal mission would require a set of microthrusters with relatively high thrust to compensate the disturbances generated by the firing of the bullets within a reasonable time. Suppose all four bullets are fired at the same velocity of 1.8 m∕s and at the same angle 25◦ . If we want to compensate the linear momentum generated by the bullets within, as an example, 60 s after shooting them (this depends on the mission and the postcapturing operations), then the thrust generated by all thrusters should be at least around 3.3 mN for a 4 kg CubeSat. Similarly, to compensate the angular momentum generated by the bullets in a hypothetical case in which two bullets on the same side are fired with twice the velocities of the other two then the total thrust that should be generated is around 1.1 mN (if they are placed at the corners of the spacecraft). Considering a set of 4 thrusters on board the CubeSat (which is the minimum to achieve 3-axis attitude control (Pena et al., 2000), then the maximum required thrust for each thruster might be set to 1 mN. In this study, we selected a set of Vaporizing Liquid Microthrusters (VLM) that are able to generate thrust in the levels of 0.1 mN to 1 mN using pressures in the range 1 bar to 10 bar and low power consumption that fits within the assumed maximum power of 10 W (Silva et al., 2018a). Due to the fact the VLM works with a liquid propellant, it presents a great advantage in terms of control since the flow of liquid
(𝑠) 0.0017𝑒−0.002𝑠 = (𝑠) 0.0028𝑠 + 1
(1)
where the input (𝑠) is the voltage applied to the solenoid valve and the output (𝑠) is the thrust. 3. Spacecraft dynamics The spacecraft is modeled as a rigid body with constant mass, i.e. the mass of propellant ejected is considered negligible compared to the mass of the body. Then the angular and linear accelerations, with respect to the body reference frame located at the geometric center of the spacecraft, can be calculated based on the conservation of momentum. The angular acceleration is calculated by: [ ( ] ) 𝜔 ⃗̇ = 𝐈−1 − 𝜔 ⃗ × 𝐈𝜔 ⃗ + 𝑇⃗𝑒𝑥𝑡 (2) where 𝜔 ⃗ is the rotation rate of the body, 𝐈 ∈ R3×3 is the inertia matrix, and 𝑇⃗𝑒𝑥𝑡 is any external torque. The linear acceleration is calculated as follows: 1 ⃗ × 𝑣⃗ (3) 𝑣⃗̇ = 𝑈⃗ 𝑒𝑥𝑡 − 𝜔 𝑚 where 𝑣⃗ is the linear velocity, 𝑚 is the mass, and 𝑈⃗ 𝑒𝑥𝑡 is any external force. The external torque and external force are composed by the thrust generated by the thrusters and any disturbance (indicated with index 𝑑). 𝑇⃗𝑒𝑥𝑡 = 𝑇⃗ + 𝑇⃗𝑑
(4)
𝑈⃗ 𝑒𝑥𝑡 = 𝑈⃗ + 𝑈⃗ 𝑑
(5)
The orientation of the spacecraft with respect to any arbitrary reference frame can be represented using quaternions: ⎡0 ⎢ 𝜔 𝑞̇ = ⎢ 𝑥 ⎢ 𝜔𝑦 ⎢𝜔 ⎣ 𝑧
−𝜔𝑥 0 −𝜔𝑧 𝜔𝑦
−𝜔𝑦 𝜔𝑧 0 −𝜔𝑥
−𝜔𝑧 ⎤ ⎥ −𝜔𝑦 ⎥ 𝑞 𝜔𝑥 ⎥ ⎥ 0 ⎦
where 𝜔𝑥 , 𝜔𝑦 , and 𝜔𝑧 are the components of the vector 𝜔. ⃗ 147
(6)
M.A.C. Silva, M. Shan, A. Cervone et al.
Engineering Applications of Artificial Intelligence 81 (2019) 145–156
thrusters with respect to the spacecraft body and 𝑖 ∈ {1, … , 𝑛} and are defined as: [ ] 𝐀 = 𝑑⃗1 × 𝑒⃗1 … 𝑑⃗𝑛 × 𝑒⃗𝑛 (9) [ ] 𝐁 = 𝑒⃗1 … 𝑒⃗𝑛
(10)
Each thruster 𝑖 is bounded by lower and upper values 𝐹𝑚𝑖𝑛 ≤ 𝐹𝑖 ≤ 𝐹𝑚𝑎𝑥 . The control allocation problem is to find the column matrix of thrust forces 𝐅 = [𝐹1 , … , 𝐹𝑛 ]𝑇 , where the superscript 𝑇 denotes the transpose of a matrix, that generates the desired torques and/or forces on the spacecraft body in order to perform a maneuver or reject a disturbance. As indicated in Pena et al. (2000), the minimum number of thrusters to allow 3-axis torque generation is four without considering failures, in which case a minimum of 6 thrusters is necessary to tolerate failure in exactly one thruster. 4. Proposed approach — controller design The fuzzy controller determines, based on a set of rules, which thruster should be activated for the desired maneuver. The rules are defined according to the possible motion of the spacecraft, i.e. depending on which direction the body is rotating and/or translating. Therefore the number of rules depends on the number of degrees of freedom and the number of membership functions for each degree of freedom. For example, considering 6 degrees of freedom and 3 membership functions for each one (e.g. negative, zero and positive) a total of 36 rules would apply to the controller in order to have a complete map of inputs. However, the number of outputs and the respective number of membership functions defines how many output combinations are possible and in case there are multiple rules with the same output, those rules can be combined into one. The proposed fuzzy controller follows the algorithm shown in Fig. 2. The steps of the algorithm are explained in the following using the example of a thruster control system on board of a spacecraft to clarify the steps:
Fig. 2. Algorithm of the proposed fuzzy control allocation method.
3.1. Control allocation The control system of the thrusters has to be able to provide torques in all three axes in order to compensate any rotational momentum generated by the firing of the bullets attached to the capturing net. Also, the system has to provide a force mainly pointing in the 𝑧-axis direction that compensates the linear momentum generated by firing the bullets. The problem of control allocation is finding a set of actuators inputs 𝑢 ∈ R𝑛 that provides a desired output 𝜏 ∈ R𝑚 written as: 𝜏 = 𝐂𝑢
• Start: initialize all variables. • Check thrusters: check the status of the thrusters looking for failures. In this paper, a failure is when the thruster does not provide any thrust, i.e. 𝐹𝑖 = 0 for 𝑡 ≥ 𝑡𝑓 where 𝑖 indicates which thruster has failed at the instant 𝑡𝑓 . The control system is always able to detect the failures, so the problem of detecting the failure is not approached in this paper, however, an advanced fault detection method might also be used (Zolghadri, 2018) • Generate rules: in case of failure or in the beginning of the routine, i.e. 𝑡 = 0 s, the matrices 𝐀 and 𝐁 are updated zeroing the column corresponding to the faulty actuator if there is any. Then, the controller automatically generates the rules for the inference system. The inputs of the fuzzy controller are the target torques and forces to be generated by the thrusters (𝜏 in Eq. (7), 𝑇⃗ and 𝑈⃗ in Eq. (8)) and the output is the thrust that each thruster needs to generate (𝑢 in Eq. (7) and 𝐅 in Eq. (8)). The outputs calculated by a standard control allocation method (it can be any method) is used as the consequent of the rules. For example, suppose that 𝐅 = [1, 0, 0, 1]𝑇 mN is the output calculated by the control allocation method for an input 𝑇⃗ = [1, −1, 0]𝑇 mN m, then a possible rule can be:
(7)
where 𝐂 ∈ R𝑚×𝑛 is a matrix of constant values (in case of linear systems) and it is called control effectiveness matrix. In case of an unconstrained system, the vector 𝑢 can be found simply by solving 𝐂−1 𝜏 = 𝑢 where the superscript −1 denotes the inverse of a matrix. However, in practice most of the systems are constrained by physical characteristics and the direct solution might be an unachievable state within the time frame considered, therefore an approach that takes into account actuator’s upper and lower boundaries and rate limits has to be considered (Johansen and Fossen, 2013). 3.1.1. Thrust allocation A thrust control system with 𝑛 thrusters is a constrained type of system that can be written in the form (Pena et al., 2000): ⎧⃗ ⎪𝑇 = 𝐀𝐅 ⎨ ⎪𝑈⃗ = 𝐁𝐅 ⎩
– 𝐈𝐅
𝑇𝑥 = 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒
– 𝐓𝐇𝐄𝐍
(8)
𝐀𝐍𝐃 𝑇𝑦 = 𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑒
𝐅 = [𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒,
𝑧𝑒𝑟𝑜,
𝑧𝑒𝑟𝑜,
𝐀𝐍𝐃 𝑇𝑧 = 𝑧𝑒𝑟𝑜
𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒]𝑇
The reverse process is carried out to generate the rules for the activation of individual thrusters. For example, suppose that only the first thruster, i.e., 𝐅 = [1, 0, 0, 0]𝑇 mN, produces a torque 𝑇⃗ = [1, 1, 0]𝑇 mN m. Then the corresponding rule is created in the same manner as described for a given input. Finally, any duplicates is removed from the set of rules.
where 𝑇⃗ ∈ R3 is the torque, 𝐅 ∈ R𝑛×1 is a column matrix of 𝑛 thrusters containing the amplitude of the force of each thruster, 𝑈⃗ ∈ R3 is the force, 𝐀 ∈ R3×𝑛 and 𝐁 ∈ R3×𝑛 represent the configuration of the thrusters given the vectors of position 𝑑⃗𝑖 and orientation 𝑒⃗𝑖 of the 𝑛 148
M.A.C. Silva, M. Shan, A. Cervone et al.
Engineering Applications of Artificial Intelligence 81 (2019) 145–156
Table 1 Parameters used in the simulations. Parameter
Value
Description
Spacecraft
𝑚 𝑙 ℎ 𝑤
4 kg 0.1 m 0.1 m 0.3 m
Mass Length Height Width
Bullets
𝑚𝑏 𝑣𝑚𝑎𝑥 𝛽
30 g 1.8 m∕s 25◦
Mass Speed Shooting angle
Controller
𝑘𝑝𝑇 𝑘 𝑟𝑇 𝑘𝑝𝐹 𝑘 𝑟𝐹
0 −100 0 −200
Torque position gain Torque rate gain Force position gain Force rate gain
Fuzzy
[𝑇1 , … , 𝑇7 ] [𝐹1 , 𝐹2 , 𝐹3 , 𝐹4 ]
[−1.0, −0.005, −0.001, 0.0, 0.001, 0.005, 1.0] [−1.0, −0.001, 0.0, 0.0]
See Fig. 4 See Fig. 4
Table 2 Input parameters used in the Monte Carlo simulation. 4 Thrusters Parameter
Type
Bullets velocities Integration time
Random Fixed
Count 5 3
Total runs
Note 1.44 m∕s to 2.16 m∕s {0.01 s, 0.05 s, 0.1 s} 15
6 Thrusters Parameter
Type
Bullets velocities Integration time Failure instant Failure thruster
Random Fixed Fixed Fixed
Total runs
Count 5 1 4 6
Note 1.44 m∕s to 2.16 m∕s Selected 0.01 s {0 s, 3 s, 50 s} {1, 2, 3, 4, 5, 6}
120
Fig. 3. Representation of the 3U CubeSat considered in the simulations (case with 4 thrusters). The dotted red arrows represent the direction in which the bullets are fired and the dashed blue arrows represent the thrusters.
• Fuzzy control: fuzzify the inputs, use the rules generated with the control allocation method to calculate the outputs, and defuzzify the outputs. The type of fuzzy controller can be any type including adaptive fuzzy or hybrid neural/fuzzy approaches (Passino, 2011; Passino et al., 1998). • Stop control: check the stopping criteria. In most cases this can be when the error between the reference inputs and the outputs of the system is less than a certain threshold.
to capture space debris. A Monte Carlo simulation for two configurations with four and six thrusters has been performed to assess the performance of the controller with different input parameters. Table 1 shows the parameters used in the simulations and Table 2 shows the parameters used in the Monte Carlo simulation. Fig. 3 shows a diagram of the satellite with arrows indicating the position and direction of each thruster (blue) as well as the information of the bullets (red). The thrusters in this case are slightly tilted with respect to 𝑧-axis in order to provide rotational capabilities in that axis and positioned at the corners of the structure to provide maximum torque.
The rules for the fuzzy controller can be generated using any control allocation method, e.g. redistributed pseudo inverse, daisy chaining, etc. (Johansen and Fossen, 2013), and can also be generated offline for all possible failures. In case of systems with a small number of actuators, the rules might also be generated using expert’s knowledge about the system. The fuzzification of the inputs can be done with any type and number of membership functions, however, if one is concerned about computational cost then it is recommended to keep the number of membership functions as low as possible to reduce the number of rules. The fuzzy inference method (Mamdami or Takagi–Sugeno) and the defuzzification method can be any method that best suits the process. The proposed approach can be applied to any control allocation problem and it is specially recommended for applications with limited computational resources. In the following section, we present the application of the proposed approach to the control allocation of thrusters on-board of a spacecraft.
5.1. Controller design The fuzzy controller has been designed with four inputs: the first three are the components of the target torque vector to be generated by the thrusters and the fourth is the component of the target force vector to be generated by the thrusters. The target torque and force are calculated using a simple control law given by (Wie and Barba, 1985): 𝑇𝑖 = 𝑘𝑝𝑇 𝑞̂𝑒𝑖 + 𝑘𝑟𝑇 𝜔𝑖
(11)
𝐹𝑖 = 𝑘𝑝𝑇 𝑥𝑖 + 𝑘𝑟𝐹 𝑣𝑖
(12)
where 𝑖 ∈ {𝑥, 𝑦, 𝑧} indicates the vector component, 𝑘𝑝 is the position gain, 𝑘𝑟 is the rate gain, and 𝑞̂𝑒 are the vectorial components of the error quaternion defined by 𝑞𝑒 = 𝑞 −1 ⊗ 𝑞𝑡 where 𝑞𝑡 represents the target attitude, ⊗ is the multiplication of two quaternions and the index −1 indicate the inverse of a quaternion. In the case approached in this paper, the position gains are set to zero as the goal is to reduce the linear and angular velocities only.
5. Simulation results The proposed approach has been applied to the control allocation of thrusters on-board of a spacecraft. The thrusters are used to compensate disturbances generated during the deployment of a net that is used 149
M.A.C. Silva, M. Shan, A. Cervone et al.
Engineering Applications of Artificial Intelligence 81 (2019) 145–156
Finally, the control allocation part of the rule generation step was done using the redistributed pseudo-inverse method which is a constrained linear method, i.e. it provides a solution considering the constraints of the actuators, however, it does not guarantee that an optimal solution is always found (Johansen and Fossen, 2013). The method starts solving (6) to obtain 𝑢 without constraints and if the outputs are within the bounds (not saturated) then it found a feasible solution. In case one or more outputs are saturated, then the corresponding elements of the output are kept constant at the saturated values and the non-saturated elements are re-calculated using a reduced control effectiveness matrix. 5.2. Simulation cases The algorithm of the system was implemented in MATLAB® (The MathWorks, Inc., Natick, MA, USA) version R2016b based on the equations shown in Sections 2 and 3 using a standard ordinary-differentialequation solver (ode23s). In all simulations, each thruster 𝑖 is bounded by a lower and an upper limit defined by 0 mN ≤ 𝐹𝑖 ≤ 1.0 mN. Three test cases have been simulated to assess the performance of the controller:
Fig. 4. Membership functions for the angular velocity (a) and linear velocity in the 𝑧-axis (b).
The first three inputs were designed to have triangular/trapezoidal membership functions with three levels: negative (represented by ‘−’), zero (represented by ‘0’) and positive (represented by ‘+’). Fig. 4-a shows the three functions for one of the inputs (𝜔), where the values are defined in Table 1. The fourth input, the force, is defined with only two levels negative and zero as this input is expected to be always in this range due to the characteristics of the application. Fig. 4-b shows the membership functions of this input where the values are defined in Table 1. The number of levels for each input was defined as two and three in order to keep the number of rules to a minimum. The shape of the membership functions, i.e. triangular/trapezoidal, was selected in order to generate a sharper output surface. As the position and orientation of each thruster is constant with respect to the spacecraft body we can assume that matrices 𝐀 and 𝐁 in Eq. (8) are constant from the beginning. Therefore, the rules of the fuzzy controller stay the same as long as no thruster fails, in which case the matrices must be adjusted to exclude the faulty thruster resulting in a different set of rules. The fuzzy inference method chosen is the Takagi–Sugeno method that implies that the output is either a constant value or a linear function of the inputs. The outputs are the levels of thrust from 0 to 1 (scaled to the maximum thrust possible) for each of the thrusters installed in the spacecraft. The ‘‘and’’ method was set to the minimum of the fuzzified inputs and the defuzzification method was set to weighted average of all the rule outputs. Other options related to the controller were kept as the default values implemented in the MATLAB® (The MathWorks, Inc., Natick, MA, USA) toolbox for the Takagi–Sugeno type of controller (see Fig. 5).
1. 4 thrusters, no failures and ideal shooting of the bullets (no torque generated) 2. 4 thrusters, no failures and bullets data from the experiment reported in Shan et al. (2017c) 3. 6 thrusters, failure in one thruster during the operation and bullets data from the experiment Given the two configurations with four and six thrusters, we can calculate the analytical solution for the time to stabilize the spacecraft. The solution for the linear motion is calculated considering the ideal case when all bullets are fired with the same velocity. In such case, all thrusters are switched on with maximum thrust. Similarly, the solution for the angular motion is calculated considering a hypothetical case when two bullets are fired with double the speed of the other two. In the case with four thrusters, the time to stop the linear motion is 𝑡𝑙 = 49.7 s and to stop the angular motion is 𝑡𝑎 = 14.2 s. In the case with six thrusters 𝑡𝑙 = 33.2 s and 𝑡𝑎 = 18.4 s. Figs. 6 and 7 show the achievable forces and torques. The different colors represent the achievable volumes without one of the thrusters. The reader is suggested to check the supplementary files in order to better visualize the Figures. 5.3. Case 1: 4 thrusters with ideal shooting The thrusters are ideally positioned in such a way to provide the maximum torques around the 𝑥 and 𝑦 axes, i.e. in the corners of the
Fig. 5. Diagram of the complete system including the controller and the spacecraft.
150
M.A.C. Silva, M. Shan, A. Cervone et al.
Engineering Applications of Artificial Intelligence 81 (2019) 145–156
Fig. 6. Achievable torque and force using four thrusters. The colors represent the achievable volume without one of the thrusters in the sequence: red — thruster 1, blue — thruster 2, green — thruster 3, yellow — thruster 4. Check supplementary files for the 3D figure . (For interpretation of the references to color in this figure legend, the reader is referred to the web version of this article.)
Fig. 7. Achievable torque and force using six thrusters. The colors represent the achievable volume without one of the thrusters in the sequence: red — thruster 1, blue — thruster 2, green — thruster 3, yellow — thruster 4, cyan — thruster 5, magenta — thruster 6. Check supplementary files for the 3D figure . (For interpretation of the references to color in this figure legend, the reader is referred to the web version of this article.)
satellite, and they are all tilted by 𝛼 = 10◦ with respect to 𝑧-axis in order to provide torque also in that direction. With this configuration the controller can compensate all torque disturbances in all directions and a force in the 𝑧 direction. It is also possible to compensate forces in other directions but for this application they are considered negligible.
0 [ ] ⎡ 𝑒⃗1 𝑒⃗2 𝑒⃗3 𝑒⃗4 = ⎢ sin(𝛼) ⎢ ⎣cos(𝛼) ⎡ 0.0579 𝐀 = ⎢ 0.1477 ⎢ ⎣−0.0260
The matrices 𝐀 and 𝐁 are defined based on the position and orientation vectors 𝑑⃗ and 𝑒⃗ of each thruster with respect to the body reference frame positioned at the geometric center of the cuboid: [
] ⎡−0.1500 𝑑⃗1 𝑑⃗2 𝑑⃗3 𝑑⃗4 = ⎢ 0.0500 ⎢ ⎣−0.0500
−0.1500 −0.0500 −0.0500
0.1500 −0.0500 −0.0500
0.1500 ⎤ 0.0500 ⎥ m ⎥ −0.0500⎦
⎡ 0 𝐁 = ⎢0.1736 ⎢ ⎣0.9848 151
0 − sin(𝛼) cos(𝛼)
−0.0579 0.1477 0.0260 0 −0.1736 0.9848
0 − sin(𝛼) cos(𝛼)
−0.0579 −0.1477 −0.0260 0 −0.1736 0.9848
0 ⎤ sin(𝛼) ⎥ ⎥ cos(𝛼)⎦
0.0579 ⎤ −0.1477⎥ m ⎥ 0.0260 ⎦ 0 ⎤ 0.1736⎥ ⎥ 0.9848⎦
(13)
(14)
M.A.C. Silva, M. Shan, A. Cervone et al.
Engineering Applications of Artificial Intelligence 81 (2019) 145–156
Fig. 8. Linear velocities of the spacecraft with respect to the body frame (top) and displacement (bottom) in the case with 4 thrusters and ideal shooting of the bullets.
Fig. 10. Linear velocities of the spacecraft with respect to the body frame, and angular velocity in the case with 4 thrusters and experimental data.
differ from each other, the satellite will be subject to not only forces but also torques causing it to rotate while moving backwards. The controller has to be able to compensate both disturbance in order to keep the stability of the spacecraft. As we can see in Fig. 10 the satellite’s rotation is significantly reduced while it is braked by the thrusters. The residual spin rates are considered low enough for stability and if necessary might be further reduced using more precise attitude control actuators (e.g. reaction wheels). Fig. 12 shows that the displacement in the 𝑧-axis is up to −1.5 m, however, as Fig. 11 shows, the controller reduces the actuation effort at around 50 s as the velocity is approaching zero. We can also see the changes in the actuators between 10 s and 20 s which coincide with the moments when the rotation rates of different axes approach zero. The attitude change is at most 20◦ and might be further reduced in a post-capture phase using the attitude control system. Fig. 9. Thruster actuation level in the case with 4 thrusters and ideal shooting of the bullets. All thrusters have the same activation profile.
5.5. Case 3: 6 thrusters with experimental data and failure The thrusters for this case are positioned in a similar manner as suggested in Pena et al. (2000) which allows for the failure of one thruster. The failure considered is of zero response type meaning that the thruster cannot provide any thrust. In this case, the satellite is stabilized even when one thruster stops working during the operation. For this configuration, the matrices defining the position and orientation of the thrusters are: [ ] 𝑑⃗1 𝑑⃗2 𝑑⃗3 𝑑⃗4 𝑑⃗5 𝑑⃗6
Fig. 8 shows the linear velocity of the spacecraft with respect to the body axis. As it is seen the spacecraft moves in only one direction and it is braked by the thrusters which are fired with the same levels. In Fig. 9 we see the levels of the thrusters that are fired together with the same thrust level in order to brake the satellite without producing torques. Fig. 8 shows the total linear displacement of the spacecraft due to the applied forces which is −1.029 m. As the bullets are ideally fired, there is no angular displacement but the total linear displacement might influence the post-capturing phase. However, the displacement during the time expected for the net to reach the target, which is around 1 s as indicated in Shan et al. (2017b), is less than −5 cm.
⎡ 0.0400 = ⎢−0.0500 ⎢ ⎣−0.0500
5.4. Case 2: 4 thrusters with experimental data [
In this case we used the data presented in Shan et al. (2017c) to estimate the initial magnitude and direction of the velocities of each bullet. The velocities in m∕s are: ⎡𝑣⃗1 ⎤ ⎡−0.5316 ⎢ ⎥ ⎢ ⎢𝑣⃗2 ⎥ = ⎢ 0.4663 ⎢𝑣⃗3 ⎥ ⎢−0.3567 ⎢𝑣⃗ ⎥ ⎢ 0.4714 ⎣ 4⎦ ⎣
−0.5358 −0.6725 0.3382 0.2851
1.6090⎤ ⎥ 1.6937⎥ 1.4783⎥ 1.6974⎥⎦
𝑒⃗1 𝑒⃗2 𝑒⃗3 𝑒⃗4 𝑒⃗5 𝑒⃗6 ⎡0.0990 = ⎢0.0990 ⎢ ⎣0.9901
(15)
⎡−0.0446 𝐀 = ⎢−0.0446 ⎢ ⎣ 0.0089
where the indices identify the corners where the bullets are. The norm of the four velocities is 𝑣̄ = [1.5579 1.7773 1.8811 1.7846]𝑇 m∕s, as they
−0.0454 −0.0100 −0.0500
0.0500 −0.0400 −0.0500
0.0100 0.0454 −0.0500
−0.0454 0.0100 −0.0500
−0.0100⎤ 0.0454 ⎥ m ⎥ −0.0500⎦
] 0 0.1961 0.9806 0 0.0446 −0.0089
−0.0990 −0.0990 0.9901 −0.0446 −0.0446 −0.0089
−0.1961 0 0.9806 0.0446 0 0.0089
0 −0.1961 0.9806 0 0.0446 0.0089
0.1961⎤ 0 ⎥ ⎥ 0.9806⎦ 0.0446 ⎤ 0 ⎥m ⎥ −0.0089⎦ (16)
152
M.A.C. Silva, M. Shan, A. Cervone et al.
Engineering Applications of Artificial Intelligence 81 (2019) 145–156
Fig. 11. Thrusters actuation levels in the case with 4 thrusters and experimental data.
⎡ 0.0400 𝐁 = ⎢−0.0500 ⎢ ⎣−0.0500
−0.0454 −0.0100 −0.0500
0.0500 −0.0400 −0.0500
0.0100 0.0454 −0.0500
−0.0454 0.0100 −0.0500
−0.0100⎤ 0.0454 ⎥ ⎥ −0.0500⎦ (17)
which represent 6 thrusters pointing mainly in the 𝑧-axis direction and tilted to an angle either in x or 𝑦-axis or both as shown in Fig. 13. The failure is injected in time 𝑡 = 3 s as highlighted in Fig. 15. As we can see, thruster 1 is suddenly at 0 mN and the other thrusters are rearranged in order to compensate the failure of the former. Fig. 14 shows that the controller was able to compensate the disturbances in rotation and linear velocity even after a failure occurs during the operation (see Fig. 16). 5.6. Monte Carlo analysis The input parameters for the simulation of the controller that have been analyzed are summarized in Table 2. The velocities of the bullets were randomly generated with uniform distribution in the range 1.44 m∕s to 2.16 m∕s (corresponding to 20%). The integration time corresponds to the time to fire the bullets and it is used to calculate the force of each bullet. The failure instant is the moment when one of the thrusters fails. The output of the simulation is the time necessary to stabilize the rotation (𝑡𝑎 ) and to stabilize the linear velocity (𝑡𝑙 ). The threshold for stabilization is considered in this paper when the total angular velocity is below 0.01 ◦ ∕s and the linear velocity in the 𝑧 direction is below 0.003 m∕s; these values were empirically selected based on the actuation levels of the thrusters and when they all approach zero. These two times have been measured for cases 2 and 3. A total of 15 runs were performed for the first case and 120 for the second. In all runs the controller was able to compensate the angular and linear disturbances generated by the bullets. For the configuration with four thrusters the average and standard deviation times were 𝑡𝑙 = 48.6 ± 4.1 s and 𝑡𝑎 = 7.9 ± 2.3 s. For the configuration with six thrusters the average and standard deviation times were 𝑡𝑙 = 48.7 ± 11.9 s and 𝑡𝑎 = 3.8 ± 2.5 s. Tables 3 and 4 show the results of the analysis of variance to assess the influence of the parameters of the Monte Carlo simulation in the time necessary to
Fig. 12. Linear and angular displacement during the deployment of the net in the case with 4 thrusters and experimental data.
stabilize the spacecraft and correct the angular and linear disturbances. As we can see, the influence of the different velocities of the bullets in both responses are not significantly different. However, the integration time for the calculation of the momentum produced by the bullet interferes in the correction of the angular disturbance, therefore in the simulations with six thrusters we used the minimum value to reduce this influence. In case 2, with six thrusters, we can see that the influence of the different velocities of the bullets in the time responses is significantly high (𝑝-value approaching zero). The time in which the failure occurs, however, does not significantly affect the time to correct the disturbances in the angular momentum but only in the linear momentum. The specific thruster that fails significantly influences the time to correct the linear disturbance but not the angular disturbance. The difference in performance from case 1 to case 2 might be due to the thrusters’ placement as in case 2 they are optimized to allow redundancy in the generation of thrust. 153
M.A.C. Silva, M. Shan, A. Cervone et al.
Engineering Applications of Artificial Intelligence 81 (2019) 145–156
Fig. 13. Views of the satellite model indicating the position and orientation of the 6 thrusters (blue arrows) and the bullets (red arrows). Table 3 Case 1: Results of the analysis of variance of the time to compensate the angular and linear disturbances. Angular disturbance Variable
Sum Sq.
d.o.f.
Mean Sq.
F
𝑝-value
Bullets’ speed Integration time Error Total
16.1884 4.9394 2.8763 24.004
4 1 4 9
4.04709 4.93937 0.71907
5.63 6.87
0.0614 0.0587
Variable
Sum Sq.
d.o.f.
Mean Sq.
F
𝑝-value
Bullets’ speed Integration time Error Total
15.0197 4.7511 2.7234 22.4942
4 1 4 9
3.75492 4.75113 0.68084
5.52 6.98
0.0634 0.0575
Linear disturbance
of the proposed approach. The CGI has been included in the same algorithm used for the fuzzy controller using the toolbox available at Harkegard (2003). The results presented here are derived from the simulations with six thrusters (case 2). Table 5 shows a comparison between the times to stabilize the spacecraft in both angular and linear motions and the total running time. It is important to note that the CGI algorithm has a clear advantage on the running time as the algorithms were implemented in MATLAB® , which is optimized for operations involving matrices and
Fig. 14. Linear velocities of the spacecraft with respect to the body frame, and angular velocity in the case with 6 thrusters and experimental data.
5.7. Comparison with CGI A comparison of the proposed approach with the CGI (Cascade Generalized Inverse) is done in order to further assess the performance
Fig. 15. Thrusters actuation levels in the case with 6 thrusters and experimental data.
154
M.A.C. Silva, M. Shan, A. Cervone et al.
Engineering Applications of Artificial Intelligence 81 (2019) 145–156
Table 4 Case 2: Results of the analysis of variance of the time to compensate the angular and linear disturbances.
The proposed approach is expected to reduce the computational effort during the operation of the controller as it reduces the calculations to simple rules used by the fuzzy controller. The more complex calculations involving matrix inversions can be restricted to an offline phase or to when a failure occurs. Although this is also possible to be done with traditional approaches, where the results of the matrix inversions which are mostly related to the position and orientation of the thrusters that are fixed at the design can be stored in the memory instead of calculated every time. Future work will be focused on the control with variable control effectiveness matrices that might improve the robustness and flexibility of the controller. The fuzzy control allocation method might also be compared to other advanced approaches including artificial neural network and evolutionary optimization methods. The use of evolutionary algorithms to optimize the parameters of the membership functions will also be investigated. Finally, the proposed approach has to be tested in a real-time embedded system and compared to other approaches to assess their computational performance.
Angular disturbance Variable
Sum Sq.
d.o.f.
Mean Sq.
Bullets’ speed Failed thruster Time of failure Error Total
2 993.05 683.85 119.95 6 309.13 10105.98
4 5 2 78 89
748.262 136.771 59.973 80.886
Sum Sq.
d.o.f. 4 5 2 78 89
F
𝑝-value 9.25 1.69 0.74
0.0000 0.1467 0.4798
Mean Sq.
F
𝑝-value
915.524 179.932 12.735 3.654
250.58 49.25 3.49
0.0000 0.0000 0.0355
Linear disturbance Variable Bullets’ speed Failed thruster Time of failure Error Total
3 662.1 899.66 25.47 284.98 4 872.21
Acknowledgment The present work was supported by CNPq, Conselho Nacional de Desenvolvimento Científico e Tecnológico — Brasil. Appendix A. Supplementary data Supplementary material related to this article can be found online at https://doi.org/10.1016/j.engappai.2019.02.008. References Anz-Meador, P., 2018. Orbital debris quarterly news. In: NASA Orbital Debris Program Office, Volume 22, Issue 2, May. Bischof, B., Kerstein, L., Starke, J., Guenther, H., Foth, W., et al., 2004. Roger - robotic geostationary orbit restorer. Sci. Technol. Ser. 109, 183–193. Chang, Y., Yuan, R., Tan, X., Yi, J., 2016. Observer-based adaptive sliding mode control and fuzzy allocation for aero and reaction jets missile. Proc. Inst. Mech. Eng. I 230 (6), 498–511. http://dx.doi.org/10.1177/0959651816629540. ESA, 2018. Space Debris Themes in ESA, http://www.esa.int/Our_Activities/ Operations/Space_Debris, Accessed: 2018-01-26, URL http://www.esa.int/Our_ Activities/Operations/Space_Debris. Fan, Y., Meng, X., Yang, X., Liu, K., Zhu, J., 2011. Control allocation for a v/stol aircraft based on robust fuzzy control. Sci. China Inf. Sci. 54 (6), 1321–1326. http://dx.doi.org/10.1007/s11432-011-4257-0. Guerrieri, D.C., Silva, M.A.C., Cervone, A., Gill, E., 2017. Selection and characterization of green propellants for micro-resistojets. ASME J. Heat Transf. 139 (10), 9. http://dx.doi.org/10.1115/1.4036619. Harkegard, O., 2003. Quadratic Programming Control Allocation Toolbox (QCAT), Accessed in Aug/2018, URL http://research.harkegard.se/qcat/. Johansen, T.A., Fossen, T.I., 2013. Control allocationa survey. Automatica 49 (5), 1087–1103. http://dx.doi.org/10.1016/j.automatica.2013.01.035. Kelso, T.S., SATCAT Boxscore, in: http://www.celestrak.com/satcat/boxscore.asp, accessed in July 2018, 2018. Oppenheimer, M.W., 2011. Control allocation. In: Levine, W.S. (Ed.), The Control Handbook. Passino, K.M., 2011. Intelligent control. In: Levine, W.S. (Ed.), The Control Handbook - Control Systems Advanced Methods. Taylor and Francis Group, LLC. Passino, K.M., Yurkovich, S., Reinfrank, M., 1998. Fuzzy Control, first ed. Addison-Wesley Longman. Pena, R.S.S., Alonso, R., Anigstein, P.A., 2000. Robust optimal solution to the attitude/force control problem. IEEE Trans. Aerosp. Electron. Syst. 36 (3), 784–792. http://dx.doi.org/10.1109/7.869496. Reed, J., Busquets, J., White, C., 2012. Grappling system for capturing heavy space debris. In: 2nd European Workshop on Active Debris Removal, Paris, France. Reintsema, D., Thaeter, J., Rathke, A., Naumann, W., Rank, P., Sommer, J., 2010. Deos-the german robotics approach to secure and de-orbit malfunctioned satellites from low earth orbits. In: Proceedings of the i-SAIRAS, Sapporo, Japan. Servidia, P.A., Pena, R.S.S., 2002. Thruster design for position/attitude control of spacecraft. IEEE Trans. Aerosp. Electron. Syst. 38 (4), 1172–1180. http://dx.doi. org/10.1109/TAES.2002.1145741. Servidia, P.A., Pena, R.S., 2005. Spacecraft thruster control allocation problems. IEEE Trans. Automat. Control 50 (2), 245–249. http://dx.doi.org/10.1109/TAC.2004. 841923.
Fig. 16. Linear and angular displacement during the deployment of the net in the case with 6 thrusters and experimental data.
Table 5 Comparison of the time to stabilize the angular and linear motion of the spacecraft and the total running time with the two approaches. Time to stabilize (s)
Running time (s)
𝜔𝑥
𝜔𝑦
𝜔𝑧
𝑉𝑥
𝑉𝑦
𝑉𝑧
Fuzzy
Mean Max Min
12.5 83.9 1.1
7.6 33.6 1.1
66.2 99.2 6.3
75.1 88.8 38.4
76.2 89.0 30.6
77.2 89.0 64.4
133.9 134.9 133.1
Cgi
Mean Max Min
8.7 90.3 1.1
5.3 21.4 1.1
97.9 100.0 15.6
97.5 98.8 91.9
97.7 98.5 93.8
98.0 98.2 97.6
126.4 127.6 125.2
arrays. Nevertheless, the proposed approach achieves very close results in terms of running time. The performance regarding the time to stabilize the angular motion is somewhat similar. However, the proposed approach performs better in stabilizing the linear motion of the spacecraft. 6. Conclusions The proposed fuzzy control allocation method has successfully performed in different simulation scenarios considering two configurations with four and six thrusters on-board of a CubeSat. The situations including experimental data and failure in one thruster have been solved using the propose approach. In the latter case the controller was able to recover the stability of the satellite even after one of the thrusters failed. 155
M.A.C. Silva, M. Shan, A. Cervone et al.
Engineering Applications of Artificial Intelligence 81 (2019) 145–156 Silva, M.A.C., Silvestrini, S., Guerrieri, D.C., Cervone, A., Gill, E., 2018b. A comprehensive model for control of vaporizing liquid microthrusters. IEEE Trans. Control Syst. Technol. 1–8. http://dx.doi.org/10.1109/TCST.2018.2865789. Sorge, M., 2015. Understanding space debris: causes, mitigations, and issues. Crosslink 16 (1), 46–51. Tohidy, S., Sedigh, A.K., 2013. Fault tolerant fuzzy control allocation for overactuated systems. In: 2013 13th Iranian Conference on Fuzzy Systems (IFSC). pp. 1–5. http://dx.doi.org/10.1109/IFSC.2013.6675653. Wie, B., Barba, P.M., 1985. Quaternion feedback for spacecraft large angle maneuvers. J. Guid. Control Dyn. 8 (3), 360–365. Zolghadri, A., 2018. The challenge of advanced model-based fdir for real-world flightcritical applications. Eng. Appl. Artif. Intell. 68, 249–259. http://dx.doi.org/10. 1016/j.engappai.2017.10.012.
Shan, M., Guo, J., Gill, E., 2017a. Contact dynamic models of space debris capturing using a net. Acta Astronaut. http://dx.doi.org/10.1016/j.actaastro.2017.12.009. Shan, M., Guo, J., Gill, E., 2017b. Deployment dynamics of tethered-net for space debris removal. Acta Astronaut. 132, 293–302. http://dx.doi.org/10.1016/j.actaastro. 2017.01.001. Shan, M., Guo, J., Gill, E., Gobiowski, W., 2017c. Validation of space net deployment modeling methods using parabolic flight experiment. J. Guid. Control Dyn. 40, 3319–3327. http://dx.doi.org/10.2514/1.G002761. Silva, M.A.C., Guerrieri, D., Cervone, A., Gill, E., 2018a. A review of mems micropropulsion technologies for cubesats and pocketqubes. Acta Astronaut. 143, 234–243. http://dx.doi.org/10.1016/j.actaastro.2017.11.049. Silva, M.A.C., Guerrieri, D., van Zeijl, H., Cervone, A., Gill, E., 2017. Vaporizing liquid microthrusters with integrated heaters and temperature measurement. Sensors Actuators A 265, 261–274. http://dx.doi.org/10.1016/j.sna.2017.07.032.
156