Testing Bench Design and Tilting Propeller System Identification for
Transcription
Testing Bench Design and Tilting Propeller System Identification for
Testing Bench Design and Tilting Propeller System Identification for the Development and Control of a Thrust-vectoring Hovercraft by Joan Jorquera Grau A thesis submitted to the Graduate Office in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE IN ELECTRICAL ENGINEERING SOUTH DAKOTA SCHOOL OF MINES AND TECHNOLOGY RAPID CITY, SOUTH DAKOTA 2012 Prepared by: Degree Candidate - Joan Jorquera Grau Approved by: Major Professor - Charles R. Tolle, Ph.D. Graduate Education Representative - Vojislav D. Kalanovic, Ph.D. Committee Member - Jeff S. McGough, Ph.D. Chairman, Department of Electrical Engineering - Kazem Sohraby, Ph.D. Dean, Graduate Education - Douglas P. Wells, Ph.D. To Marta i Abstract Quadruple Rotor Unmanned Air Vehicles design and control is a fertile area of research in the Control and Robotics fields. Alternative “Quadrotor” concepts that use vector-thrusting through tilting propellers is becoming an area of interest. These devices offer different challenges and potential advantages that are worth investigating. On the other hand, it is necessary to build a theoretical foundation for the design and control of such devices. System Identification is a crucial step towards the design of advanced MultiInput Multi-Output control systems such as Linear-Quadratic Regulator (LQR) or Model Predictive Control (MPC). These control systems require a linearised model of the plant to be controlled, which in turn requires a non-linear model capturing the dynamics of the system. The work here presented aims at developing a basis for the design of tilting-rotor UAVs. This includes a thorough System Identification of a tilting propeller power-train under the ground effect and the design, assembly, mathematical modelling and controller design for a hovering platform with 3 Degrees of Freedom that makes use of the tilting power-train. In order to carry out the System Identification on the tilting power-train, a testbed capable of measuring two force components and torque is designed and assembled. Data is acquired under a range of different conditions. Then, a set of dynamic equations characterizing the tilting power-train are derived using Least Square Estimator and other techniques. A hovering platform is designed and assembled, and a non-linear mathematical model is derived. The non-linear model is linearised and used for the design of an informed LQR controller. The controller is then tested in simulation using the non-linear model. All the previous steps—testbed development, power-train system identification, hovering platform development, mathematical model derivation, controller design and simulation—lead to the development of a model for a tilting-propeller under the ground effect and the successful control of a thrust-vectoring hovering platform in simulation. ii Acknowledgments I would like to thank my thesis advisor, Dr. Charles R. Tolle, for his guidance and help. I would also like to thank all the professors under whom I had the pleasure to study during my stay at South Dakota School of Mines & Technology. Their dedication and passion made this experience exceed my expectations. I would also like to express my gratitude to James, Troy, Chad, Andrew and the rest of the SDSMT Controls Group members, for their assistance and for making the time I spent at the laboratory very enjoyable. Thanks to Ralph Grahek, who also helped me in critical moments with my research. Last but not least, I would like to thank my family and girlfriend for their support, love and encouragement during this venture. iii Table of Contents Abstract i Acknowledgments ii List of Figures vi List of Tables ix Nomenclature x 1 Introduction 1.1 Background 1.2 Motivation 1.3 Objective . 1.4 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 3 3 2 Review of Related Literature 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . 2.2 Propeller testing benches . . . . . . . . . . . . . 2.3 Common quadrotors and thrust-vectoring UAVs 2.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 6 8 11 3 Testing bench development 3.1 Introduction . . . . . . . . . . . 3.2 First designs . . . . . . . . . . 3.3 Final design . . . . . . . . . . . 3.3.1 Static analysis . . . . . 3.3.2 Frequency analysis . . . 3.4 Electric & electronic equipment 3.5 Testing bench characterization 3.6 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 14 15 17 20 26 26 29 32 . . . . . . . . . . . . 34 34 35 36 40 40 42 43 45 48 49 51 54 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Power-train characterization 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Thrust vectoring platform . . . . . . . . . . . . . . . . . . . . . 4.3 Theoretical model . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 OGE Thrust as a function of speed controller command 4.3.2 Ground Effect Factor . . . . . . . . . . . . . . . . . . . 4.3.3 Vertical and Horizontal projection functions . . . . . . . 4.3.4 Time response to a step input in δ and α . . . . . . . . 4.4 Test design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5 Experimental results and Model adjustment . . . . . . . . . . . 4.5.1 Test 1: Thrust vs PWM, TOGE (δ) . . . . . . . . . . . . 4.5.2 Test 2: Ground Effect Factor, Γ(Z̄) . . . . . . . . . . . . 4.5.3 Test 3: Vertical and horizontal force projection, Fz/x (α) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv 4.6 4.5.4 Test 4: TIGE (t) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.5 Test 5: Torque versus tilt angle M (α) . . . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Thrust-vectoring hovercraft design, 5.1 Introduction . . . . . . . . . . . . . 5.2 Platform design & components . . 5.3 Non-linear model . . . . . . . . . . 5.4 Linear Time-Variant model . . . . 5.5 Linear Time-Invariant model . . . 5.6 Localization . . . . . . . . . . . . . 5.7 Conclusions . . . . . . . . . . . . . . . . . . . . 62 62 63 66 71 73 78 86 6 Platform control 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Control design & validation through simulation . . . . . . . . . . . . . . . . 6.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 88 89 92 7 Conclusions 7.1 Direction of Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 95 References 98 Appendices 102 A Testing bench & Hovercraft 2D drawings 103 B Electric & electronic component B.1 Load cell specifications . . . . . B.2 Servo motor specifications . . . B.3 Load cell amplification board . model & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 59 60 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . specifications 119 . . . . . . . . . . . . . . . . . . . . . . . . . 119 . . . . . . . . . . . . . . . . . . . . . . . . . 120 . . . . . . . . . . . . . . . . . . . . . . . . . 121 C Testing bench characterization experimental points D Matlab/Simulink code for the propeller D.1 Simulink diagrams . . . . . . . . . . . . D.2 Data acquisition . . . . . . . . . . . . . D.2.1 Test 1 . . . . . . . . . . . . . . . D.2.2 Test 2 . . . . . . . . . . . . . . . D.2.3 Test 3 . . . . . . . . . . . . . . . D.2.4 Test 4 (transient) . . . . . . . . . D.2.5 Test 4 (frequency) . . . . . . . . D.2.6 Test 5 . . . . . . . . . . . . . . . D.3 Data post-processing . . . . . . . . . . . D.3.1 Test 1 . . . . . . . . . . . . . . . D.3.2 Test 2 . . . . . . . . . . . . . . . D.3.3 Test 3 . . . . . . . . . . . . . . . D.3.4 Test 4: transient and frequency . D.3.5 Test 5 . . . . . . . . . . . . . . . assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . characterization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 126 127 127 128 129 130 131 131 132 132 134 136 139 141 v E Mathematical model matrices 143 F Matlab code for the platform localization 145 G Controller implementation on hovercraft 147 Vita 154 vi List of Figures 1.1 Small Quadruple Rotor UAV or Quadrotor [1]. . . . . . . . . . . . . . . . . 2.1 2.2 2.3 2.4 2.5 2.6 2.7 Propeller testbench design in [2] . . . . . . . . . . . . . . . . . . Ironbird tilt-propeller testbed for tilting-rotor UAVs [3]. . . . . . Quadrotor UAV mounted on a Whitman training stand. . . . . . Quadrotor UAV in [4] . . . . . . . . . . . . . . . . . . . . . . . . Different wing configurations of the vehicle in [5], [6], [7] and [8]. Tilting rotor birotor UAV concept (left) and prototype (right). . Bell Eagle Eye UAV in vertical flight configuration. . . . . . . . . 3.1 Propeller assembly 3D drawing. Main components are a servo motor (black), a brushless AC motor (gold) and a propeller (grey disk). The the L-shaped piece (grey) serves the function of attaching the brushless and servo motors. “Black box” model of the propeller assembly. The system has two inputs and three outputs, plus environmental conditions (ground effect, wind, flow turbulence...). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . testing bench initial design. . . . . . . . . . . . . . . . . . . . . . . . . . . . Testing bench initial design finite element simulation. A traction force acting on the propeller is applied, with a slight tilt angle . . . . . . . . . . . . . . . Torquemeter for tilt-rotor testing bench. . . . . . . . . . . . . . . . . . . . . Torquemeter half-section view. . . . . . . . . . . . . . . . . . . . . . . . . . Testing bench final design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fully assembled propeller testing bench. . . . . . . . . . . . . . . . . . . . . Testing bench finite element mesh. . . . . . . . . . . . . . . . . . . . . . . . Testbench static analysis forces (purple arrows) and boundary conditions (green arrows). The boundary conditions consist on the bottom surfaces of the central shaft and the bottom load cell holder being fixed. The base and central pieces have been eliminated to reduce simulation time. . . . . . . . . Wheatstone bridge electrical circuit. The voltage across points B and D is zero in normal conditions. A variation in Rg’s resistance (strain gauge) causes a voltage differential between the mentioned points, as per the above equation. In this case, only R4 changes its resistance (G-bridge configuration). However, the sensor can occupy two or four arms of the bridge. Image from [9]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Load cell used in the testing bench [10]. . . . . . . . . . . . . . . . . . . . . Stress results at F z load cell. . . . . . . . . . . . . . . . . . . . . . . . . . . Stress results at M load cell. . . . . . . . . . . . . . . . . . . . . . . . . . . Stress results at F x load cell. . . . . . . . . . . . . . . . . . . . . . . . . . . Sensor and data acquisition subsystem. . . . . . . . . . . . . . . . . . . . . . Roman-type scale mounted on a platform to lift the propeller. . . . . . . . . Correlation between the voltage delivered by the load cells and the forces Fx , Fy , and torque M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 8 9 10 11 12 13 14 15 16 17 18 18 19 20 21 22 23 24 25 25 25 29 30 31 Thrust-vectoring platform concept. The top view (top) and rear view (bottom) are illustrated in this figure. . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 vii 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 5.1 5.2 5.3 Tandem rotor overlap induced power correction in hover as derived from momentum theory and compared to measurements. Data sources: Dingeldein(1954) and Stephnieski & Keys (1984). Figure from [11]. . . . . . . . . . . . . . . . 38 Torque caused by the center of mass displacement with respect to the tilting axis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Comparison between Out of Ground Effect (left) and In Ground Effect (right) situations. In the left picture, the wake is not significantly affected by the ground, and hence the ground effect is small. In the right picture, wake is compressed by the proximity of the ground, which in turn affects the propeller by increasing the lifting force. Illustration from Leishman[11]. 41 Increase in rotor thrust versus distance from the ground for a variety of helicopters (hovering). Illustration from Leishman[11]. Data sources: Fradenburgh (1972) and Hayden (1976). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Influence of the k parameter on the Ground Effect coefficient curve. . . . . 43 a and τ parameter retrieval of a first order system. . . . . . . . . . . . . . . 45 Simulink software implementation on host side (PC). The block actuators will give the predefined servo and speed controller signals, to be sent to the board. The HID receive block receives the ADC data from the board, which is then filtered (with a low pass filter, TC = 0.05), converted to force (g), plotted and saved to a data file for posterior analysis. Sample rate is 0.02s. 46 Simulink software implementation on embedded Fio Std board, see Section 3.4. The blocks set up the ADC ports, the PWM outputs, the system clock and the code compilation from Simulink. The HID Send block sends the ADC data to the host side (PC). The HID Receive block receives the PWM duty cycle values from the host side. Sample time is 0.02s. Note that a −1 sample rate in Simulink indicates that the block inherits the sample rate of other blocks that are connected to it. . . . . . . . . . . . . . . . . . . . . . . 47 Experimental points and linear regression. . . . . . . . . . . . . . . . . . . . 50 Linear fit showing the 95% Confidence Intervals. . . . . . . . . . . . . . . . 51 Experimental data points, LSE fit and Cheeseman & Bennet model. . . . . 52 LSE fit with 95% confidence intervals and Cheeseman & Bennet model. . . 53 Data from test 3. Top figure shows Fz versus tilt angle. Bottom figure shows Fx versus tilt angle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 95% confidence intervals of the traditional model with the experimental data. 56 20 experimental transient response tests superimposed. . . . . . . . . . . . . 57 Frequency analysis experimental data points. . . . . . . . . . . . . . . . . . 58 Frequency analysis mean values with 95% confidence intervals. . . . . . . . 59 Data from test 5, where torque values are displayed against the tilting angle values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Model with 95% confidence intervals, computed with the experimental data. Due to the small torque values, the signal-to-noise ratio is small on the experimental data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Thrust-vectoring hovercraft design. . . . . . . . . Hovercraft top view. The Center of Mass (CoM ) propeller assembly L are shown. . . . . . . . . . Fully assembled thrust-vectoring hovercraft. . . . . . . . . . . . . . . . . . . and its distance to either . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 65 67 viii 5.4 5.5 5.6 5.7 6.1 6.2 6.3 Forces acting on the platform, axis, positive angles and main relevant platform dimensions; top view (top picture), rear view (bottom picture). . . . . . . . Estimated position by double integration of the accelerometer readings, when the accelerometer is static. . . . . . . . . . . . . . . . . . . . . . . . . Estimated position by double integration of the accelerometer readings, when accelerometer is moved a small distance (30cm). . . . . . . . . . . . . For a position change of 30 cm, the position estimate through both the Kalman filter and the double integration of the accelerometer readings are overlain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 79 80 83 Simulink simulation block diagram. The DKE (Dynamic-Kinematic Environment) block contains the non-linear model. The sensor error block adds zero-mean gaussian noise to the state variables. . . . . . . . . . . . . . . . . . . . . . . 90 Evolution of hovercraft state for a transition from x = (1 0 1 0 0)T ) to x = (0 0 0 0 0)T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Hovercraft’s regulator control effort for a transition from x = (1 0 1 0 0)T ) to x = (0 0 0 0 0)T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 B.1 Load cell amplification board. . . . . . . . . . . . . . . . . . . . . . . . . . . B.2 Load cell amplification schematics, by A. Muxen. . . . . . . . . . . . . . . . B.3 Load cell amplification board top view. Electronic components placement is detailed. By A. Muxen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.4 Load cell amplification board bottom view. Electronic components placement is detailed. By A. Muxen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.5 Load cell amplification board bill of material (BOM), by A. Muxen . . . . . 121 122 123 123 124 D.1 Data acquisition Simulink block diagram (uploaded to the Fio board). . . . 126 D.2 Data acquisition Simulink block diagram (PC side). . . . . . . . . . . . . . 127 G.1 Simulink hovercraft control diagram with sensor data, Kalman filter, feedback gain, and actuator output. A data logger records the time, state and inputs of the system for later analysis. The schedule block disconnects all the inputs after a specified amount of time, for safety in case of erratic operation. The saturation block limits the maximum and minimum values of the controller output to keep propeller blades from colliding with the surface. . . . . . . . G.2 Hovercraft movement commands. . . . . . . . . . . . . . . . . . . . . . . . . G.3 Hovercraft movement commands over time . . . . . . . . . . . . . . . . . . . G.4 Hovercraft on friction-reducing surface. . . . . . . . . . . . . . . . . . . . . . G.5 Test recorded x position, ψ angle, αR and αL , in solid lines. The position and angle commands are represented with dotted lines on the first two subplots. 149 150 151 152 153 ix List of Tables 3.1 3.2 3.3 3.4 Final testing bench design key points. . . . . . . . . . . . . . . . . . . . . . Comparison between expected and resulting parameters. . . . . . . . . . . . Main resonant modes of the testing bench. In the images, colors range from dark blue, which implies little or no displacement, to red, which implies maximum displacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Electric and electronic components . . . . . . . . . . . . . . . . . . . . . . . 19 26 27 28 5.1 Hovercraft mechanical, electrical & electronic components. . . . . . . . . . . 66 C.1 Testbed force characterization experimental points. . . . . . . . . . . . . . . 125 C.2 Testbed torque characterization experimental points. . . . . . . . . . . . . . 125 x Nomenclature • α: tilting angle. 0 corresponds to the vertical position. • δ: speed controller (ESC) PWM duty cycle command, expressed in %. • δservo : servo motor PWM duty cycle command, expressed in %. • Fz : vertical component of the propeller’s thrust. • Fx : horizontal component of the propeller’s thrust. • M : reaction torque around the tilting axis. • R: length of the propeller blade (i.e. radius of the propeller disk). • z: distance between the propeller and the ground. • Z̄: dimensionless distance between the propeller and ground: Z̄ = z R. • t: time. • T : total propeller thrust, dependent on δ, Z̄ and t. • TOGE : total propeller thrust, out of the ground effect range (Z̄ > 3). • TIGE : total propeller thrust, inside the ground effect range (Z̄ ≤ 3). • c(t): time-domain transfer function between actual thrust and final (steady state) T (t) thrust: c(t) = T (t→∞) . • C(s): frequency-domain transfer function between actual thrust and final (steady (s) state) thrust: C(s) = T T(s=0) . • mP A : mass of the propeller assembly (propeller + brushless AC motor + motor-servo union + servo motor). • lP A−CoM : distance from the propeller assembly to the vehicle’s center of mass. • Γ(Z̄): ground effect factor, dependent on Z̄. • τ : first order system time constant. • x: state variable. • u: input variable. • a: reciprocal of τ . • Tr : first order system Rise Time. • θ: Least Square Estimator parameter vector. • A: Least Square Estimator basis function matrix or state space state matrix. • y: Least Square Estimator output data or state space system output variables. xi • RM SE: Root Mean Square Error. • W : Least Square Estimator Weight matrix or Kalman Filter measurement error covariance matrix. • V (α): vertical thrust projection function. • H(α): horizontal thrust projection function. • x, y, ψ, φ: thrust-vectoring hovercraft position coordinates, yaw angle and roll angle. • Izz , Ixx : thrust-vectoring hovercraft’s moment of inertia around vertical and longitudinal axis (i.e. hovercraft’s z and x local axis). • H: distance between the hovercraft’s Center of Mass and the imaginary line that goes from one propeller to the other. • L: semi-distance between the two hovercraft’s propeller. • TR , TL : total thrust of the right and left propellers, respectively. • FRx , FLx : horizontal thrust component of the right and left propellers, respectively. • FRz , FLz : vertical thrust component of the right and left propellers, respectively. • αR , αL : tilting angle of the right and left propeller assembly, respectively. • δR , δL : speed command for the right and left propeller assembly, respectively. • x̄: state-space state variable vector. • ū: state-space input variable vector. • A, B, C: state-space state, input and output matrices. • ax : thrust-vectoring hovercraft acceleration in the local x axis. • TN (δN ): nominal thrust that corresponds to the nominal speed command. • Ff : friction force. • c: friction coefficient. • F , G, H: state-space state, input and output matrices in the Kalman filter convention. • x̂: state estimation through kalman filtering. • z: sensor measurement vector. • K: Kalman gain matrix. • P : process state estimation error covariance matrix. • V : model prediction error covariance matrix. • Q: LQR controller state variables cost function weight matrix. • R: LQR controller input variables cost function weight matrix. 1 1. Introduction The present section describes the background, motivation, objective and scope of the thesis project. 1.1 Background Nowadays Unmanned Air Vehicles (UAVs) are popular devices in the Academic, Civil and Military fields. They offer certain advantages over their manned counterparts, such as safety, autonomy, effectiveness and, more importantly, cost. These devices offer interesting challenges that encompass the fields of Computer Science and Electrical, Electronic, Controls, Mechanical and Aeronautical Engineering. For this very reason, there is a significant amount of research and development being performed related to these devices. In the academic area, Quadruple Rotor UAVs, or quadrotors as they are often called, are common (Figure 1.1). The main reason for this is that they present increased stability and ease of control when compared to traditional or untraditional bi-rotors [12][13]. Particularly, in the area of Robotics, Computer Science and Control, Quadrotors are the perfect platform to test and develop algorithms for Control, Autonomous Decision and Computer Vision. Other UAV typologies are being explored, with differing features that can potentially increase UAV manoeuvrability and/or ease of control. One of these features is thrust-vectoring through tilting-propellers. 1.2 Motivation Alternative configurations in quadrotors, such as tilt-rotor quadrotors have not been as thoroughly explored as their fixed-rotor counterparts. One of the reason for this 2 Figure 1.1: Small Quadruple Rotor UAV or Quadrotor [1]. is the considerable increase in complexity that arise in such devices. Therefore, a careful, step by step thorough design and characterization of this type of device is needed. Potentially, thrust-vectoring gives the aircraft the capability of changing their attitude angles (roll, pitch and yaw) in a direct way that is not possible without it. Likewise, forward movement can be directly obtained without a change in attitude. Such advancements are particularly important for systems that deploy image-process elements. In fixed-rotor quadrotors, for instance, attitude (roll and pitch) angles cannot be modified without changing the UAV’s position and speed. Movement is achieved by inclining the whole platform towards the desired direction of movement, which is contrary to the stability of the aircraft. Moreover, it complicates the mapping of the environment by the onboard sensors as their orientation change with the aircraft, for those systems that need to perform Simultaneous Localization and Mapping or simple localisation. Conversely, in tilting-rotor quadrotors, attitude angles can be modified without moving the platform. Also, forward and reverse movements can be achieved by tilting the propellers instead of 3 the whole platform. Additional benefits of thrust-vectoring tilt-rotors are the ability for them to provide VTOL (Vertical Take-off and Landing) capabilities to airplane-type UAVs. This results in devices that combine the benefits of both airplanes and helicopters: VTOL, hovering flight (i.e. keeping a fixed position over the ground), efficient high-speed cruise flight and increased mission flight [13]. 1.3 Objective The goal of this project is to build a theoretical and experimental foundation for tilt-rotor subsystems. Such a tilt-rotor subsystem can be used to design next generation UAVs. This will be accomplished by thoroughly characterizing the tilt-rotor subsystem using a tilt-rotor power-train testing bench. The testing bench will allow the development of the theoretical model and the actual controller for a reduced DOF (Degrees Of Freedom) platform that uses those tilt-rotors. The platform is a hovercraft that is designed to move on a frictionless surface, reducing the number of DOF to three, as opposed to the six DOF of a tilt-rotor quadrotor UAV. 1.4 Scope The primary goal of this work encompasses several secondary goals such as the design and manufacture of a tilting-rotor testing bench and the hovering platform. The following summarizes the goals of the project: • Review of existing literature • Tilt-rotor testing bench design 4 • Tilt-rotor testing bench 3D drawing • Validation by simulation of the forces and torques in testing bench • Tilt-rotor testing bench assembly and integration • Tilt-rotor testing bench characterization (i.e., obtain a correlation function or table between testing bench readings and actual forces and torque) • Derivation of the theoretical equations for the tilting power-train forces and torque as functions of the system inputs • Experimental adjustment of the theoretical equations by means of tests performed on the testing bench • Hovering platform design • Hovering platform 3D drawing • Hovering platform assembly and integration • Mathematical model derivation for the hovering platform, which makes use of the tilting-power train model. • Development of a simulator for the hovering platform • Design of hovering platform controller using a linearised model • Controller validation through simulation Once each of these goals has been accomplished, the success of this effort will be evaluated and possible future directions will be provided to the readers. What follows in Chapters 5 2-7 are the results of the research performed in the accomplishment of the above stated goals. 6 2. Review of Related Literature 2.1 Introduction This chapter reviews several projects related to propeller test benches, thrust- vectoring, and tilting rotor UAVs. The differences between existing research and the work here presented are outlined. The conclusions of this review bring the work presented here in perspective of existing research, and clearly describe its contribution to this area of research. 2.2 Propeller testing benches The work in [2] presents a testing bench for a quadrotor propeller. It is acknowledged that control of a quadrotor platform is a complex process, and therefore there is need to undergo a detailed characterization of the propellers. The testbench design can be seen in Figure 2.1. Figure 2.1: Propeller testbench design in [2] The testbench being designed within this project differs from the above test bench in that [2]’s testbench could only measure the vertical force while this work’s testbench is 7 able to measure both vertical and horizontal force components plus torque, in a decoupled fashion. Another example of a testbench is presented in [3]. As it can be seen in Figure 2.2, the testing bench is suitable for tilting power-plants. The testbed is intended to substantially shorten the testing stage in the development of a large-sized tilt-wing UAV. The authors suggest that by performing a thorough characterization of the UAV’s power plant, time (and therefore, economic resources) can be saved during the prototyping stage. Note that the two tilting propeller assemblies mounted on the bench in Figure 2.2 are attached to the same tilting angle and hence they keep a common tilt angle at all times. This is because they are designed to provide VTOL capabilities. The work here presented studies the tilting propeller assemblies separately, so that they might be actuated independently to achieve not only VTOL, but also other potential benefits described in Section 1.2 (e.g. increased manoeuvrability). As far as quadrotor UAV testing is concerned, Figure 2.3 shows a Whitman training stand in use [14]. Although Whitman training stands are normally used for practice with R/C helicopters, [14] used it to test the controller without any potential damages to the quadrotor. A training stand is a convenient element to incorporate in the development of a suitable controller for any type of UAV, as many iterations are usually needed before a desired controller behaviour is attained. On the other side, the use of a training stand may change the dynamics of the system; therefore it should be taken into account if the results are to be applicable without the training. In the research presented here, a friction-reducing table is used as a training stand, as it constrains the movement of the hovercraft to a small area. Furthermore, the table is a key factor in defining the system’s dynamics, by reducing the friction between the hovercraft and the surface (see 8 Figure 2.2: Ironbird tilt-propeller testbed for tilting-rotor UAVs [3]. Section 5.5). 2.3 Common quadrotors and thrust-vectoring UAVs The dynamics of quadrotors are thoroughly formulated in [4]. It addresses the mathematical modelling of a common quadrotor (Figure 2.4) from an aerodynamic standpoint (taking into account wind disturbances) but also from an electric component standpoint, by modelling torque and thrust delivered by the motors as a function of their operating voltage and intensity. There is a large number of research on quadrotor UAVs, but the vast majority focus on controller design, localisation/mapping and formation flight [15][16][17]. As stated previously, the goal of the work here presented is to characterize the dynamics of a tilting propeller for its later use in small quadrotor platforms. 9 Figure 2.3: Quadrotor UAV mounted on a Whitman training stand. Although there are a great number of quadrotor projects in the academic world, there is a much smaller number which incorporate the concept of tilting propellers. Some examples are presented in [5], [6], [7] and [8]. All four documents develop controllers for the tilt-wing platform shown in Figure 2.5. A PID controller for the platform is developed and implemented in [5]. An LQR controller for the same platform is developed in [6]. Also, in [7] a robust position controller, which aims at controlling the UAV under the effect of the wind disturbing effects, is introduced using PID controllers and a disturbance observer. Finally, a dynamic model of the vehicle is derived both for vertical and horizontal flight modes using a Newton-Euler formulation in [8]. The work presented here differs from the above in some key points. First, the above cited work includes the development of a dynamical model of the vehicle, but not 10 Figure 2.4: Quadrotor UAV in [4] a comprehensive tilting-propeller system identification. In the second place, the work here presented focus also on the design of a testing bench for the tilting propellers and the platform to be controlled. Finally, as in [3], each pair of the above design’s tilting propellers tilt together, i.e., they have a common tilting axis, thereby keeping a zero relative tilt angle at all times. The work here presented does not make this assumption. Tilting rotors are more common in bi-rotor crafts. An academic development of a tilting rotor UAV is presented in [12]. Here the authors designed and built a prototype (Figure 2.6), derived a dynamic model and designed and tested a controller based on the backstepping procedure [18]. However, while in [12] a mathematical model is developed, a thorough system identification on the tilting propellers is not undertaken, as opposed to the research here presented. The Bell Eagle Eye UAV (Figure 2.7) is an industry prototype of a tilting rotor bi-rotor UAV. The combination of tilting rotors and lifting surfaces gives versatility: it is VTOL capable (Vertical Take-Off and Landing) but it can navigate like an airplane 11 Figure 2.5: Different wing configurations of the vehicle in [5], [6], [7] and [8]. by tilting its rotors 90 degrees from the vertical axis, giving it high forward speed and efficiency [13]. This allows for longer mission times and greater distances but also increases the aircraft size. The Bell Eagle Eye UAV is one more example of how tilting-rotors are used to provide VTOL capabilities. However, as mentioned earlier, VTOL is not the only advantage that is to be attained by future small tilting-rotor UAVs which have this work’s results as a foundation; increased manoeuvrability is also key. In the case of VTOL capable aircraft, vertical mode is only intended for take of and landing. The horizontal mode delivers high speeds, making the aircraft impractical for indoor movement. 2.4 Conclusion As shown above, there are examples of tilting-rotor UAV designs, and some testing benches that are suitable for tilting-rotor power-trains. Nonetheless, to the extent of the author’s knowledge, there is a lack of an exhaustive integrated development that begins 12 Figure 2.6: Tilting rotor birotor UAV concept (left) and prototype (right). with the power-train modelling and system identification, continues with the design of an intermediate platform with reduced DOFs, and finishes with the design and validation of a controller on the mentioned platform. Currently, most UAV research tries to design observers and controllers that are suitable for an already assembled craft. Furthermore these projects do not usually study the ground effect and its potential influence on the system dynamics. In contrast, this project focuses on the development of a model that works both within ground effect and out of it. The initial craft is a hovercraft. However, the models are extendible to traditional quadrotor designs. The work here presented studies the ground effect influence, and finds a model of the thrust-vectoring power-train as a previous step to the derivation of a full dynamic model. In conclusion, there has been and there are numerous research projects on tiltingpropeller UAV control, even though most of the research is still on fixed-rotor UAVs. This work presents a different approach to the design and control of thrust-vectoring crafts: a thorough process of power-train system identification and its use on the design, model derivation, controller design and validation on a simulated tilting-rotor craft has been 13 Figure 2.7: Bell Eagle Eye UAV in vertical flight configuration. pursued. 14 3. Testing bench development 3.1 Introduction In this section the design, assembly, integration and characterization of the testing bench is described. As stated Chapter 1, the purpose of the testing bench is to characterize a tilting propeller assembly. In other words, the goal is to obtain a transfer function from motor speed command and tilt angle to thrust and torque. The propeller assembly is formed by a brushless motor with a propeller attached to its axis, and a servomotor which tilts the previous two components (see Figure 3.1). Figure 3.1: Propeller assembly 3D drawing. Main components are a servo motor (black), a brushless AC motor (gold) and a propeller (grey disk). The the L-shaped piece (grey) serves the function of attaching the brushless and servo motors. If the propeller assembly is viewed as a black box, the purpose of the testing bench is to determine the output as a function of the input: the two components of the force, Fx , Fy , and the torque, M , as a function of the speed controller’s duty cycle, δ, servo angular position, α, and environmental conditions such as the ground effect (see Figure 3.2). More information on the specifics of the propeller assembly characterization can be 15 found in Chapter 4. Section 3.2 explains the first design considerations; Section3.3 shows the final testing bench design and a Finite Element Analysis of it, including a static and a frequency analysis; Section 3.4 presents the electric and electronic part of the testing bench; Section 3.5 describes the testing bench characterization process and results. Figure 3.2: “Black box” model of the propeller assembly. The system has two inputs and three outputs, plus environmental conditions (ground effect, wind, flow turbulence...). 3.2 First designs The initial design of the testing bench (Figure 3.3), consisted of a single aluminium bar attached to a metal plate for support. The bar had three narrowings along its large dimension, with the purpose of having attached three strain gages. The narrowings serve as a stress concentrators (i.e., stress along the piece is amplified at the narrowings, which in turn increases the deformation, so that it can be easily measured by the load cells). With the propeller assembly (motor + propeller + servo) attached to the other end of the bar, the forces and torques originated by it deform the bar. In turn, the strain gages would be able to register that strain. With a prior characterization of the testing bench, it would be possible to use the testing bench for the propeller assembly characterization. After a 3D drawing of the initial design was complete, the strain and stress 16 Figure 3.3: testing bench initial design. acting on the testing bench were analized via the finite-element 3D simulator SolidWorks Simulation, for a force of 5 Newtons (510 grams) and a tilt angle of 5 degrees. The estimated strain field can be visually appreciated in Figure 3.4. The results showed that the stresses, and therefore also the deformations, were not large enough for the use of the strain gages. The strains at the horizontal and vertical narrowings are 1.978 and 0.7734 respectively, well under the strain gages’ excitation range, which is 1000 microdeformations (See Section 3.4 for more detail on the load cells). To make these deformations large enough, the narrowings had to be redesigned. In order for the deformation to cover the strain gage excitation range, their thickness had to be reduced to less than 1 mm. These thickness values are not enough to ensure the structural integrity of the testing bench, as the bar would deform due to its own structural weight. Although the above reason was determinant in order to reject this particular design, there is also the issue of having coupled deformations. In this design, each force/torque can affect all three strain gages, thereby requiring a considerable amount of data postprocessing to decouple each strain gage deformation into a function of just a single force for each axis. Additional testing bench concepts were considered, having [2] as a starting point. However, the testing bench in [2] was intended for measuring just the vertical propeller 17 Figure 3.4: Testing bench initial design finite element simulation. A traction force acting on the propeller is applied, with a slight tilt angle force. These designs added an additional degree of freedom to enable the use of a second force/strain sensor and measure the horizontal component of the force. Nevertheless, the designs still failed to provide a straight forward method of measuring torque. 3.3 Final design After considering the above designs two important requirements for the testing bench were identified: 1. It should enable the measurement of each of the three force/torque components independently (i.e. as decoupled from each other as possible). 2. The design should be robust enough so that it is able to withstand repeated use, including dynamic excitation due to a dynamic characterization of the propeller assembly, storage, transportation, etc.. Based on the above requirements, it was chose to isolate torque measurements via the design of a torque-meter assembly within the testing bench, shown in Figures 3.5 and 3.6. The torque-meter has two pieces that attach to each other through a free-rotating axis. 18 Figure 3.5: Torquemeter for tilt-rotor testing bench. Figure 3.6: Torquemeter half-section view. The torquemeter is then inserted into the testing bench through points A and B in Figure 3.6. This configuration grants the torque-meter the additional degree of freedom needed to isolate the rotational degree of freedom. This, combined with a load cell located within the torque-meter as depicted in Figures 3.5 and 3.6, enables the decoupled measurement of the torque. The rotational axis does not transmit the torque; however, it is able to transmit the forces, thereby supporting the weight of the testing bench part as it is suspended in air. The horizontal component of the force, Fx , can be measured by giving the testing bench freedom to spin around a vertical axis, and placing a force sensor at one of the edges, see points D1 and D2 in Figure 3.7. By combining the above considerations, along with the aforementioned torquemeter with a basic testing bench such as the one in [2], a two force and torque measuring testing bench is obtained. A 3D drawing of the final design can be seen in Figure 3.7. 19 Figure 3.7: Testing bench final design. This design uses the leveraging effects to increase the load cell excitation, which was an issue in the first design. For instance, it has two possible locations, D1 and D2, for the horizontal force (Fy ) load cell: one for large angular deflections of the propeller, and the other for small deflections where the leverage ratio is increased. Table 3.1 shows a description of the key points in Figures 3.5, 3.6 and 3.7. Point A B C D1 D2 E F Function Socket Socket Hinge Load cell mountpoint Load cell mountpoint Rotational joint Tilting axis Description Junction between torquemeter and 1st half of the test bench Junction between torquemeter and 2nd half of the test bench Hinge granting a rotational DOF around the x axis. Horizontal force load cell mounting position, with a force range from 0 to 91.6 grams. Horizontal force load cell mounting position, with a force range from 0 to 567.8 grams. Rotational joint around z (vertical) axis Propeller + AC motor tilting axis, actuated by the servo. Table 3.1: Final testing bench design key points. There are in total 13 different types of pieces. These pieces are drilled and machined from small blocks of aluminium. The 2D drawings of all the pieces can be consulted in Appendix A. Figure 3.8 shows the fully assembled testing bench. In order to validate the above design, and to identify possible testbed dynamics that may affect the experimental tests, two analysis are carried out: a static analysis, where 20 Figure 3.8: Fully assembled propeller testing bench. a constant force, similar to the ones that will be present during the experimental tests, will be applied; and a frequency analysis, to identify the modes and their corresponding exciting frequencies that could endanger the testing bench integrity. 3.3.1 Static analysis Having a 3D drawing of the testbench, a finite-element simulation can be carried out to identify critical points in the testbench, in terms of stress and strain, that could force a redesign of the testbed or in any way affect the load cell force and torque readings. A finite-element simulation divides an object into smaller elements taking into account boundary conditions, and as a result creates a mesh where numerical methods can be used. This permits solving problems with no known analytical solution. Figure 3.9 shows the FE mesh of the testing bench. When setting up a FE simulation, boundary conditions, contact between components 21 Figure 3.9: Testing bench finite element mesh. and forces are of extreme importance. Great care must be put into defining them, as wrong assumptions must be avoided in order for the results to correspond to reality. For instance, axis within bearings must be given rotational freedom, despite being in contact with the latter. Some pieces are solidly bound together, while others are just “close” to each other, but not hold tightly. The forces are applied to the point on the testing bench where the propeller and AC motor will be. Their magnitude correspond to the worse-case scenario. Assuming a maximum thrust of 4N, the vertical force Fz reaches 4N (408g) at a completely vertical position, and the horizontal force Fx reaches 1.75N (179g), at a tilt angle of 25 degrees1 The contact conditions between components are of two types. On the one hand there is rigid union, which implies that two components are solidly tied to each other, and there is no relative movement between the two components along the union. Most of the testing bench components are set to have this type of bounding within the simulation environment. On the other hand, there is the pin connector union, which imposes contact between two cylindrical faces from two different components, granting rotational freedom along the axis and restricting translation along the same axis. This bounding condition 1 The maximum tilting angle is limited because collision between the propeller blades and the ground must be avoided. 22 is imposed on the hinge, the torquemeter axis with the bearings, and the testing bench central axis with the bearing. The boundary conditions of the testing bench would, in principle, consist simply on the bottom surface of the testing bench’s base being completely fixed (no displacements allowed). This is assumed so because the testing bench will be set on a bigger surface (like a table) and fixed with clamps. However, to reduce simulation time, the base and central pieces are eliminated and instead the central axis and the bottom load cell holder are fixed, as shown in Figure 3.10. Figure 3.10: Testbench static analysis forces (purple arrows) and boundary conditions (green arrows). The boundary conditions consist on the bottom surfaces of the central shaft and the bottom load cell holder being fixed. The base and central pieces have been eliminated to reduce simulation time. In order to properly understand the results of the simulation, one must know how the load cells work. Figure 3.11 shows the Wheatstone Bridge electrical circuit, on which the load cells are based. The load cells use such an electrical circuit in order to register deformations. However, they use the four arms of the Wheatstone bridge, instead of only 23 one (i.e. all four resistances values may vary due to deformation). Figure 3.11: Wheatstone bridge electrical circuit. The voltage across points B and D is zero in normal conditions. A variation in Rg’s resistance (strain gauge) causes a voltage differential between the mentioned points, as per the above equation. In this case, only R4 changes its resistance (G-bridge configuration). However, the sensor can occupy two or four arms of the bridge. Image from [9]. The location of two of the Wheatstone branches is at 0.5 cm from the left edge of the load cell (as seen in Figure 3.12), while the location of the other two is at 1 cm from the right edge. The voltage at the output of the load cell will depend on the difference of strain between these two groups of resistances. From now on, the load cells that are mounted in the testing bench are named according to the force/torque they measure: Fz for the vertical force load cell, Fx for the horizontal force load cell and M for the torque load cell, mounted in the torquemeter. The results are discussed from 3 points of view: displacements, stresses and strains. 24 Figure 3.12: Load cell used in the testing bench [10]. With regard to the first, the only part of the testing bench that registers any significant displacement is the motor holder, with 5.309 mm. This is caused by the deformation of the load cell, and so it was to be expected. On the other hand the load cell deflection is 0.5258, 0.05254 and 0.09757 mm for the Fz , M and Fx load cells, respectively. This displacements are well below the maximum load cell deflection given by the load cell specifications [10], which is 1.905 mm. The maximum stresses within the testing bench are in the load cells, which was precisely the intent of this testing bench design: 573.5, 117.3 and 80.35 MPa for the Fz , M and Fx load cells respectively. Figures 3.13-3.15 show a zoom on the load cells, showing the unitary stresses. The other critical points are the tilting axis with 51.26 MPa and the torquemeter axis, with 50.30 MPa. The axes elastic modulus is high (Esteel ' 2.1·105 M P a) so their deformations are small: 256.3 and 251.5 µ. The deformations are, again, significant within the load cells. Table 3.2 shows those deformations for the 3 load cells, for the 2 points on the load cell where the strain gauges are. As seen in the table, the M load cell will not register anything from these static forces (as there is virtually no difference in strain between the two strain gauge positions). The other two load cells will work appropriately according to the results of this simulation. In conclusion, the static analysis shows that the testing bench works as it was 25 Figure 3.13: Stress results at F z load cell. Figure 3.14: Stress results at M load cell. Figure 3.15: Stress results at F x load cell. intended, with no significant stresses beside those of the load cells (which need to be significant in order to be registered). Nonetheless, the last section of this chapter correlates the actual forces and torques with the load cell readings, so no matter what are the displacements of other parts of the testbench (which according to this analysis are negligible) the real forces and torques should be obtained from them. In the following section a frequency analysis is carried out, to check if the testbed dynamics may affect the results. 26 Load cell Fz Fx M Strain at 0.5cm from edge (µ) 2884 155.9 16.34 Strain at 1cm from edge (µ) 152.7 6.063 15.02. Table 3.2: Comparison between expected and resulting parameters. 3.3.2 Frequency analysis With the same testing bench boundary and contact conditions applied in the previous analysis, now a frequency analysis is undertaken. The estimated resonant modes and frequencies are described in Table 3.3. Mode 1 and mode 2 were to be expected (simple oscillations originating from the torquemeter axis to the front of the testing bench). The resonant frequencies of the testing bench can pose a problem when running the AC motor, as it is expected to work precisely on the 0-12000 rpm range [19]. The polymeric propeller, on the other hand, can only operate within the 0-6500 rpm range for structural safety [20]. Therefore, modes 3, 4 and 5 are not of concern for the safe operation of the testing bench. Resonant frequencies for modes 1 and 2 have to be taken into account when designing the experimental tests, in order to a) be totally avoided, or b) be only briefly excited when transitioning to higher or lower frequencies. Also, experimental points close to those critical frequencies may be granted a lower weight when obtaining a model. The possible influence of these testbed dynamics over the power-train dynamics is discussed in Section 4.5.4. 3.4 Electric & electronic equipment In Section 3.3 the mechanical portion of the testing bench was discussed. In this section, the electric and electronic equipment, consisting on the load cells, data acquisition Up-down oscillation of the part of the testbed from the torquemeter axis to the AC motor holder. 78.67 137.7 145.1 175.9 2 3 4 5 Image Table 3.3: Main resonant modes of the testing bench. In the images, colors range from dark blue, which implies little or no displacement, to red, which implies maximum displacement In this mode, the front of the testbed presents a double vertical oscillation, while the rear part presents a slight vertical oscillation. This mode presents greater complexity. The oscillation of the same part referred to above is oblique (up-down and right-left. The other half of the testbed presents up-down oscillation. Note that vibrations are greatly exaggerated for better visualization. Left-to-right double oscillation of the same part of the testbed. Description Left-to-right-to-left movement of the part of the testbed from the torquemeter axis to the AC motor holder. Mode Frequency (Hz) 1 30.52 27 28 components and propeller assembly components, are discussed. These components are listed and described in Table 3.4. Component Omega LCL113/816g [10] # 3 Load cell amplification boards 3 Aimagin 32 ARM Fio Board [21] bit Std 1 Hitec HS225-MG Might Mini Metal Gear servo [22] AXI 2212 Gold Line AC brushless motor [19] Jeti Advance 30 Pro electric speed controller [23] Hyperion CX-G3 Series 4000 mAh Li-po battery [24] 1 1 1 1 Description Load cell of up to 113 and 816 grams at maximum excitation. Two 816g load cells are used to measure the two components of the propeller’s traction force, Fx and Fy . One 113g load cell is mounted on the torquemeter to measure torque. See Appendix B for the full specifications. These boards interface the load cells. They amplify and filter the incoming signal. The signal is then transmitted to the analogto-digital ports of the micro-controller. See Appendix B for the schematics, design and bill of materials of the board, developed by A. Muxen. Micro-controller board, based on STM32F103RE ARM 32-bits CortexTM M3 processor, capable of interfacing with Matlab. The board can be programmed via Simulink and it is capable of interfacing with a PC Simulink model in real time, for both data transmission and reception. Servo motor, used along two plastic gears to spin the axis that holds the brushless motor, hence tilting the motor and propeller. See Appendix B for the full specifications. Brushless electric motor that drives the propeller, which in turn produces the traction force. The speed controller drives the brushless motor, by changing the DC voltage and current provided by the battery into a three-phase electric voltage and current. 7.4 V, 16.2 Wh Lithium-polymer battery. Table 3.4: Electric and electronic components The brushless motor drives an APC Slow-Flyer 1047 propeller [20], a 10 inch diameter, 4.7 pitch propeller. The components were chosen so that they could be easily obtained, implemented and/or programmed, thereby focusing the efforts on system identification and control design. For example the load cells consist of a functional strain gauge properly attached to a thin metal beam, with ready to use mounting holes. Another example is the Fio Std Board, which can be interfaced and programmed with Simulink rather than handwritten C or C++ code. This is very convenient, as it reduces significantly the programming-testing 29 cycle, and enables the use of Simulink and Matlab’s high-level programming language and powerful features (e.g. ease of programming, visual feedback, debugging tools and plotting tools). Figure 3.16 shows schematically the chain of components used to retrieve the data from the characterization tests. The load cells are mounted into the testing bench and connected to the amplification and filtering boards. The filtered, amplified analog signals from the boards are connected are fed into the 12 bit, 1µs sampling rate Analog to Digital Converter in the Fio Std Board. Finally, the Fio Std Board is connected via USB cable to the PC, running the Simulink software that controls all the setup and saves and visualizes the data acquired. Figure 3.16: Sensor and data acquisition subsystem. 3.5 Testing bench characterization Once the testbed has been assembled, it must be fully characterized. The signals are read in the Simulink GUI via voltage levels. These levels indicate the excitation state of the load cells, depending on the forces/torques being applied. Hence, it is necessary to correlate the voltage values of each load cells to their corresponding forces or torque, for different excitation levels. With the use of a Roman-type scale2 and a platform, the testing bench can be calibrated. The calibration setup is ahown in Figure 3.17. The propeller is lifted in the same 2 A Roman-type scale is a weight scale that hangs from an elevated position, and has a hook for hanging the object to be weighted. 30 Figure 3.17: Roman-type scale mounted on a platform to lift the propeller. point where the thrust force will be centred, the hub3 , thereby isolating the z (vertical) axis force. An equivalent procedure is followed to isolate the x (horizontal) axis force. In this case, the platform and scale are moved in the horizontal plane, applying the force perpendicularly to the hub rotation axis. In the case of the torque, the force is applied to the tips of the propeller blades positioned perpendicularly to the tilting axis, thereby producing a torque with respect to the tilting axis M = R · F, where F is the force applied, and R is the propeller blade length (in this case R = 12.7cm). In this fashion, different magnitudes of vertical and horizontal forces and torques 3 The lifting force will be produced along the propeller blade surfaces, but the sum of this distributed force can be expressed as a single force applied to the central propeller point on the hub. 31 Figure 3.18: Correlation between the voltage delivered by the load cells and the forces Fx , Fy , and torque M . are applied and measured with the scale, and the corresponding voltage values are recorded. Figure 3.18 shows the correlation between the forces and torque Fx , Fy and M and the voltage of the corresponding load cell. The measurement points can be seen in Appendix C. The above correlation data is used together with Matlab’s interp1 function4 [25], to interpolate and extrapolate the force/torque values corresponding to any load cell voltage readings. It is also necessary to correlate the servo motor duty cycle command with the actual propeller tilt-angle α. According to the servo motor specifications B, the neutral angle of the servo is obtained with a PWM signal of 1500µs on-time, which corresponds to a 4 The interp1 function takes the input and output data vectors and, with the cubic method option, applies a cubic spline fit between every two points. 32 duty cycle of 1500/20000 · 100% = 7.5%, and the angle variation is 45◦ /400µs = 0.3927 rads , 1% therefore the angle-PWM relation is α(δ) = 0.3927 · (δ − 7.5) rads (3.1) With the above relations found, the testing bench is completely ready to be used for the propeller assembly characterization. 3.6 Conclusions This chapter has described the design, assembly, integration and characterization of the tilt-rotor testing bench. The design process has been outlined, including analysis and redesign so that project goals were met. A static and frequency Finite Element Analysis was carried out. All the components have been listed and described. The electronics and data acquisition process has also been described. The testing bench load cell voltage readings have been correlated to actual force and torque measures, and the propeller tilt angle as a function of the servo command has also been found. Mechanical design is an iterative process that must be undertaken carefully. An appropriate amount of iteration and redesign with 3D Cad Drawing and Finite Element Software tools is a convenient way to reduce iteration in the following, more expensive step: actual manufacture and assembly. The analysis of the first design led to a necessary redesign, in order to meet the testing bench requirements: robust design and decoupling of force components and torque. The static FEA validated the design, as the load cells presented significant strains as required, and no other testing bench components presented unforeseen or critical stresses. The frequency FEA showed that two of the testing bench modes can be excited within the 33 operation range of the propeller-motor assembly. Therefore, these modes must be taken into account when designing the experimental tests. There are many options regarding choices of electric and electronic equipment. The approach followed in this work is the selection of components were the low-level issues are already taken care of (e.g. Matlab-programmable micro-controller, fully assembled full-bridge load cells). Therefore, focus can be placed in the main goals of the project. 34 4. Power-train characterization 4.1 Introduction This chapter describes the characterization process of the tilt-rotor propeller assembly. As it was stated in Chapter 3, the system to be characterized has two control inputs, δ (speed controller duty cycle) and α (rotor tilt angle), plus environmental conditions (ground effect, air flow conditions) and three outputs, Fz , Fy and M . This is visualized in Figure 3.2. The goal is to find Fz , Fy and M as functions of (potentially) the speed controller duty cycle δ, the tilt angle α,the distance to the ground z and time: Fx = f (δ, α, z, t) (4.1) Fy = f (δ, α, z, t) (4.2) M = f (δ, α, z, t). (4.3) These equations will allow for the control of the limited DOF platform. To this end, the concept of a “gray box” modeling is applied. Gray box modeling makes use of partial theoretical knowledge about the process to be modeled, and complements it with experimental data. This concept differs from black box modeling, where no theoretical knowledge is applied at all and the dynamics of the process are modeled with functions such as polynomials. Instead, one assumes the form of the system equations and uses experimental results to find constants within the model. The reduced DOF platform is fully explained in Chapter 5. However, a brief description is given in Section 4.2 so that the characterization tests can be designed in accordance to it. 35 The theory behind the model is presented in Section 4.3. The experimental tests to discover the unknowns are designed in Section 4.4. The test results and model adjustments are presented in Section 4.5. 4.2 Thrust vectoring platform As said in Chapter 1, a possible extension to this research may be the design and control of a full quadrotor with tilting rotors. That is a challenging design problem, and it is also a very difficult control problem – there are 6 degrees of freedom and up to 8 control variables (one for each rotor, plus an extra one for each of them that can tilt). It is because of these complex interactions that an intermediate platform, with limited DOFs, is a convenient prior to undertaking the full control problem. Various possible platforms have been considered. One of them is an arm which can rotate around a vertical axis and a horizontal axis (like a seesaw that can also rotate around a vertical axis located at its center). The tilting rotors would be located at the ends of the arms. Such a platform would have 2 DOFs and 3-4 control variables. In the end, a hovering platform with two tilting rotors was chosen. The key consideration of such platform is that the air cushion beneath it will provide stability in the vertical axis, given the fact that the ground effect grows stronger the closer the propeller is to the ground. There will be a stable altitude for which the ground effect augmented lift force equals the weight of the platform. Also, it is to be expected that the air cushion will provide increased stability for roll and pitch angles when compared to an off-ground quadrotor, effectively eliminating these two degrees of freedom. Figure 4.1 shows the basic concept behind the thrust-vectoring platform. The hovercraft will then have 3 DOFs (x and y movements and rotation over 36 Figure 4.1: Thrust-vectoring platform concept. The top view (top) and rear view (bottom) are illustrated in this figure. the vertical axis, the yaw angle θ) and 4 control variables. Such a platform provides a challenging thrust vectoring control problem, while being an adequate intermediate step towards a future tilt-rotor quadrotor craft. The hovercraft design is detailed in Section 5.2. 4.3 Theoretical model As it has been previously stated, the goal is to find a set of equations to express the forces and the torque as functions of: speed controller PWM command, δ (in % duty cycle); distance from the propeller to the ground, based on dimensionless altitude Z̄ = z R, where R is the rotor diameter and z is the height above ground (i.e. Z̄ is the height above grounds in number of rotor radius); tilt angle, α, as the angle between the propeller axis and the vertical axis (in radians); time, t in seconds. The intent now is to obtain a transfer function that can later be used to build a state space model of the hovercraft, under the following assumptions: 37 1. The hovercraft will move at low speeds, thereby the model of ground effect under axial flight will not need adjustments for the relative speed between hovercraft and incoming air flow. 2. The friction reducing table air flow is significant enough to reduce friction between the surface and the hovercraft’s bottom surface; however, due to the small flow and low velocity its effect on the propeller’s wake aerodynamics is negligible. 3. The fact that the hovercraft’s twin propellers do not overlay, but are separated by a few centimetres, renders the coupling effect in their aerodynamics negligible. As can be seen in Figure 4.2, there is no increase in required power for two propellers in tandem with no overlay. 4. The thrust will be modelled for varying conditions of δ, Z̄ and α in steady state. A model that describes the transitory effect as a first-order system, with the steadystate model for t → ∞, captures the essential dynamics and more importantly, it can be integrated into a linear state-space model of the hovercraft. The starting point is the steady state, Out of Ground Effect (OGE)1 thrust, which is only a function of δ, T (δ, t → ∞, Z̄ > 3) = TOGE (δ). (4.4) To find TOGE (δ) will be the aim of Test 1. In the second place, the effect of the ground proximity is introduced with the ground effect factor, which is commonly defined as Γ(Z̄) = 1 Conditions are OGE when Z̄ > 3. TIGE . TOGE (4.5) 38 Figure 4.2: Tandem rotor overlap induced power correction in hover as derived from momentum theory and compared to measurements. Data sources: Dingeldein(1954) and Stephnieski & Keys (1984). Figure from [11]. The steady state, In Ground Effect (IGE) thrust can then be written as T (δ, Z̄) = Ts.s. = TOGE (δ) · Γ(Z̄). (4.6) To find Γ(Z̄) is the aim of Test 2. The ground effect will be further discussed in Section 4.3.2 In the third place, to obtain the vertical and horizontal components of the thrust, the thrust must be projected onto the hovercraft’s plane of movement. The projection functions are defined as V (α) for the vertical projection and H(α) for the horizontal projection (in OGE conditions, V (α) and H(α) would obviously be cos(α) and sin(α) respectively). Fz (δ, Z̄, α) = TOGE (δ) · Γ(Z̄) · V (α) (4.7) Fx (δ, Z̄, α) = TOGE (δ) · Γ(Z̄) · H(α) (4.8) 39 Test 3 will be carried out to find the two projection functions V and H, in the case that the projections cannot be described by the usual sine-cosine projection. The time response will be modelled as a first-order system for a step input in α. A first-order system can be easily expressed as a first order differential equation in the state-space formulation, which is convenient for the design of a MIMO (Multi-Input Multi-Output) controller, as 1 1 ẋ = − · x + · u, τ τ (4.9) where u is the system’s driving force and τ is the model’s time constant. In other words, u is the steady-state thrust Ts.s. that needs to be reached. The system reaches it for t → ∞. This is, every time the thrust changes as a consequence of a change in α, it does so with a certain inertia. Test 4 will be carried out to find the time constant τ , which defines the first-order model. The subsections that follow expand each of the above equation components in greater depth. Figure 4.3: Torque caused by the center of mass displacement with respect to the tilting axis. The torque M is originated by the fact the center of mass of the tilting portion 40 of the propeller assembly (brushless motor and propeller) will be displaced every time the tilt changes. Assuming that the center of mass is not aligned with the tilting axis, there will be a torque. From the the representation in Figure 4.3, it can be easily deduced that the torque will follow the relation M (α) = mP A · g · lP A−CoM · sin(α) , (4.10) where mP A is the propeller assembly’s mass and lP A−CoM is the distance from the tilting axis to the propeller assembly’s center of mass. The only unknown in the above equation is the distance lP A−CoM . A test will be performed to determine its value, see Section 4.5.5. 4.3.1 OGE Thrust as a function of speed controller command Because there is no prior knowledge of what the relation between speed command and thrust may be, in this case a “black box” modelling approach will be taken, expressing TOGE as a line, a second or third degree polynomial. The coefficients will be found by means of a Least Squares Estimator (LSE)[26]. This method is described in section 4.5, where it is used to estimate the above coefficients. Depending on the results, the degree of the polynomial will be chosen, depending on which one gives a smaller RMSE (Root Mean Square Error) when compared to the experimental data. 4.3.2 Ground Effect Factor The ground effect is the phenomenon in which the lift force of a propeller is increased by the proximity of the ground. This is an important effect in helicopters, in which this effect is used for taxi maneuvers (i.e., maneuvering inside an heliport/aeroport) 41 Figure 4.4: Comparison between Out of Ground Effect (left) and In Ground Effect (right) situations. In the left picture, the wake is not significantly affected by the ground, and hence the ground effect is small. In the right picture, wake is compressed by the proximity of the ground, which in turn affects the propeller by increasing the lifting force. Illustration from Leishman[11]. as well as for normal and emergency landings. The ground effect is illustrated in Figure 4.4. Due to the turbulent nature of the wake created by the propeller, it is a difficult phenomenon to study. However, some theoretical models that characterize this phenomenon have been developed [27],[28]. The Cheeseman & Benett model [29] consist on the following equation: Γ(Z̄) = 1 TIGE (Z̄) = , k = 2, TOGE 1 + ( 41Z̄ )k (4.11) where TOGE is the Out of Ground Effect thrust and TIGE is the In Ground Effect thrust, dependent on the altitude. The above equation is expressed in terms of the dimensionless altitude Z̄ = z R, with R being the propeller radius, and z being the height above ground. Figure 4.5 shows how the thrust rate Γ changes with the distance to the ground. As it can be seen, the above Cheeseman & Benett equation essentially captures this effect. However, the experimental results can vary substantially depending on the helicopter. For this reason, a Gray Box modelling approach is used here to modify equation 4.11 by 42 Figure 4.5: Increase in rotor thrust versus distance from the ground for a variety of helicopters (hovering). Illustration from Leishman[11]. Data sources: Fradenburgh (1972) and Hayden (1976). adjusting the k parameter within the model to match the experimental results: Γ(Z̄) = 1 1 + ( 41Z̄ )k (4.12) Figure 4.6 shows how the Γ function curve is modified by changes in k. 4.3.3 Vertical and Horizontal projection functions The sine-cosine projections of the thrust force should be validated. Although it is undoubtedly valid for Out of Ground Effect conditions, does the ground effect have a distorting influence on this projection? For instance, the inclination of the propeller may cause the effective distance to the ground to change from the expected value. Such an effect would make it necessary to make additional modifications to equations 4.7 and 4.8. For instance the effective α could result in an increase effect instead of the expected decrease. 43 Figure 4.6: Influence of the k parameter on the Ground Effect coefficient curve. 4.3.4 Time response to a step input in δ and α The time response will be modelled as a first-order system for a step input in both δ and α separately. As mentioned before, the reason for modelling the response as a first-order system is that it can be easily expressed as a first order differential equation in the state-space formulation, which is convenient for the design of a MIMO (Multi-Input Multi-Output) controller: 1 1 ẋ = − · x + · u, τ τ (4.13) where u is the system’s driving force and τ is the model’s time constant. The hypothesis is made that any higher order dynamics can be neglected and a first-order model can still capture the essential system’s dynamics. Nonetheless, once the model has been obtained, it will be compared to experimental data to assess its validity. 44 The time constant τ is all that is needed to find a first order model for the transient behaviour of Fz and Fy , for changes in speed command δ and tilting angle α separately. The time constant can be found experimentally via two methods: 1. Measuring the time it takes for the system to reach 63% of its final steady state value (or the time it takes to go down to 37% of its initial value, if it is an exponential decay). 2. By measuring the reciprocal of the initial rate of change at t = 0 (i.e. τ = a1 , where a is the inital slope of the exponential rise/decay) [30]. 3. By measuring the Rise Time Tr : Tr is the time it takes to reach 90% of the final value minus the time to reach 10% of the final value. The time constant is then computed as τ = Tr 2.2 . The first-order transfer function in the time domain, c(t), is t c(t) = 1 − e− τ = 1 − e−a·t . (4.14) In order to validate and better adjust the model, an analysis in the frequency domain will also be carried out. This will be done by testing the system against sinusoidal inputs of different frequencies: 0.1, 1, 2 ,4, 6, 8 and 10 rad/s. A magnitude and phase bode plot will then be plotted using the first-order frequency domain transfer function C(s) = 1 τs + 1 and the experimental points will be plotted on top to verify and adjust the model. This will ensure that a valid model has been obtained, if it applies to both the frequency and time domains. 45 Figure 4.7: a and τ parameter retrieval of a first order system. 4.4 Test design The software side of the tests was developed in Simulink, as previously discussed (see Section 3.4). There is a host side and a target side software implementation. The target side software implementation (Figure 4.9) consists of (a) reading from three ADC ports, where the signals feed into the load cells, (b) outputting two PWM signals, to control the servo motor and the brushless motor speed controller, and (c) two-way data transmission with the host side (PC). The host side software implementation (Figure 4.8) consists of (a) filtering, (b) plotting and saving the load cell data received from the board, and 46 (c) sending the servo and speed controller commands to the target board. Figure 4.8: Simulink software implementation on host side (PC). The block actuators will give the predefined servo and speed controller signals, to be sent to the board. The HID receive block receives the ADC data from the board, which is then filtered (with a low pass filter, TC = 0.05), converted to force (g), plotted and saved to a data file for posterior analysis. Sample rate is 0.02s. Taking into account the platform typology discussed in Section 4.2, models 4.7, 4.8 and 4.10 will be adjusted via the characterization tests that follow: 1. Thrust versus PWM. Out of Ground Effect Thrust2 as a function of speed controller command, TOGE (δ). Maintaining a constant tilt angle at the vertical position (α = 0◦ ), the speed controller duty cycle δ is varied to cover the thrust range 100g - 400g. 2. Ground Effect Factor versus altitude. For a specific speed command δ, and with the propeller assembly in the vertical position (α = 0◦ ), the thrust at different altitudes z is divided by the Out of Ground Effect thrust (where z → ∞) to obtain 2 In order to test the Out of Ground Effect thrust, the propeller must not have any surface close below. 47 Figure 4.9: Simulink software implementation on embedded Fio Std board, see Section 3.4. The blocks set up the ADC ports, the PWM outputs, the system clock and the code compilation from Simulink. The HID Send block sends the ADC data to the host side (PC). The HID Receive block receives the PWM duty cycle values from the host side. Sample time is 0.02s. Note that a −1 sample rate in Simulink indicates that the block inherits the sample rate of other blocks that are connected to it. the Ground Effect Factor at different Z̄, between Z̄ = 0.5 and Z̄ = 3.25 (this last value is well outside the effect region of the ground effect [27] [28]). This is repeated for 3 different thrusts: 57g, 119g and 379g. One of the data sets will be used for validation of the obtained model. 3. Cosine-sine decomposition under the ground effect, Fz and Fx with α 6= 0◦ . α is varied between 0 and 16 degrees, and δ is kept constant. The force measured force projections will be measured and compared to the expected values (those obtained with sine-cosine projection). 4. Time-response of the output variables Fz and Fx with respect α. The time response will be studied by giving a step input for α separately with a constant δ, α is given 48 a 25 degree step input. The transitory responses of both forces are measured. The results are validated/adjusted with a complementary frequency analysis, where a sinusoidal input in the tilting-angle is given at different frequencies, and a bode-plot is built from the results. The test frequencies are 0.1, 1, 2, 4, 6, 8 and 10 Hz. 5. Constant component of the torque, M (α). With the brushless motor off, α is varied between 0 and 25 degrees, and the torque value is measured in order to solve for the l parameter in equation 4.10. For all the above tests, enough repetitions will be carried out to extract a statistical hypothesis. An LSE will be used to extract a model from all the data. The standard deviation of the data and regression coefficients will be obtained. In test 3 the distance of the propeller assembly to the ground will be the same one as in the hovercraft configuration (z = 9.5cm), so that the characterization can directly apply to the platform. Test 2 has the goal of characterizing the ground effect by adjusting the k parameter in equation 4.12. It is worth noting that test 3 is only needed because of the ground effect, as stated in Section 4.3.3. Without its distorting effects, Fz and Fx could surely be obtained by simple sine/cosine projection. 4.5 Experimental results and Model adjustment This section presents the results of the testbed tests and the adjustment of the theoretical model developed in Section 4.3 to fit the experimental data. 49 4.5.1 Test 1: Thrust vs PWM, TOGE (δ) Test 1 was carried out as indicated in Section 4.4. The force is measured within the δ range 6.0-7.0 % duty cycle. In order to extract an statistical hypothesis, the test is repeated 20 times. A Least Squares Estimator [26] is used to perform a linear regression of the data, θ = (AT · A)−1 · AT · y , (4.15) where θ is a column vector containing the parameters to be found (θ = [a, b]T ), y is the column vector containing the output variable values (thrust), and A is the basis function matrix, made up of 1, and δ terms. In order to fully define the above components, the model is expressed in the form y =A·θ . (4.16) The experimental data points (T1 , δ1 ), (T2 , δ2 ) · · · (Tm , δm ) can be expressed as T1 = a + b · δ1 T2 = a + b · δ2 .. . (4.17) Tm = a + b · δm These equations can then be rewritten in matrix form as: T1 1 δ1 T 1 δ 2 2 = . .. . . . Tm 1 δm | {z } | {z Y A a · , b | {z } θ } (4.18) 50 which then fully defines Y , A and θ terms in equation 4.16. The terms in 4.18 applied to the LSE equation (4.27) result in coefficients a −2076 θ= = b 359.9 (4.19) for the linear fit. Hence, the model of TOGE (δ) is TOGE (δ) = −2076 + 359.9 · δ. (4.20) Figure 4.10 shows all the data points from all the tests and the resulting linear regression. Figure 4.10: Experimental points and linear regression. Next, the standard deviation for every duty cycle δk is computed taking into account all the tests: s σ(δk ) = PN i (Ti,k − T (δk ))2 , N −1 (4.21) 51 where in this case N = 20 experimental tests. Figure 4.11 shows a plot of the linear regression with error bars that show the 95% confidence interval. Figure 4.11: Linear fit showing the 95% Confidence Intervals. The correlation coefficient of the above data is computed as PN xK X̄)(Yi − Ȳ ) i=1 (Xi − q r = qP . PN xK N xK 2 2 i=1 (Xi − X̄) i=1 (Yi − Ȳ ) (4.22) The computed correlation coefficient is r2 = 0.9869. 4.5.2 Test 2: Ground Effect Factor, Γ(Z̄) In this section, the results of test 2 from Section 4.4, are reported. Equation 4.12 cannot be directly used in the LSE, as it is a non-linear function. However, it is an intrinsically linear function [26], as it can be manipulated to obtain a 52 Figure 4.12: Experimental data points, LSE fit and Cheeseman & Bennet model. linear expression. Taking equation 4.12, Γ= 1 1+( 41Z̄ )k → Γ· 1+ 1 k 4Z̄ Γ−1=Γ· 1 k 4Z̄ 1 k 4Z̄ =1 → Γ+Γ· → Γ−1 Γ 1 k 4Z̄ = =1 → (4.23) . The last step is to apply a natural logarithm to obtain a linear equation: ln Γ−1 Γ = k · ln 1 4Z̄ . (4.24) As before, the above equation is then applied to the m available experimental data points, Γ1 −1 ln( Γ1 ) 1 ln( 4Z̄1 ) ln( Γ2 −1 ) ln( 1 ) Γ2 4Z̄2 = ·k , .. .. . . −1 1 ln( Γm ) ln( ) Γm 4Z̄ m (4.25) 53 Figure 4.13: LSE fit with 95% confidence intervals and Cheeseman & Bennet model. and so the LSE result can be obtained using the following definitions: Γ1 −1 ln( Γ1 ) ln( Γ2 −1 ) Γ2 , y= . .. −1 ) ln( Γm Γm 1 ln( 4Z̄1 ) ln( 1 ) 4Z̄2 , A= . .. ln( 4Z̄1 ) θ=k . (4.26) m The ground effect mathematical model is of uttermost importance to predict the ground effect when close to the ground, whereas it will have negligible effects on crafts far from the ground. It is preferable that the model approximates the phenomenon more closely for those data points with lower distance to the ground. For the above reasons, it was decided that a Weighted LSE method should be applied instead of the regular LSE [26]: 54 θ = (AT · W · A)−1 · AT · W · y, (4.27) where W is chosen as W = diagonal(1/z1 , 1/z2 , ...1/zm ), i.e. a diagonal matrix with the inverse of the dimensionless altitudes in its diagonal terms. This way, a data point is given a weight inversely proportional to its distance to the ground. The test is run 10 times, and the WLS is applied. The parameter is found to be k = 1.902. As it turns out, it is close to the Cheeseman & Bennet model. Nonetheless, by setting the k parameter to the new found value, the model fits better the propeller that is being used: Γ(Z̄) = 1 . 1 + ( 41Z̄ )1.902 (4.28) Figure 4.12 shows the experimental data points, the fitted model and the Cheeseman & Bennet model. Figure 4.13 shows the WLS model with 95% confidence intervals at the experimental points. Note the proximity between the Cheeseman & Bennet model and the WLS model. 4.5.3 Test 3: Vertical and horizontal force projection, Fz/x (α) Test 3 is carried out as indicated in Section 4.4, with 15 repetition so that the results have statistical significance. The recorded data is presented in Figure 4.14. In the same figure, the data is compared to the regular cosine and sine projection of the total thrust force. As seen in the figure, there is no significant variation between the data and the cosine-sine models, despite the noise caused by vibration and the turbulent nature of the wake. The close proximity of the ground apparently does not have an effect on how 55 Figure 4.14: Data from test 3. Top figure shows Fz versus tilt angle. Bottom figure shows Fx versus tilt angle. these components are obtained. Thus, the sine and cosine functions can be used to obtain the projections of the thrust. 4.5.4 Test 4: TIGE (t) As mentioned in Section 4.3.4 both a time-domain and a frequency-domain analysis is carried out. In the time-domain analysis, the time response and a parameters can be retrieved from the experimental data as the time it takes for the system to reach 63% of the final value. The frequency analysis will help to further adjust and validate the model. Model validation is a result of developing the model in one domain and checking it in the other. The time domain technique is a transient response method, while the frequency domain technique is a steady state method. In the work here presented, the former is used and the later is predicted for validation. 56 Figure 4.15: 95% confidence intervals of the traditional model with the experimental data. For the transient response method, 20 test were run to get a statistical hypothesis. With a constant thrust, a tilt angle step change is the input to the system, and the change in horizontal force is the output. Figure 4.16 presents the 20 tests superimposed, showing the time response to a step input. The time constant, identified as the mean time to reach 63% of the steady state value computed from the above tests, is τ = 0.0884 ± 0.0052, for a confidence interval of 95%. Therefore, the above transient response, modelled as a first-order system transfer function, is C(s) = 1 . 0.0884s + 1 (4.29) Note that the behaviour of the step time response, as seen in Figure 4.16, would be more accurately modelled by a second-order system, as there is overshoot and oscillation in such time response. Nonetheless, as discussed earlier, a first-order model is convenient for integration into a linear state-space model of the hovercraft. 57 Figure 4.16: 20 experimental transient response tests superimposed. To validate if this model does indeed capture the essential dynamics of the system, the frequency test is carried out 10 times for each of the following frequencies: 0.1, 1, 2, 4, 6, 8 and 10 rad/s. Figure 4.17 shows the experimental data points for the tested frequencies, for both magnitude and phase bode plots. Figure 4.18 shows the mean value of the data points, for each frequency, and the 95% confidence intervals. Note that there is significant variance in the experimental data, as seen in Figure 4.17. The reason for the disparity between the different data points is that the noise could not be filtered out in order not to alter the data itself. In consequence, the noise has an effect on the amplitude and phase determination. Despite this, when looking at the mean values of Figure 4.18, it can be clearly noticed that the experimental data correlates with the first-order system as modelled. As discussed in Section 4.3.4, a first-order modelled was preferred for ease of implementation in a linear controller. Moreover, the hypothesis was made that a first-order system would capture the essential dynamics of the system despite 58 Figure 4.17: Frequency analysis experimental data points. neglecting possible high order dynamics. The fact that the experimental data correlates to the model seems to confirm this hypothesis. Now that the time constant of the model is known, it can be determined if the testbed’s dynamics, which were analysed in Section 3.3.2, could be coupled with those that have been found above. From Table 3.3, the resonant frequencies of the testbed are, in Hz, 30.52, 78.67, 137.7, 145.1 and 175.9 for modes 1 to 5 respectively. From the first order model depicted in Equation 4.29, one can identify the pole as s1 = 1 1 = = 11.31 rad/s = 1.800 Hz . τ 0.0884 (4.30) The lowest resonant frequency is 30.52 Hz, which is more than an order of magnitude higher than the model’s pole, which is 1.800 Hz. In conclusion, according to the testbed analysis performed in the previous chapter, the testbed’s dynamics do not have an impact on the results obtained above, as its natural frequencies are well above the model’s pole. 59 Figure 4.18: Frequency analysis mean values with 95% confidence intervals. 4.5.5 Test 5: Torque versus tilt angle M (α) Test 5 is carried out as indicated in Section 4.4, to find M as a function of α. The test is repeated 20 times so that the results have statistical significance. The recorded data is presented in Figure 4.19 (red dots). As it can be observed, the torque values are small. As indicated in Section 4.3, the torque as a function of tilt angle follows equation 4.10, from which the only unknown parameter is lP A−CoM : the distance from the propeller assembly’s Center of Mass and the tilting axis. To find this parameter, equation 4.10 is fitted to the experimental data in Figure 4.19 (blue line). The result is lP A−CoM = −1.170 · 10−4 , which indicates that the propeller assembly’s CoM is almost aligned with the tilting axis. The found torque model is displayed in Figure 4.15 with the corresponding 95% confidence intervals, computed from the experimental data. As it can be seen, the data presents significant noise, because the signal that is being read (torque) is small, and thus the signal-to-noise ratio is smaller than 60 Figure 4.19: Data from test 5, where torque values are displayed against the tilting angle values. in other tests. 4.6 Conclusion In this chapter, the propeller assembly characterization was carried out, obtaining a set of equations describing the forces and the torque that the propeller assembly produces given certain speed command, tilt angle and distance to the ground. The hovering platform was briefly described. The theoretical model describing the forces and the torque in the propeller assembly was presented. The experimental tests were outlined. The results were presented and the parameters to adjust the theoretical models were found. The gray box approach had satisfactory results, in that the theoretical models were good starting models that needed experimental adjustment. In the case of the ground effect factor, the Cheeseman & Benett model proved to be applicable to this project’s propeller assembly, with a slight adjustment of its k parameter. Furthermore, the Matlab code that was developed for the system identification of 61 Figure 4.20: Model with 95% confidence intervals, computed with the experimental data. Due to the small torque values, the signal-to-noise ratio is small on the experimental data. the propeller assembly can be seen in Appendix D. The propeller assembly force and torque equations are: Fz (δ, α, Z̄) = T (δ) · Γ(Z̄) · cos(α) Fx (δ, α, Z̄) = T (δ) · Γ(Z̄) · sin(α) = mP T · g · l · sin(α), M (α) (4.31) where T (δ) = a + b · δ , Γ(Z̄) = (4.32) 1 1+ (4.33) ( 41Z̄ )kGEF and the five experimentally found parameters are: a = −2076 T (δ) : , M (α) : l = −1.170 · 10−4 , b = 359.9 kGEF = 1.902, τ = 0.0884 . 62 5. Thrust-vectoring hovercraft design, model & localization 5.1 Introduction The final goal of this project, as discussed in Chapter 1, is to implement an experimental and theoretical basis for a future development of a thrust-vectoring hovercraft. This requires the development of a controller and, if needed, a full state observer for the thrust-vectoring platform. Such a system will allow the hovercraft to move around a friction-reducing surface with significant accuracy (limited only by the observability of the system and the on-board sensor’s accuracy). In order to achieve this goal, focus should be put on the design, model and the state feedback (localization) of the reduced DOF platform. Section 5.2 presents the design of the platform, including a description of the mechanical, electrical and electronic components and their integration. Section 5.3 shows the derivation of a non-linear model of the vector-thrusting hovercraft, that makes use of the tilting propeller assembly derived in Chapter 4. Section 5.4 derives a linear timevariant model from the non-linear model under a set of assumptions: small pitch angle, aligned Center of Mass and constant altitude. Section 5.5 derives a linear time-invariant model from the non-linear model by finding the Jacobian of the model A and B matrices. Finally, Section 5.6 discusses the localization of the platform. This includes the use of an Inertial Measurement Unit (IMU) fused with an observer, to provide the system with a dead reckoning estimate of its location. 63 5.2 Platform design & components As discussed earlier, the platform moves on a friction-reducing surface. The system is thereby restricted to 3 degrees of freedom: the spatial coordinates x and y and the yaw attitude angle Ψ. The way in that the design of the platform is addressed is the following: find a simple but effective design, that will allow the platform to move freely within its 3 degrees of freedom on the frictionless table by the use of 2 thrust vectoring propellers. Key design considerations are presented below: 1. For the sake of greater stability, the center of mass of the vehicle must be aligned with the propellers1 . If this holds, then the total force lift is applied directly on the center of mass, thereby producing no torque around the y local axis (See Figure 5.4 in Section 5.3). 2. The IMU (Inertial Measurement Unit) must be located as far as possible from the electromagnetic disturbance caused by the brushless motors. Such disturbances can potentially affect the accuracy of the magnetometer. 3. The airflow coming from the propellers should to be minimally blocked by any of the hovercraft’s structure, thereby reducing the hovercraft’s effect on the air wake. A conceptual 3D drawing of the hovercraft is presented in Figures G.4 and 5.2. The components are listed and described in Table 5.1. Three pieces need to be manufactured to obtain such a platform: a base where all components are placed, and two aluminium L-shaped brackets that join the servo motors with the brushless motor. The fully assembled thrust-vectoring hovercraft is shown in Figure 5.3. 1 This implies that the center of mass must be on the imaginary line that goes from the rotationg axis of one propeller to the rotating axis of the other propeller. 64 Figure 5.1: Thrust-vectoring hovercraft design. After the hovercraft is assembled, the weight was found to be MT = 705 g. Furthermore, it is necessary to find the vehicle’s moment of inertia around the vertical axis, Izz . Normally, this would be computed as Izz = N X mi · ri2 , (5.1) i=1 where mi and ri are the mass and distance to the CoM of the ith hovercraft component. The term ri2 indicates that elements that are farther from the inertia axis have a major contribution on the total inertia, as opposed to those elements that are close to it. Therefore, it is reasonable to assume that most of the hovercraft’s Izz inertia comes from the tilting propeller assemblies, that weight 145 g (each) and are a distance L = 17.145cm from the center of mass. Both distance L and the position of the Center of Mass are shown in Figure 5.2. Other components might weigh more but are situated near the center of mass (e.g., the battery weights 180 g, but is situated right on the vehicle’s center of mass, and hence its contribution to the total vehicle inertia is minor). With this considerations taken into account, the total Izz is estimated as Izz = 2 · mP A · rP2 A−CoM · k (5.2) 65 Figure 5.2: Hovercraft top view. The Center of Mass (CoM ) and its distance to either propeller assembly L are shown. where k = 1.2. k is used to account for the other element’s contribution to the inertia, which is estimated to be 20% of the propeller assemblies contribution to the inertia. By substituting in mP A = 145g and rP A−CoM = 0.1715m, the inertia estimation becomes Izz = 0.01023 Kg · m2 . (5.3) The same reasoning and assumptions are applied for the computation of Ixx (i.e. the moment of inertia around the x axis, as shown in Figure 5.2). Again, most of the inertia comes from the two propeller assemblies. The rest of components are significantly closer to the x axis and hence their contribution to Ixx is minor. In this case, it is estimated to be 10% of the contribution of the two propeller assemblies. Equation 5.2 is applied for Ixx , with k = 1.1. The result is Ixx = 0.009377 Kg · m2 . (5.4) 66 Item A B C D E F G H I 5.3 Model AXI 2212 Gold Line AC brushless motor [19] Motor-servo union Hitec HS225-MG Might Mini Metal Gear servo [22] APC Slow-Flyer 1047 propellers [20] Base Jeti Advance 30 Pro electric speed controller [23] Hyperion CX-G3 Series 4000 mAh Li-po battery [24] Aimagin 32 bit ARM Fio Std Board [21] Sparkfun’s Razor 9DOF IMU [31] Description Brushless electric motor that drives the propeller, which in turn produces the lifting force. Aluminium junction between torquemeter and 2nd half of the test bench. Their 2D drawings can be seen in Appendix A. Servo motor, used along two plastic gears to spin the axis that holds the brushless motor, hence tilting the motor and propeller. See Appendix B for the full specifications. 10 inch diameter, 4.7 pitch, clockwise and counter-clockwise propellers. Hard wood structure supporting the rest of components, see Appendix A. The speed controller drives the brushless motor, by changing the DC voltage and current provided by the battery into a three-phase electric voltage and current. 7.4 V, 16.2 Wh Lithium-polymer battery. Micro-controller board, based on STM32F103RE ARM 32-bits CortexTM M3 processor Sensor board with 3-axis magnetometer, 3-axis gyroscope and 3axis accelerometer. Suitable for use as an AHRS (attitude and reference heading system. Table 5.1: Hovercraft mechanical, electrical & electronic components. Non-linear model Consider the forces acting on the hovercraft as shown in Figure 5.4. One can obtain the hovercraft dynamical equations by applying the following simplifying assumptions: • Fx (θ) << Fx (α): the forward force due to the pitch angle θ is very small when compared to the forward force due to the power-train tilt angle α. Also, because it is assumed that θ << 1. • H ≈ 0: the Center of Mass (CoM) is on the line that crosses the platform from FR to FL . This is actually a design decision (see Figure 5.4). • Z̄ ≈ ct.: the platform altitude remains constant. 67 Figure 5.3: Fully assembled thrust-vectoring hovercraft. Using these assumptions, one obtains the dynamic equations below. Note that all equations are obtained for the hovercraft local coordinates shown in Figure 5.4. As it can be deduced from the top view in Figure 5.4, the forward movement is obtained by summing the forward component of the right and left forces, indicated as FRx and FLx respectively: mẍ = FRx + FLx . (5.5) The rear view in Figure 5.4 shows that the sideways movement comes from the projection of the vertical component of the thrust forces onto the y axis, due to the roll angle φ: mÿ = −(FRz + FLz )sin(φ). (5.6) 68 Figure 5.4: Forces acting on the platform, axis, positive angles and main relevant platform dimensions; top view (top picture), rear view (bottom picture). Note the negative sign in 5.6 comes from the fact that a positive φ angle gives a negative force projection onto the local y axis, as per the designated coordinate basis given in Figure 5.4. Likewise, the yaw angular movement is found in a similar fashion. One can define the yaw of a differential drive vehicle as: Izz ψ̈ = L(FRx − FLx ), (5.7) where Izz is the moment of inertia around the vertical z axis given in equation 5.3. In addition, the roll angular movement is given by Ixx φ̈ = L(FRz − FLz ), (5.8) 69 where Ixx is the moment of inertia around the horizontal x axis, that crosses the platform from front to rear. To sum up, the set of non-linear dynamic equations of the hovering platform, subject to the assumptions made above, is 1 (FRx + FLx ) ẍ = m ÿ = − 1 (FRz + FLz )φ m ψ̈ φ̈ = L Izz (FRx − FLx ) = L Ixx (FRz − FLz ) (5.9) It is useful to rewrite the above equations in the non-linear state space form ¯ = f (x̄, ū), ẋ (5.10) where x̄ and ū are the vectors containing the system states and the system inputs, respectively (i.e. as a series of 1st order differential equations). But because the equations in 5.9 are second-order differential equations one must first convert the 4 second-order equations into 8 first-order equations. Consider the following state variables used to obtain the set of 8 first-order differential equations: x = x1 y = x3 , , ẋ = x2 ẏ = x4 ψ = x5 ψ̇ = x6 , φ = x 7 . (5.11) φ̇ = x8 Also, the power-train force equations G.1 obtained in Chapter 4, can be expressed in terms of the system input variables: δR = u1 , δL = u2 , αR = u3 , αL = u4 . 70 as FRx (u1 , u3 ) = T (u1 ) · Γ(Z̄) · sin(u3 ) FRz (u1 , u3 ) = T (u1 ) · Γ(Z̄) · cos(u3 ) FLx (u2 , u4 ) FLz (u2 , u4 ) = T (u2 ) · Γ(Z̄) · sin(u4 ) = T (u2 ) · Γ(Z̄) · cos(u4 ) The resulting equations are ẍ = Γ(mZ̄) [T (u1 ) · sin(u3 ) + T (u2 ) · sin(u4 )] Z̄) ÿ = −Γ( · φ · [T (u1 ) · cos(u3 ) + T (u2 ) · cos(u4 )] m ψ̈ φ̈ (5.12) = L·Γ(Z̄) Izz [T (u1 ) · sin(u3 ) − T (u2 ) · sin(u4 )] = L·Γ(Z̄) Ixx [T (u1 ) · cos(u3 ) − T (u2 ) · cos(u4 )] (5.13) Finally, introducing the state variables from equation 5.11, the non-linear state space equation system is obtained as: ẋ1 ẋ2 ẋ3 ẋ4 ẋ5 ẋ6 ẋ7 ẋ8 = x2 = Γ(Z̄) m [T (u1 ) · sin(u3 ) + T (u2 ) · sin(u4 )] = x4 = −Γ(Z̄) m · x7 · [T (u1 ) · cos(u3 ) + T (u2 ) · cos(u4 )] (5.14) = x6 = L·Γ(Z̄) Izz [T (u1 ) · sin(u3 ) − T (u2 ) · sin(u4 )] = x8 = L·Γ(Z̄) Ixx [T (u1 ) · cos(u3 ) − T (u2 ) · cos(u4 )] 71 The above equations are used for the derivation of a linear time-variant and linear-time variant models in the following two sections. They are also used in the simulation step, described in Chapter 6. The observational characteristics of the model are discussed in Section 5.6. 5.4 Linear Time-Variant model Recall from Chapter 4, that the linear model of the thrust as a function of speed controller command, δR/L , equation G.2: TR (u1 ) = a + bu1 (5.15) TL (u2 ) = a + bu2 and their derivatives are expressed as TR/L 0 (u1/2 ), R (u1 ) TR 0 (u1 ) = ∂T∂u =b 1 TL 0 (u2 ) = ∂TL (u2 ) ∂u2 (5.16) = b. Equation set 5.16 is needed in order to obtain the Jacobians of the A and B matrices. The LTV (Linear Time-Varying) state space model has the following form: x̄˙ = A(t) · x̄ + B(t) · ū ȳ = C(t) · x̄ 72 with x ẋ y ẏ x̄ = , ψ ψ̇ φ φ̇ δR δ L ū = . αR αL where A, B and C matrices vary with time. A linear time-varying model is often used to describe systems whose dynamics slowly change with time (e.g. as a cruising airplane burns fuel, its mass changes with time, m(t)). Furthermore, LTV models are often used as a way to linearise a non-linear model over time. At every time step, the Jacobian matrices of the non-linear functions with respect to the state and input variables can be computed to obtain a linear model from the non-linear system at that time step. Then, a control law may be computed at every time step to provide one-step-ahead adaptive control. This concept can be implemented using a Model Predictive Controller [32][33]. The matrices A and B are computed as the Jacobian matrices of the non-linear functions in 5.14 with respect to x̄ and ū as ∂f1 ∂x1 A8x8 ∂f2 ∂x1 = . . . ∂f8 ∂x1 ∂f1 ∂x2 ··· ∂f2 ∂x2 ··· .. . .. ∂f8 ∂x2 ··· . ∂f1 ∂x8 ∂f1 ∂u1 ∂f2 ∂f2 ∂x8 , B8x4 = ∂u1 . .. . . . ∂f8 ∂x8 ∂f8 ∂u1 ∂f1 ∂u2 ∂f1 ∂u3 ∂f2 ∂u2 ∂f2 ∂u3 .. . .. . ∂f8 ∂u2 ∂f8 ∂u3 ∂f1 ∂u4 ∂f2 ∂u4 . .. . (5.17) ∂f8 ∂u4 The resulting A, B and C matrices are defined as the linear time-variant state-space model 73 in local coordinates as 0 0 0 0 A= 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Γ − m [C(u3 )TR (u1 ) + C(u4 )TL (u2 )] 0 , 0 0 0 0 0 1 0 0 (5.18) 0 1 S(u3 )TR 0 (u1 ) m 0 1 −x7 C(u3 )TR 0 (u1 ) m B = Γ 0 S(u3 )TR 0 (u1 ) L Izz 0 C(u3 )TR 0 (u1 ) IL xx 0 0 1 S(u4 )TL 0 (u2 ) m 1 C(u3 )TR (u1 ) m 0 0 1 −x7 C(u4 )TL 0 (u2 ) m 1 x7 S(u3 )TR (u1 ) m 0 0 −S(u4 )TL 0 (u2 ) ILzz C(u3 )TR (u1 ) ILzz 0 0 −C(u4 )TL 0 (u2 ) IL xx −S(u3 )TR (u1 ) IL xx 0 1 C(u4 )TL (u2 ) m 0 1 x7 S(u4 )TL (u2 ) m , 0 L −C(u4 )TL (u2 ) Izz 0 L S(u4 )TL (u2 )) Ixx (5.19) where C(u) and S(u) are cos(u) and sin(u) respectively. The A and B matrices with the numeric values can be seen in Appendix E. 5.5 Linear Time-Invariant model Finally, an additional set of assumptions must be made in order to obtain an LTI (Linear Time-Invariant) model for which an LQR controller can be developed. These assumptions are as follows: 74 1. Roll angle is negligible, φ ≈ 0, φ̇ ≈ 0. (5.20) 2. A constant nominal speed command (and hence thrust) is used in both propellers, δ = ct = δN . (5.21) which also implies that the sideways displacement (in local coordinates) is not controlled: y = 0, ẏ = 0. (5.22) αR , αL << 1 rad. (5.23) 3. Small tilt angles are used, Based on the above assumptions, the following simplifications can be made. Assumptions 1 and 2 reduce the number of state variables to 4, as opposed to the 8 in the non-linear and linear time-variant models. Per assumption 3, the projection of the thrust into the horizontal direction can be approximated as sin(αR/L ) ≈ αR/L . (5.24) The movement of the thrust-vectoring craft can now be fully described with equations 5.5 and 5.7: mẍ =FRx + FLx Izz ψ̈ =L(FRx − FLx ). (5.25) (5.26) Recall that the position x of the craft is defined as the displacement along the local x axis, as shown in Figure 5.4. 75 The dynamics that were found by time frequency response analysis in Section 4.5.4 can be introduced by means of equation 4.13: ẋ = −a · x + a · u. As discussed in Chapter four, equation 4.13 describes a first-order system in the state-space formulation, with the above u being the desired state and a being the reciprocal of the time constant, which in this case was found to be τ = 0.0884. Thereby, 1 1 1 ȧx = − · ax + · (FRx + FLx ) τ τ m (5.27) describes the first-order dynamics of the acceleration change due to tilt angle, as it was found in Section 4.5.4. In order to obtain a set of state-space equations, the variable changes x = x1 , ẋ = x2 , ψ = x3 , ψ̇ = x4 (5.28) are introduced. However, because the hovercraft’s sensor package is an IMU with a 3-axis accelerometer (see Section 5.2), x and ẋ cannot be directly observed, only ẍ can. So the acceleration along the local x axis, is chosen as another state variable, ax = x5 . This results in the set on linear state space equations ẋ1 = x2 ẋ2 = x5 ẋ3 = x4 ẋ4 = ILzz TN (αR − αL ) ẋ5 = − τ1 · x5 + τ1 · TmN (αR + αL ). (5.29) 76 where the nominal thrust is computed with equations G.2 and G.3 as TN = T (δN ) · Γ(Z̄). (5.30) As previously stated, a friction-reducing surface is used. Ideally there would be no friction between the thrust-vectoring platform and the table. However, even though most of the friction can be removed, it is not possible to totally eliminate it. Enough remained that it became necessary to introduce a small friction force term into the system of equations, Ff = −c · ẋ. (5.31) The magnitude of this friction force model is proportional to the velocity ẋ and a friction constant c. This term was added into the x direction velocity equation as shown below: ẋ1 = x2 c x2 ẋ2 = x5 − m (5.32) ẋ3 = x4 ẋ4 = ILzz TN (αR − αL ) ẋ5 = − τ1 · x5 + τ1 · TmN (αR + αL ), resulting in the system matrices 1 0 0 − c m A= 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 , 0 − τ1 (5.33) 77 0 0 B= 0 L Izz TN 1 TN τ m 0 0 0 . − ILzz TN (5.34) 1 TN τ m The value of the c parameter was chosen so that the actual distance covered by the hovercraft matched the distance estimated by the observer (see Section 5.6), given a distance command of 1.5m in the positive x direction. This was found to be c = 0.25. The A and B matrices with the numeric values are shown in Appendix E. The above model must be checked for controllability. A system is controllable if the controllability matrix Co = B AB A2 B · · · An B , (5.35) where n is the number of state variables, is full rank[34]. Substituting the parameter numeric values into Equations E.3 and E.4 and computing the controllability matrix gives 78 as a result 0 0 41.85 40.07 0 0 0 0 −41.85 40.07 40.07 41.85 0 −453.3 0 0 40.07 −41.85 0 −453.3 40.07 −467.5 0 0 5128 T Co = . 40.07 −467.5 0 0 5128 −467.5 5294 0 0 −58009 −467.5 5294 0 0 −58009 5294 −59886 0 0 656210 5294 −59886 0 0 656210 (5.36) The above matrix has condition number 22425, and is full rank (rank = 5). Therefore, the system is controllable. 5.6 Localization As a final step in the implementation of the hovercraft, it is necessary to address the localization problem. A way of estimating the position and attitude with respect to a fixed reference, as accurate as possible, is needed before undertaking the control of the platform. The core to this problem is the 9-degree of freedom IMU. It uses a magnetometer, a gyroscope and an accelerometer, to measure the craft’s accelerations, attitude angles and angular speed changes. However, the linear speed and the position cannot be directly measured. Thus, the only measurable system variables are ψ, ψ̇ and ax . The other state variables must be reconstructed. The hovercraft’s position and velocity must be 79 reconstructed from the available measurements. A first approach to localization would be to take ax and integrate it once to get the linear speed and twice to get the position. However, this method obtains impractical results, as the error in the accelerometer measurements is integrated twice, thereby allowing noise errors to accumulate rapidly within the position estimate. The fact that accelerometers are inherently not very accurate only makes matter worse. One can demonstrate this by simply integrating the measurements of a static IMU. Figure 5.5 shows such an experiment. Notice how the accelerometer readings can be integrated twice to get speed and position. However, also notice how this results in the estimated position drifting away rapidly, even though the accelerometer is completely static. Figure 5.6 shows the same result for the case when the accelerometer is moved 30cm on a flat surface. Figure 5.5: Estimated position by double integration of the accelerometer readings, when the accelerometer is static. A better approach is to implement an observer. An observer is a dynamic system 80 Figure 5.6: Estimated position by double integration of the accelerometer readings, when accelerometer is moved a small distance (30cm). whose state variables are the estimates of the state variables of another system. For any observable linear system, an observer can be designed having the property that the estimation error converges to zero with arbitrary speed[35]. In other words, it uses the available system dynamics model to fuse measurements with model predictions to better estimate the plant’s state. Between all available observers, a Kalman Filter is a sensible choice, because it offers some key features [36][37]: 1. It is an optimal observer: assuming zero-mean gaussian error, and the use of precise system and measurements error covariance matrices, the Kalman filter gives the best possible estimate. 2. It keeps track of both the estimated state x̂ and the estimate error covariance matrix P (i.e. it estimates the vehicles state within a Gaussian distribution centered at x̂ 81 with covariance P ). 3. It can be easily adapted to Non-Linear models. This variation of the Kalman filter is known as the Extended Kalman Filter. The Kalman Filter algorithm is presented below. This presentation is derived from the description given in [37]: x̂k|k−1 = Axk−1|k−1 + Buk (5.37) Pk|k−1 = Ak Pk−1|k−1 ATk + Ck (5.38) Kk = Pk|k−1 C T (Ck Pk|k−1 CkT + Wk )−1 (5.39) x̂k|k = x̂k|k−1 + Kk (zk − Cxk|k−1 ) (5.40) Pk|k = (I − Kk Ck )Pk|k−1 (5.41) The first step is to define the system’s C matrix (observation matrix), depending on the observable outputs of the system. Defining the measurement vector as z = (ψ, ψ̇, ax )T = (x3 , x4 , x5 )T and the state vector as x = (x1 , x2 , x3 , x4 , x5 )T , the measurements can be expressed as z = C · x, (5.42) with the observation matrix being 0 0 1 0 0 V = 0 0 0 1 0 . 0 0 0 0 1 (5.43) The A and B matrices are equations E.3 and E.4 respectively. The measurement error covariance matrix, W , is computed experimentally as is discussed next. The covariance of the ax , ψ and ψ̇ measurement noise is measured by 82 leaving the IMU in a static position and taking readings over a period of 20 seconds for each of the three measurements. Once these measurements have been taken, the covariance is computed for each measurement using equation 5.44, σ2 = N X 1 · (x(i) − x̄)2 , N −1 (5.44) i=1 where x̄ is the expected value of the variable, estimated using equation 5.45. x̄ = N X xi . (5.45) i=1 Assuming negligible non-diagonal terms, the resulting W matrix is obtained: −5 2.613 · 10 W = 0 0 0 0 4.564 · 10−4 0 0 0.04479 . (5.46) The model error covariance matrix, V , is selected ad-hoc with the following criteria: • The position estimate x̂ converges (as opposed to when it is obtained by simply ˆ must integrating the acceleration twice). This implies that the velocity estimate ẋ also converge. • The state is estimated within an error of 10% in position (e.g. if the vehicle moves 1m, the error is 10cm or less) and within a ±10 degree error in orientation. Again, assuming negligible non-diagonal terms, V3,3 and V4,4 are chosen to be the equal to W3,3 and W4,4 respectively. This means that the model is assumed to be as accurate as the measurements. On the other hand, the model error covariance corresponding to the states that can be directly or indirectly measured with the accelerometer measurements is chosen to be significantly lower than the measurement covariance, as to adjust the observer to the 83 fact that measurements coming from the accelerometer are very unreliable, and thereby, emphasis must be given to the model. The resulting V matrix is a diagonal matrix with V1,1 = V2,2 = V5,5 = 0.0001, V3,3 = W1,1 , V4,4 = W2,2 . (5.47) As it can be seen, the localization for the linear position, velocity and acceleration relies mostly (but not exclusively) on the model, while the localization for the angular position and speed relies on both the model and the sensor measurements. The implementation of the above Kalman filter greatly improves the localization of the thrust-vectoring craft, making the control loop practical, as opposed to the case of localizing by simple integration of the accelerometer results. This is illustrated in Figure 5.7, where the hovercraft was moved 30cm, and both the Kalman estimate and the double integration estimate were recorded and plotted. Figure 5.7: For a position change of 30 cm, the position estimate through both the Kalman filter and the double integration of the accelerometer readings are overlain. Before implementation one must analize the system’s observability. This tells 84 if the system’s states can be reconstructed via the available measurements. A system is observable [34] if the observability matrix C C ·A 2 Ob = C · A . .. C · An−1 (5.48) is full rank. Taking The A, B, and C matrices in section 5.5, and substituting the parameter values, the following observability matrix is obtained: 0 0 0 0 0 0 0 0 0 0 0 0 O = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 −11.31 0 0 0 0 0 0 . 0 0 0 128.0 0 0 0 0 0 0 0 0 0 −1448 0 0 0 0 0 0 0 0 0 16375 (5.49) The condition number of the above matrix is infinite (i.e. it is singular), and its rank is 3, therefore it is not full rank. It is concluded that the system is non-observable. In order 85 to tell what variables are not observable, the Jordan form of the system is analized, where the new state variables are completely decoupled. First, the matrix A is transformed into the Jordan form: 0 0 0 −8.333 0 −0.3546 0 0 J = Â = V −1 AV = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 where the transformation matrix V is 0.01504 −0.3534 0.3384 0 0 −0.1253 0.1253 0 0 0 V = 0 0 0 1 0 . 0 0 0 0 1 1 0 0 0 0 (5.50) (5.51) The new state space variables relate to the original variable through the inverse of the V matrix, as x̂ = V −1 x → 0 0 0 1 x1 x̂1 0 x̂ 0 7.978 0 0 1 x2 2 x̂ = 2.955 8.333 0 0 1 · x . 3 3 0 1 0 0 x4 x̂4 0 x5 0 0 0 1 0 x̂5 (5.52) By examination of the above equation, it can be seen that x̂1 is the acceleration, x̂2 is a combination between acceleration and velocity, and x̂3 is a combination of the acceleration, 86 the velocity and the position. Now, by looking at the new observation matrix Ĉ: 0 0 0 0 0 0 0 0 0 0 Ĉ = CV = 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 (5.53) it can be seen that only x̂1 , x̂4 and x̂5 can be observed. These variables correspond to the acceleration, the angular position and the angular velocity. Note that these are precisely the state variables that are measured by the IMU. The implication of the above analysis is the following: the uncertainty of the system estimation will not converge (the estimate error covariance P diverges)[37]. In other words, because the x position and the ẋ velocity of the hovercraft cannot be directly observed, the uncertainty of their estimation cannot be reduced with time (the estimate error covariance P diverges)[37]. Nonetheless, for this project the implication is that the hovercraft cannot operate during long time periods without accumulating large state uncertainty (at time t = 0 the uncertainty of the robot’s state is 0, thereby every time the operation is reset, so does the estimate uncertainty P ). The Matlab implementation of the above Kalman filter can be seen in Appendix F. 5.7 Conclusions In this chapter the thrust-vectoring hovercraft design was detailed. A non-linear model was developed, as a base for the derivation of linear models and for its later use in 87 simulation. A Linear Time-Varying model was derived from the non-linear model. A linear time-invariant model was also derived from the non-linear model. Finally, the localization of the hovercraft was implemented with the design of a Kalman filter, its parameters were found and the observability of the system was discussed. By using a 3D drawing software, a hovercraft concept was straightforward to design and then to assemble, as it helped to position every component so that the CoM would be on the desired position: aligned with the propellers. Having developed a thorough mathematical model of the tilting propeller assembly, it was straightforward to obtain a complete non-linear model of the thrust-vectoring craft. The non-linear model was developed for two reasons: 1. To derive from it a linear model that captures the essential dynamics of the system and then use it in the design of a linear Kalman filter and an LQR controller. 2. The non-linear model is useful in the implementation of a simulator for testing the control algorithms (see Chapter 6). As discussed in the previous subsection, the non-observability of this system limits the time duration of the hovercraft operation. Although this is not an inconvenience for this project, the implementation of a measurement method that grants a fully observable system is discussed as possible future work in Chapter 7. 88 6. Platform control 6.1 Introduction This chapter describes the design, validation and implementation process of a controller that uses a physical model of the plant for the thrust-vectoring hovercraft. The process of designing a controller has been to: 1. Design the plant. 2. Develop a model. 3. Design an observer. 4. Design the controller. 5. Validate the controller through simulation. Step 1-3 where accomplished in earlier chapters. This chapter focuses on steps 45. The above steps are the “ideal” process. The true implementation involves a significant amount of iteration, because each step affects the other. The controller was redesigned several times according to simulation results; likewise the simulation was debugged on the process, which implied revalidating results obtained earlier; etc. Nevertheless, the results are presented in a linear fashion here. Additionally, Appendix G shows an actual implementation of a LQR controller on the actual hovercraft, with a slightly different model than the one derived in Chapter 51 . In the following section, the controller design and its validation through simulation is presented. 1 The parameters in this model were re-derived after corrections were made to the thesis. The revised model is the one presented and used in Chapters 4-6. 89 6.2 Control design & validation through simulation As said in the beginning of the chapter, the design and implementation of the controller was an iterative process. Two type of controllers were designed and tested via simulation: pole-placement and Linear Quadratic Regulator (LQR). In the end, LQR was chosen because better results were obtained with it. The design of an LQR controller was carried out using the Matlab function lqr, which given the system model (i.e. A and B matrices) computes a state-feedback gain matrix K = −R−1 B T P (6.1) that ideally delivers the performance specified by the Q and R matrices, by finding P that satisfies the Riccati equation [34] − Ṗ = AT P + P A − P BR−1 B T P + Q. (6.2) The A and B matrices are taken from the linear model derived in Section 5.5, equations E.3 and E.4. A hovercraft simulator was developed by closing the loop on the non-linear model with the addition of the sensor and controller dynamics. Figure 6.1 shows the simulation Simulink block diagram. The non-linear model developed in Section 5.3 is used (equation set 5.9). There are two tunable matrices in an LQR controller, an n by n Q matrix and an m by m R matrix, where n is the number of states and m the number of inputs. In this case, n = 5 and m = 2. Roughly, Q and R regulate the weight of the states with respect to the input variables within the loss function[34]: 1 L(x, u) = (xT Qx + uT Ru), 2 (6.3) 90 Figure 6.1: Simulink simulation block diagram. The DKE (Dynamic-Kinematic Environment) block contains the non-linear model. The sensor error block adds zero-mean gaussian noise to the state variables. giving more importance to the former or the latter. It is enough to maintain a constant R and tune the controller by modifying just Q. Hence R is chosen to be the identity matrix. The resulting values below were obtained through repeated tests via simulation. 0 0 0 1 0 0 0.5 0 0 0 1 0 , R = , Q= 0 0 0.1 0 0 0 1 0 0.01 0 0 0 0 0 0 0 0 (6.4) The lqr Matlab function was used to obtain the corresponding feedback gain matrix K: 0.1017 0.04958 0.7071 0.6593 0.2236 . K= 0.7071 0.6593 −0.2236 −0.1017 0.04958 (6.5) With an initial state of x = (1 0 1 0 0)T ), the simulation results are shown in Figures 6.2 and 6.3. Note that in this case, the desired final state is x = (0 0 0 0 0)T . The controller successfully brings the plant to the desired state. 91 Figure 6.2: Evolution of hovercraft state for a transition from x = (1 0 1 0 0)T ) to x = (0 0 0 0 0)T . Figure 6.3: Hovercraft’s regulator control effort for a transition from x = (1 0 1 0 0)T ) to x = (0 0 0 0 0)T . 92 6.3 Conclusions In this Chapter, the controller for the hovercraft was designed using the linear time-invariant mathematical model derived in Chapter 5. Then it was tested with a hovercraft simulator using the non-linear model derived in Chapter 5. The results show that the model was accurate enough to get good localization and control of the thrust-vectoring platform, thus reinforcing the linearisation assumptions made in Section 5.5. Moreover, the hovercraft tracked the movement commands with great accuracy, rapidly converging to the desired solution. 93 7. Conclusions In this work, a thrust-vectoring 3-DOF platform on a friction-reducing surface was developed. To this end, a tilting-rotor testing bench was designed and built. Then it was used to perform system identification on the tilting propeller assembly. The tiltrotor hovercraft was designed and built. Non-linear and linear mathematical models were developed. An observer based on the linear Kalman filter was designed and implemented. Finally, an LQR controller was designed and tested in a simulator using the non-linear model of the hovercraft. The first step involved building a testing bench capable of measuring two components of force and a torque simultaneously. A literature search showed that, to the extent of the author’s knowledge, there is a lack of testing benches with these characteristics, where tilting propeller assemblies can be fully characterized and properly integrated within thrustvectoring platforms. After a complete 3D drawing and finite element analysis that led to a redesign, the testing bench was capable of obtaining decoupled measurements of the two force components and the torque, and perform both static and dynamic tests (i.e. time and frequency domain tests). The testing bench was successfully integrated with the electric and electronic components, which were selected for simplicity of implementation and use, so focus could be placed on the main goals of the project. Finally, the testing bench was characterized to correlate the load cell voltage readings with the actual forces and torque. A correlation between servo motor tilt angle and servo PWM was also obtained. After the design, manufacture and characterization of the testing bench were complete, several tests with the tilting propeller assembly were carried out: 94 • The speed controller PWM vs. thrust curve was identified. • The model for the ground effect factor was validated. • A model for the projection of the thrust into their vertical and horizontal terms, under the ground effect, was identified. • The thrust dynamic responses against input changes in speed controller command and tilting angle, separately, were identified. The dynamics were modelled as a firstorder system through frequency domain analysis as well as a time-domain analysis. • The position of the propeller’s assembly center of mass by looking at the torque at different tilting angles was found. After the tests were complete, a set of equations describing the behaviour of the tiltingpropeller assembly thrust components and torque were obtained. The third step in developing the hovercraft was the design and assembly of a thrust-vectoring platform, capable of manoeuvring on a friction-reducing surface. The key components used in this test bed were the Fio Std board and the fully characterized propeller assembly. With the set of equations for the tilting-rotor in hand, a non-linear model of the hovercraft was derived. From this non-linear model, it was straightforward to introduce a set of assumptions to obtain linear time-variant and linear-time invariant models of the hovercraft. The localization of the thrust-vectoring platform was a key point in this project. A naive approach was first used to estimate the position directly by double integration of the accelerometer readings. This approach proved to be unsuccessful for the reasons discussed in Section 5.6. Clearly, the hovercraft position estimation could not rely exclusively on sensor reading. Having thoroughly developed a model for the propeller assemblies and the 95 hovercraft, an observer could be implemented successfully. A Kalman filter was chosen as the observer, to enable the position estimation to rely not only on the sensors, but also on the linear model, in an effective manner. The Kalman filter was designed and implemented, obtaining a much improved localization system. The final step aimed for the design of a LQR controller for the Hovercraft. To this end, the K feedback matrix was computed using the previously derived linear model. Then, it was validated with a simulation, using the non-linear model of the hovercraft. In conclusion, with the goal of developing a novel thrust-vectoring platform, a thorough system identification process on the platform’s intended power-train was key in obtaining an accurate model of the new device. An accurate non-linear model is essential to the following project points: 1. Obtaining accurate linearised models. 2. Be able to design a Kalman filter that can accurately estimate position and orientation. 3. Be able to design a viable LQR controller. All goals outlined in Section 1.4 were achieved. 7.1 Direction of Future Work Localization remains a key issue. Although a successful observer was implemented in this work, it has the shortcoming of diverging error covariance on the position estimate. This implies that the thrust-vectoring platform cannot operate indefinitely without the error in position becoming increasingly large. Therefore an absolute positioning system which makes the system observable would be a sensible extension to this work. 96 One of such possible localization systems could rely on absolute sensor measurements such as infrared or ultrasound sensors, which give an absolute distance to the closest obstacles. Such measurements would help eliminate the covariance of the estimate error on the position estimation given by the IMU. Aircrafts use a similar system: they combine ground beacon signals—which give an absolute position reference—with the on-board IMU to get a more accurate position estimation. Another possible, more advanced system would be a computer vision localization system, consisting on cameras recording the operation of the vehicle, and computing its position relative to an absolute reference. The vehicle would have a tag, easily identifiable by a computer vision system. The research in [38] is an example of such approach. A linear Kalman filter was designed in this project. An extended Kalman filter could be implemented by using the non-linear model instead (see Section 5.6). A linear-time variant model was developed in Chapter 5. This model could be used in a controller such as Model Predictive Control, that accepts time-varying model matrices A(t), B(t) and C(t), and computes a control law in real-time (i.e. each time step the computed control law u(x̄) changes)[33]. This way, 4 degrees of freedom could be controlled, and also, constraints could be placed on any states or control inputs1 . As it was suggested in Chapter 1, the work presented here constitutes a basis for the development of tilt-rotor quadrotors. The design, assembly and control of a thrustvectoring quadrotor can be made significantly easier by the models and methodology presented here. The development of the reduced degree of freedom thrust-vectoring platform here presented can be extended to a full 6 degrees of freedom quadrotor. If the same tilting propeller assembly is used in the quadrotor design, the equations in Chapter 4 can be 1 Being able to explicitly define constraints on states and inputs is one of the key features of Model Predictive Control[32]. 97 directly applied (the ground effect term would possibly have a lesser effect). If different propeller assembly components are used (e.g. different brushless AC motor), the testing bench can be used to repeat the tests in chapter 4 and find the new values of the propeller assembly equation coefficients (Section 4.6). By having an accurate model of the tilting-propeller assembly, successful localization and control algorithms can be designed for the full quadrotor tilting propeller design. The hovercraft design can be modified by adding two more propeller assemblies to get a quad-rotor platform. The use of the same electric and electronic components would be a sensible choice, as they have been tested in this work. Then, the same methodology can be applied to design a suitable controller: develop a non-linear mathematical model for the quadrotor, derive from it a linear model, design and validate a controller using a quadrotor simulator. The friction-reducing surface used in the hovercraft can be used as a training stand for the quadrotor to achieve stability in the horizontal plane, as an intermediate step to achieve full stability in the 6 spatial DOFs. 98 References [1] D. Industry, “Quadrotor VTOL civilian UAV.” [Online]. Available: http: //www.directindustry.com/industrial-manufacturer/quadrotor-uav-86139.html [2] C. Cheron, A. Dennis, V. Semerjyan, and Y. Chen, “A Multifunctional HIL Testbed for Multirotor VTOL UAV Actuator,” 2004. [3] S. Hwang and S. Choi, “Ironbird Ground Test for Tilt Rotor Unmanned Aerial Vehicle,” 2010. [4] G. M. Homann, H. Huang, S. L. Waslander, and C. J. Tomlin, “Quadrotor Helicopter Flight Dynamics and Control: Theory and Experiment,” 2007. [5] K. T. Oner, E. Cetinsoy, E. Sirimoglu, C. Hancer, T. Ayken, and M. Unel, “Mathematical modeling and vertical flight control of a tilt-wing UAV,” 2011. [6] ——, “LQR and SMC Stabilization of a New Unmanned Aerial Vehicle,” 2009. [7] K. T. Oner, E. Cetinsoy, E. Sirimoglu, C. Hancer, and M. Unel, “Robust Position Control of a Tilt-Wing Quadrotor,” 2010. [8] K. T. Oner, E. Cetinsoy, M. Aksit, I. Kandemir, K.Gulez, and M. Unel, “Dynamic Model and Control of a New Quadrotor Unmanned Aerial Vehicle with Tilt-Wing Mechanism,” 2008. [9] Omega, “The Strain Gauge.” [Online]. Available: http://www.omega.com/literature/ transactions/volume3/strain2.html [10] I. Omega Engineering, “Full-bridge thin-beam load cells specifications.” [Online]. Available: http://www.omega.com/Pressure/pdf/lcl.pdf 99 [11] J. Leishman, Principles of Helicopter Aerodynamics. Cambridge University Press, 2000. [12] F. Kendoul, I. Fantoni, and R. Lozano, “Modeling and control of a small autonomous aircraft having two tilting rotors,” in Conference on Decision and Control, 2005. [13] D. Wyatt, “Bell Eagle Eye UAV Pocket Guide,” 2004. [14] S. D. Hanford, L. N. Long, and J. F. Horn, “A Small Semi-Autonomous Rotary-Wing Unmanned Air Vehicle (UAV),” September 2005. [15] T. Dierks and S. Jagannathan, “Output feedback control of a quadrotor UAV using neural networks,” IEEE Transactions on Neural Networks, vol. 21, pp. 50–66, 2010. [16] E. Altug, J. P. Ostrowski, and C. J. Taylor, “Quadrotor control using dual camera visual feedback,” in International Conference on Robotics and Automation, vol. 3, 2003, pp. 4294–4299. [17] S. Griffiths, J. Saunders, A. Curtis, B. Barber, T. Mclain, and R. Beard, “Maximizing miniature aerial vehicles,” IEEE Robotics & Automation Magazine, vol. 13, pp. 34–43, 2006. [18] R. Sepulchre, M. Jankovic, and P. Kokotovic, “Constructive nonlinear control,” 1997. [19] M. Motors, “AXI 2212/12 Gold Line brushless motor specifications.” [Online]. Available: http://www.modelmotors.cz/index.php?page=61&product=2212&serie= 12&line=GOLD [20] A. P. Composites, “1047 Slow Flyer propeller specifications.” [Online]. Available: http://www.apcprop.com/ProductDetails.asp?ProductCode=LP10047SF 100 [21] Aimagin, “32 bits arm fio std board specifications.” [Online]. Available: https://www.aimagin.com/fio-std.html [22] Hitec, “HS-225MG Might Mini Metal gear servo specifications.” [Online]. Available: http://www.lynxmotion.com/images/data/hs225mg.pdf [23] J. Model, “Jeti Advance 30 Pro electric speed controller specifications.” [Online]. Available: http://www.modelmotors.cz/index.php?page=61&product=2212&serie= 12&line=GOLD [24] Hyperion, “CX G3 4000 mAh 25C battery specifications.” [Online]. Available: http://hyperion-world.com/products/product/HP-LG325-4000-2S [25] C. D. Boor, “A Practical Guide to Splines,” 1972. [26] J.-S. R. Jang, C.-T. Sun, and E. Mizutani, Neuro-Fuzzy and Soft Computing. Prentice Hall, 1997. [27] I. C. Cheeseman and W. E. Bennett, “The Effect of the Ground Effect on a Helicopter Rotor in Forward Flight,” 1955. [28] J. S. Hayden, “The Effect of the Ground on Helicopter Hovering Power Required,” 1976. [29] Cheeseman, Bennett, Leishman, and S. Newman, “Modelling Ground Effect,” 2011. [30] N. S. Nise, Control Systems Engineering. [31] Sparkfun, Wiley, 2011. “9-DOF Razor IMU specifications.” [Online]. Available: //www.sparkfun.com/products/10736 https: 101 [32] L. Wang, Model Predictive Control System Design and Implementation Using Matlab. Sringer, 2009. [33] J. Jorquera-Grau, “Study of the application of Model Predictive Control technology in planetary rovers. Case study on Moonhound rover.” June 2011. [34] R. L. Williams and D. A. Lawrence, Linear State-Space Control Systems. Wiley, 2007. [35] B. Friedland, Control System Design. An Introduction to State-Space Methods. McGraw-Hill, 1986. [36] S. Thrun, W. Burgard, and D. Fox, Probabilistic Robotics. The MIT Press, 2005. [37] H. Choset, K. Lynch, S. Hutchinson, G. Kantor, W. Burgard, L. Kavraki, and S. Thrun, Principles of Robot Motion-Theory, Algorithms, and Implementation. The MIT Press, 2005. [38] J. Liu, “CLAM: Collaborative Localization and Mapping Using Fiducial System and Exchangeable Range Sensors,” in progress. 102 Appendices 103 A. Testing bench & Hovercraft 2D drawings The following pages in this appendex show the 2D drawings of the testing bench and the hovercraft. D C B A 1 245,400 215,400 183,400 175,400 75,400 15,400 7,400 1 2 C 32 0.1 2 B 16 16 97 0.1 x2 Q.A MFG APPV'D CHK'D DRAWN NAME FINISH: A SIGNATURE UNLESS OTHERWISE SPECIFIED: DIMENSIONS ARE IN MILLIMETERS SURFACE FINISH: TOLERANCES: LINEAR: 0. 25 ANGULAR: 3,7 1 6 0. 6,75 5 ,19 22 ,095 22 24 24 6,900 0.1 3,797 0.1 x2 A 3 DATE WEIGHT: MATERIAL: AL-6061 4 DEBUR AND BREAK SHARP EDGES SCALE:1:2 DWG NO. TITLE: REVISION SHEET 1 OF 1 arm1 DO NOT SCALE DRAWING 5 6 A4 C B A 104 D C B B A 1 73,800 54,500 37,500 37 0.1 A 8,650 11 21 23,350 16 32 0.1 2 2 R1 8 ,58 C 3 3 0.1 2x Q.A MFG APPV'D CHK'D DRAWN NAME FINISH: SIGNATURE UNLESS OTHERWISE SPECIFIED: DIMENSIONS ARE IN MILLIMETERS SURFACE FINISH: TOLERANCES: LINEAR: 0. 25 ANGULAR: DATE 4 WEIGHT: MATERIAL: AL-6061 DEBUR AND BREAK SHARP EDGES 79,500 0.1 37 0.1 5,105 0.1 THRU ALL 9,779 X 82° 3,454 0.1 THRU ALL 8-32 UNC THRU ALL 7 0.1 1 SCALE:1:1 DWG NO. TITLE: A REVISION SHEET 1 OF 1 arm2 DO NOT SCALE DRAWING 5 6 A4 C B A 105 29 D C B A R 10 R6 ,32 8 5 15 12 8 63 0,1 58,700 50 10,200 1 15 32 12,660 12,610 23,350 2,400 29,600 32 48° 41, 2 C B 16 8,650 0,5 A 3 15 Q.A MFG APPV'D CHK'D DRAWN NAME FINISH: SIGNATURE UNLESS OTHERWISE SPECIFIED: DIMENSIONS ARE IN MILLIMETERS SURFACE FINISH: TOLERANCES: LINEAR: 0. 25 ANGULAR: 4 0,1 A 3 4,700 4,700 2 DATE 15 0,1 WEIGHT: MATERIAL: 2,400 4 AL-6061 4 1 DEBUR AND BREAK SHARP EDGES SCALE:1:1 DWG NO. TITLE: 88 6 REVISION SHEET 1 OF 1 arm3b DO NOT SCALE DRAWING A4 2,261 THRU ALL 4-40 UNC THRU ALL 2x 4,496 THRU ALL 12-24 UNC THRU ALL R 1,5 2,400 5 C B A 106 D C B 1 B 250 A 2 230 2 22 5 A 1 Q.A MFG APPV'D CHK'D DRAWN NAME FINISH: 4x SIGNATURE UNLESS OTHERWISE SPECIFIED: DIMENSIONS ARE IN MILLIMETERS SURFACE FINISH: TOLERANCES: LINEAR: 0.25 ANGULAR: 200 129 71 3 DATE WEIGHT: MATERIAL: AL-6061 DEBUR AND BREAK SHARP EDGES 6,756 THRU ALL 12,878 X 82° C 4 SCALE:1:5 DWG NO. TITLE: REVISION SHEET 1 OF 1 base2 DO NOT SCALE DRAWING 5 6 A4 C B A 107 D C B 1 C B C A 70 64 43 10 A 1 2 2 15 Q.A MFG APPV'D CHK'D DRAWN NAME FINISH: SIGNATURE UNLESS OTHERWISE SPECIFIED: DIMENSIONS ARE IN MILLIMETERS SURFACE FINISH: TOLERANCES: LINEAR: 0.25 ANGULAR: 4x 5,105 0.1 THRU ALL 1/4-20 UNC THRU ALL 230,500 223 215,500 3 DATE WEIGHT: MATERIAL: AL-6061 4 DEBUR AND BREAK SHARP EDGES SCALE:1:2 DWG NO. TITLE: 4x 20 13,4 70 13,3 REVISION SHEET 1 OF 1 center DO NOT SCALE DRAWING 3,797 0.1 THRU ALL 7,087 X 82° 5 6 A4 C B A 108 6 D C 1 B C 13 B A R6 7 5 3 8 3,500 3 A 1 2 24,45 11,500 15 7,500 2 ° 1 Q.A MFG APPV'D CHK'D DRAWN NAME SIGNATURE FINISH: 2x 0.1 UNLESS OTHERWISE SPECIFIED: DIMENSIONS ARE IN MILLIMETERS SURFACE FINISH: TOLERANCES: 0.25 LINEAR: ANGULAR: 0 3,10 3 DATE WEIGHT: MATERIAL: AL-6061 DEBUR AND BREAK SHARP EDGES 3,797 0.1 THRU ALL 4 REVISION 6 SCALE:2:1 SHEET 1 OF 1 load_cell_holder DWG NO. TITLE: DO NOT SCALE DRAWING 5 A4 C B A 109 D C B 1 A R1 3 , 8,750 750 3 R4 3,500 A 2 2 B B Q.A MFG APPV'D CHK'D NAME FINISH: SIGNATURE UNLESS OTHERWISE SPECIFIED: DIMENSIONS ARE IN MILLIMETERS SURFACE FINISH: TOLERANCES: LINEAR: 0,25 ANGULAR: DRAWN 6,119 6,119 3,500 7 3 DATE 5,153 5,153 3,797 0.1 TO NEXT 10-24 UNC TO NEXT 7 7,267 7,267 1 WEIGHT: MATERIAL: AL-6061 4 DEBUR AND BREAK SHARP EDGES SCALE:2:1 DWG NO. TITLE: REVISION SHEET 1 OF 1 motor_holder DO NOT SCALE DRAWING SECTION B-B 5 6 A4 C B A 110 D C B 1 B A 5 0.1 1,495 2 2,500 2 3,505 13,500 6 A 1 Q.A MFG APPV'D CHK'D DRAWN NAME SIGNATURE FINISH: DATE WEIGHT: MATERIAL: 3,048 THRU ALL UNLESS OTHERWISE SPECIFIED: DIMENSIONS ARE IN MILLIMETERS SURFACE FINISH: TOLERANCES: LINEAR: 0.25 ANGULAR: C 3 AL-6061 4 DEBUR AND BREAK SHARP EDGES SCALE:2:1 DWG NO. TITLE: REVISION SHEET 1 OF 1 pin DO NOT SCALE DRAWING 5 6 A4 C B A 111 18,500 5 0.1 D C B A 1 1 A 2 2 13,500 13,450 Q.A MFG APPV'D CHK'D DRAWN NAME FINISH: SIGNATURE UNLESS OTHERWISE SPECIFIED: DIMENSIONS ARE IN MILLIMETERS SURFACE FINISH: TOLERANCES: LINEAR: 0.25 ANGULAR: 3 DATE WEIGHT: MATERIAL: AL-6061 4 DEBUR AND BREAK SHARP EDGES SCALE:1:1 DWG NO. TITLE: REVISION SHEET 1 OF 1 shaft_base DO NOT SCALE DRAWING 5 6 A4 C B A 112 9,525 9,475 50 36,300 D C B 1 2,150 0,350 0 59 0 6, ,39 R 6 2 2 5 0,1 52,500 C 15 Q.A MFG APPV'D CHK'D DRAWN NAME 15 FINISH: 30 SIGNATURE UNLESS OTHERWISE SPECIFIED: DIMENSIONS ARE IN MILLIMETERS SURFACE FINISH: TOLERANCES: LINEAR: 0. 25 ANGULAR: A 88 R1,5 5,105 0.1 TRHU ALL 2x 1/4-20 UNC THRU ALL 19,650 DATE 6 WEIGHT: MATERIAL: AL-6061 5 ,17 R3 6 7,500 B 4 62,500 21 3 DEBUR AND BREAK SHARP EDGES DO NOT SCALE DRAWING 15,650 REVISION 70 29 6 SCALE:1:1 SHEET 1 OF 1 torque_piece1a DWG NO. TITLE: C 5 7,100 7,000 17 0.1 A 1 A4 C B A 113 9 D C B 29 1 15,650 C 2 2 A C 7,100 7,000 17 6 21 62,500 Q.A MFG APPV'D CHK'D DRAWN NAME 15 24 SIGNATURE FINISH: 15 30 5 7,500 17 R3 , UNLESS OTHERWISE SPECIFIED: DIMENSIONS ARE IN MILLIMETERS SURFACE FINISH: TOLERANCES: LINEAR: 0. 25 ANGULAR: B 3 70 DATE 19,650 WEIGHT: MATERIAL: AL-6061 DEBUR AND BREAK SHARP EDGES R 6,590 6,39 0 2,150 DO NOT SCALE DRAWING 0,350 5 REVISION 6 SCALE:1:1 SHEET 1 OF 1 torque_piece1b DWG NO. TITLE: 6,756 0.1 THRU ALL 2x 8 8 5 , R1 4 9 5 0,1 52,500 A 1 A4 C B A 114 D C B 1 0,350 9 5 0,1 31,200 0 59 0 6, ,39 R 6 2 A C Q.A MFG APPV'D CHK'D DRAWN NAME FINISH: 15 SIGNATURE UNLESS OTHERWISE SPECIFIED: DIMENSIONS ARE IN MILLIMETERS SURFACE FINISH: TOLERANCES: LINEAR: 0,25 ANGULAR: 15 30 7,500 R1 ,58 8 3 DATE 6 2x 7,588 WEIGHT: MATERIAL: 19,650 2,150 2 B 62,500 AL-6061 DEBUR AND BREAK SHARP EDGES 17 DO NOT SCALE DRAWING 15,650 5 6 29 7,100 7,000 REVISION 70 SCALE:1:1 SHEET 1 OF 1 torque_piece2a DWG NO. TITLE: 6,756 0.1 THRU ALL 5 ,17 R3 4 21 A 1 A4 C B A 115 D C B A 1 70 29 A 2 15,650 62,500 75 R3 ,1 C CALID. FABR. APROB. VERIF. DIBUJ. NOMBRE 15 15 FECHA 30 8 4 19,650 PESO: MATERIAL: AL-6061 ,58 R1 22,500 ACABADO: 6 FIRMA SI NO SE INDICA LO CONTRARIO: LAS COTAS SE EXPRESAN EN MM ACABADO SUPERFICIAL: TOLERANCIAS: 0,25 LINEAL: ANGULAR: 5,105 0,1 THRU ALL 2x 1/4-20 UNC THRU ALL 7,100 7,000 17 3 21 2 REBARBAR Y ROMPER ARISTAS VIVAS C REVISIÓN 31,200 6 ESCALA:1:1 HOJA 1 DE 1 torque_piece2b N.º DE DIBUJO TÍTULO: NO CAMBIE LA ESCALA 0,350 R 6, 6, 59 39 0 0 2,150 5 5 0,1 9 1 A4 C B A 116 117 C 90 A 100 0 R1 190 250 30 30 100 B 290 SI NO SE INDICA LO CONTRARIO: LAS COTAS SE EXPRESAN EN MM ACABADO SUPERFICIAL: TOLERANCIAS: LINEAL: 0.25 ANGULAR: NOMBRE REBARBAR Y ROMPER ARISTAS VIVAS ACABADO: FIRMA FECHA NO CAMBIE LA ESCALA REVISIÓN TÍTULO: DIBUJ. VERIF. APROB. FABR. CALID. MATERIAL: PESO: N.º DE DIBUJO ESCALA:1:5 base HOJA 1 DE 1 A4 118 0.1 0.1 0.1 C 38,100 R2 38,100 32,400 22,500 12,600 9,500 3,500 C B 27,500 19,750 7,750 5,250 0.1 13,750 0.1 22,250 0.1 3,175 4x 19,869 0.1 13,750 7,631 0.1 4x 1,497 1,397 THRU ALL 3,400 3,200 THRU ALL UNLESS OTHERWISE SPECIFIED: DIMENSIONS ARE IN MILLIMETERS SURFACE FINISH: TOLERANCES: 0.25 mm LINEAR: ANGULAR: NAME DATE 0.1 29,267 0.1 16,847 22 0.1 DEBUR AND BREAK SHARP EDGES FINISH: SIGNATURE 14,733 27,153 0.1 B DO NOT SCALE DRAWING REVISION TITLE: DRAWN CHK'D APPV'D MFG Q.A MATERIAL: ALUMINIUM WEIGHT: motor-servo_union4A4 DWG NO. SCALE:1:1 SHEET 1 OF 1 119 B. Electric & electronic component specifications B.1 Load cell specifications FULL-BRIDGE THIN-BEAM LOAD CELLS FOR LOADS 0-113 g to 0-18 kgf LCL Series All Models 75 $ ⻬ Measures Force or Displacement ⻬ Thermally Matched, Fully Active, Full-Bridge Gage for Optimal Temperature Tracking When frequent small-load measurements are required, OMEGA® LCL Series thin-beam load cells are the answer. The LCL Series is designed to measure many different parameters found in medical instrumentation, home appliances, process control, robotics, automotive, and other high-volume applications. A specially developed integrated strain gage includes all balancing, compensating, and conductive elements and is laminated to the beam to provide excellent stability and reliability. Shown actual size. LCL-454G, $75. LCL-010, $75. L High Ranges 2 to 18 kgf Dimensions: mm (in) 31.75 (1.25) 9.525 REF. (0.375) 6.35 (0.25) 7.925 (0.312) 1.575 R. (0.062) TYP 19.05 (0.750) 66 (0.26) 30.5 (1.20) 20.3 (0.80) 1.0 (0.04) 6.4 (0.25) mm (in) 1.5 RAD (2 PLCS) (0.06) 3.1 DIA. (0.12) 3.175 DIA. (0.125) TYP. WIRING CODE RED = +EXC. BLACK = -EXC. GREEN = +SIGNAL WHITE = -SIGNAL CL t MODEL NO. LCL-113G t 0.15 MODEL NO. LCL-454G t 0.28 MODEL NO. t LCL-005 0.56 MODEL NO. LCL-020 t 1.12 LCL-227G 0.23 LCL-816G 0.38 LCL-010 LCL-040 1.6 SPECIFICATIONS Excitation: 5 Vdc, 12V max Rated Output: 2 mV/V ±20% (to minimize ±20% tolerance, end user must calibrate with a known weight) Zero Balance: 0.3 mV/V Combined Error: 0.25% FS Operating Temperature: -54 to 93°C (-65 to 200°F) Compensated Temperature: -7 to 49°C (20 to 120°F) Temperature Effects: Zero balance 0.02% FS/°F; output 0.02%/°F Resistance (Input and Output): 1200 ±300 Ω Insulation Resistance: 1000 @ 50 Vdc Seal: Urethane coated Safe Overload: 150% FS Full Scale Deflection: 0.25 to 1.27 mm (0.010 to 0.050") Lead Wire: 9" shielded PVC 4-conductor 30 AWG Material: >816 gf (2 lb): 301 SS ≤816 gf (2 lb): Beryllium copper Low Ranges 113 to 816 g 0.79 MOST POPULAR MODELS HIGHLIGHTED! To Order (Specify Model Number) CAPACITY 113 gf 0.25 lb 227 gf 0.5 lb 454 gf 1 lb 816 gf 2 lb 2.27 kgf 5 lb 4.54 kgf 10 lb 9.07 kgf 20 lb 18.14 kgf 40 lb MODEL NO. LCL-113G LCL-227G LCL-454G LCL-816G LCL-005 LCL-010 LCL-020 LCL-040 PRICE $75 75 75 75 75 75 75 75 COMPATIBLE METERS* DP2000S5, DP25B-S, DPiS DP2000S5, DP25B-S, DPiS DP2000S5, DP25B-S, DPiS DP2000S5, DP25B-S, DPiS DP2000S5, DP25B-S, DPiS DP2000S5, DP25B-S, DPiS DP2000S5, DP25B-S, DPiS DP2000S5, DP25B-S, DPiS * See section D for compatible meters. MOUNTING HARDWARE MODEL NO. PRICE LCL-CL1 $17 LCM-CL1 32 MOUNTING BRACKETS For LCL-113G through LCL-816G For LCL-005 through LCL-040 Ordering Examples: LCL-113G, beam, LCL-CL1, mounting bracket, $75 + 17 = $92. LCL-020, beam lead cell, and LCM-CL1, mounting bracket, $75 + 32 = $107. F-67 120 Servo motor specifications ANNOUNCED SPECIFICATION OF HS-225MG MIGHT MINI METAL GEAR SERVO :+PULSE WIDTH CONTROL 1500usec NEUTRAL :4.8V TO 6.0V :-20 C TO +60 C :AT 4.8V AT 6.0V :0.14sec/60 AT NO LOAD 0.11sec/60 AT NO LOAD :3.9kg.cm(54.15oz.in) 4.8kg.cm(66.65oz.in) :45 /ONE SIDE PULSE TRAVELING 400usec :CLOCK WISE/PULSE TRAVELING 1500 TO 1900usec :8mA/IDLE AND 300mA NO LOAD RUNNING :8usec :300mm(11.81in) :32.4x16.8x31mm(1.27x0.66x1.22in) :31g (1.09oz) 23.8 31 14.3 1.TECHNICAL VALUES CONTROL SYSTEM OPERATING VOLTAGE RANGE OPERATING TEMPERATURE RANGE TEST VOLTAGE OPERATING SPEED STALL TORQUE OPERATING ANGLE DIRECTION CURRECT DRAIN DEAD BAND WIDTH CONNECTOR WIRE LENGTH DIMENSIONS WEIGHT 32.4 44 39 3 8 1 16.8 4 2 B.2 2.FEATURES 3-POLE FERRITE MOTOR LONG LIFE POTENTIOMETER 1-OILITE BUSHING AND 1-BALL BEARING INDIRECT POTENTIOMETER DRIVE 3-METAL GEARS HYBRID I.C 3.APPLICATIONS AIRCRAFT UP TO 10 POUNDS STEERING SERVO FOR ON-ROAD 1/12TH 1/10 ELECTRIC FAST ELELTRIC BOATS 121 B.3 Load cell amplification board The following pages show the schematics, designs and bill of materials for the load cell amplification board in Figure B.1, designed by A. Muxen. Figure B.1: Load cell amplification board. D C GND 1 P0C102 P0C101 GND P0U101 1 R2 3.3k GND Tol: <_1% P0R202 P0R201 P0C202 P0C201 GND 1 Vi 2 GND GND P0U401 GND 2 P0U202 10 uF P0R102 P0R101 REFADJ P0U5012 REF P0U5013 GND 11 AGND AGNDS P0U5011 10 P0U5010 AIN 12 MAX1169 DGND P0U5014 unk P0R602 unk R6 P0R702 GND 3 0.1uF GND P0C601 P0C602 C6 1.0uF 14 P0U5033 SDA P0U502 2 SCL ADD3 5 P0U305 C5 3 2 P0U303 P0U302 1 P0C501 P0C502 P0U507 7 DVDDP0U506 6 ADD0P0U505 5 ADD1P0U504 4 ADD2 GND C4 1.0uF AVDD P0U508 U5 R8 20k 0.1uF P0U301 R5 240 Tol: <_1.0% P0C301 P0C302 R4 240 C3 P0J305 J5 J6 U3 AD621AR GND or AD623ARZ P0U306 N0UNFILTEREDSIG 6 UnfilteredSig 8 P0U308 P0R601 P0R701 J7 1 2 A_OUT P0J402 P0J401 J4 J9 P0R1302 R13 24 P0R1301 4 P0R1202 R12 24 P0R1201 GND R9 1k R11 C13 0.10uF GND P0R1102 P0C1301 P0C1302 I2C_IO 1 P0J202 2 J2 P0J201 R10 1k 820 P0R1101 C14 unk C11 Cap .1uF J10 C10 180pF Fc: 1666.6 GND P0C1101 P0C1102 Figure B.2: Load cell amplification schematics, by A. Muxen. 0.1 uF 8 13 P0C801 P0C802 P0C901 P0C902 C9 GND N0FIVEVOLT 3 FiveVolt P0U403 C8 LM385M3-2.5 P0U201 1 3 P0U203 NC U2 Common Vo TLE2426-TO-92 P0R802 P0R801 U4 2 P0R402 P0J304 P0R401 R7 7 4 B power 12.5-20 V P0U307 P0U304 N0TENVOLT TenVolt P0J501 P0J102 P0J502 P0J101 P0J601 1 2 P0J602 LM317AEMP (or PX) P0U1022 3 P0U103 IN OUT ADJ C1 R1 C2 470 1.0uF 0.1uF Tol: <_1.0% U1 P0J701 J1 1 2 3 P0J503 P0J702 P0U402 1-shield, 2-neg_exc, 3-pos-_exc, 4-neg_sig, 5-pos_sig 1 2 3 P0J603 P0J901 J3 4 P0C1401 P0C1402 3 1 2 3 P0J703 P0J902 P0J301 1 P0J302 2 3 4 5 9 1 2 3 P0J903 P0J303 P0C402 P0C401 P0U509 P0R902 P0R901 P0R502 1 P0R1002 P0R1001 2 P0J1001 P0R501 P0U501 P0C1001 P0C1002 P0J1002 5 VDD U6 P0U604 P0U603 3 MAX7410 GND P0U608 8 CLK 2 P0U602 IN 4 OS COM OUT 6 1 P0U606 P0U601 5 7 P0U605 P0U607 SHDN 5 Date: File: B Size Title .1uF C12 GND P0C1201 P0C1202 GND 6 1 2 J8 P0J802 P0J801 Revision Note: Filtered Analog Signal N0FILTEREDSIG FilteredSig 6 1/30/2012 Sheet of C:\Documents and Settings\..\LoadCellAmp-v1.SchDoc Drawn By: Number Note: select between filter and non-filter GND 1 2 3 P0J1003 A 1 D C B A 122 123 Figure B.3: Load cell amplification board top view. Electronic components placement is detailed. By A. Muxen. Figure B.4: Load cell amplification board bottom view. detailed. By A. Muxen. Electronic components placement is Figure B.5: Load cell amplification board bill of material (BOM), by A. Muxen 124 125 C. Testing bench characterization experimental points Vertical force component Horizontal force component Gram Volts Grams Volts 0 3.3 0 2.43 85 2.58 25 2.28 140 2.01 40 2.23 200 1.13 50 2.15 225 0.66 75 2.01 270 0.38 105 1.85 285 0 135 1.685 Table C.1: Testbed force characterization experimental points. N.m Volts -0.0282 3.093 -0.0113 2.287 0 1.71 0.0113 1.217 0.0282 0.710 Table C.2: Testbed torque characterization experimental points. 126 D. Matlab/Simulink code for the propeller assembly characterization This Appendix presents the code developed for Chapter 4 for data acquisition and data post-processing. It also includes the Simluink diagrams used to program the Fio board for data acquisition with the testing bench. D.1 Simulink diagrams Figure D.1: Data acquisition Simulink block diagram (uploaded to the Fio board). 127 Figure D.2: Data acquisition Simulink block diagram (PC side). D.2 Data acquisition This section presents the Matlab code for the data acquisition. D.2.1 Test 1 %% C h a r a c t e r i z a t i o n t e s t #1a N = 2 0 ; % Number o f t e s t s TC = 0 . 2 5 ; alpha = 0 ; actuators = [ % % Validation % actuators = [ % 5 , alpha % 15 , a l p h a % 15 , a l p h a % 25 , a l p h a % 25 , a l p h a % ]; 0 , 5 , 65 70 ]; alpha alpha , alpha , alpha , 5.1 ; , 6 ; , 7 ; , 5.1 0 , alpha , 5 ; , 5.8 ; , 5.8 ; , 6.2 ; , 6.2 ; , 5 128 TIME = a c t u a t o r s ( s i z e ( a c t u a t o r s , 1 ) , 1 ) ; for k = 1 :N, simOut = sim ( ’ c h a r a c t e r i z a t i o n h o s t ’ ) ; save ( [ ’ r e s u l t s 1 / t e s t ’ num2str ( k ) ] ) figure subplot ( 2 , 1 , 1 ) plot ( data . s i g n a l s ( 1 , 1 ) . v a l u e s ) grid subplot ( 2 , 1 , 2 ) plot ( a c t . s i g n a l s ( 1 , 2 ) . v a l u e s ) grid end D.2.2 Test 2 %% C h a r a c t e r i z a t i o n t e s t #2 % D e l t a and a l p h a a r e m a i n t a i n e d c o n s t a n t ( a l p h a = 90 , delta hover ) . % Repeated runs a t d i f f e r e n t d i s t a n c e s from t h e ground . TC = 0 . 2 5 ; N = 1 0 ; % Number o f t e s t s d = 6 . 3 ; % d : speed c o n t r o l duty cycle , actuators = [ 0 , 3 , 13 16 ]; 0 , 5 ; 0 , d ; , 0 , d ; , 0 , 5 ; TIME = a c t u a t o r s ( s i z e ( a c t u a t o r s , 1 ) , 1 ) ; for k = 1 :N, simOut = sim ( ’ c h a r a c t e r i z a t i o n h o s t ’ ) ; save ( [ ’ r e s u l t s 2 / t e s t 0 6 8 ’ num2str ( k ) ] ) %testOGE test275− test200− test125− test068− figure plot ( data . s i g n a l s ( 1 , 1 ) . v a l u e s ) grid 129 end D.2.3 Test 3 %% C h a r a c t e r i z a t i o n t e s t #3 % The s p e e d c o n t r o l l e r i s a c o n s t a n t , which d e l i v e r s t h e power needed t o % make t h e p l a t f o r m h o v e r . Alpha i s v a r i e d t o c h a r a c t e r i z e t h e forces % under t h e ground e f f e c t . D i s t a n c e from p r o p e l l e r t o t h e ground s h a l l be % t h e same as i n t h e h o v e r c r a f t . S m al l d e f l e c t i o n . TC = 0 . 1 ; N = 1 5 ; % Number o f t e s t s d = 6 . 3 ; % d : speed c o n t r o l duty cycle , % z = 3 . 7 5 ∗ 2 . 5 4 ; % d i s t a n c e t o ground = 9 . 5 2 5 cm actuators = [ % % % Validation % % % % % % 0 , 3 , 6 , 27 0 , 5 ; 0 , d ; 0 , d ; , 25 , d ; % r e v i e w max . d e f l e c t i o n a n g l e and delta 30 , 25 , d ; 33 , 0 , 5 ] ; 27 37 37 47 59 ]; , , , , , 15 , d ; 15 , d ; 7.5 , d ; 7.5 , d ; 0 , 5 TIME = a c t u a t o r s ( s i z e ( a c t u a t o r s , 1 ) , 1 ) ; for k = 1 :N, simOut = sim ( ’ c h a r a c t e r i z a t i o n h o s t ’ ) ; save ( [ ’ r e s u l t s 3 / t e s t ’ num2str ( k ) ] ) figure subplot ( 3 , 1 , 1 ) plot ( data . s i g n a l s ( 1 , 1 ) . v a l u e s ) grid subplot ( 3 , 1 , 2 ) plot ( data . s i g n a l s ( 1 , 3 ) . v a l u e s ) 130 grid subplot ( 3 , 1 , 3 ) plot ( a c t . s i g n a l s ( 1 , 1 ) . v a l u e s ) grid end D.2.4 Test 4 (transient) %% C h a r a c t e r i z a t i o n t e s t #4 ( t r a n s i e n t ) % The t r a n s i e n t r e s p o n s e o f T a g a i n s t a s t e p a l p h a i n p u t and a constant % d e l t a i s measured . % This t e s t might r e q u i r e t h e a d d i t i o n o f w e i g h t t o t h e powertrain TC = 0 ; alpha = 25; alpha ini = 0; delta = 6.4; N = 20; actuators = [ 0 , 1 , 3 , 6 , 6 , 9 , 9 , 12 ]; alpha ini , 5 ; alpha ini , 5 ; alpha ini , delta ; alpha ini , delta ; alpha , d e l t a ; alpha , d e l t a ; alpha , 5 ; , alpha ini , 5 ; TIME = a c t u a t o r s ( s i z e ( a c t u a t o r s , 1 ) , 1 ) ; for k = 1 1 :N, simOut = sim ( ’ c h a r a c t e r i z a t i o n h o s t ’ ) ; save ( [ ’ r e s u l t s 4 / t e s t T r a n s ’ num2str ( k ) ] ) figure subplot ( 2 , 1 , 1 ) ; plot ( data . s i g n a l s ( 1 ) . v a l u e s ) ; grid subplot ( 2 , 1 , 2 ) ; plot ( data . s i g n a l s ( 3 ) . v a l u e s ) ; grid end 131 D.2.5 Test 4 (frequency) %% C h a r a c t e r i z a t i o n t e s t #4 ( f r e q u e n c y ) % The f r e q u e n c y r e s p o n s e o f T a g a i n s t a s i n u s o i d a l a l p h a o f d i f f e r e n t f r e q u e n c i e s and a c o n s t a n t % d e l t a i s measured . close a l l clear a l l TC = 0 . 0 0 ; alpha = 10; delta = 6.2; freq vector = [0.1 ,1 ,2 ,4 ,6 ,8 ,10]; Nt = 1 ; for k =1:20 , % Repeat N t i m e s f o r i =1:7 ,%i = 2 : l e n g t h ( f r e q v e c t o r ) , frequencies freq = freq vector ( i ) ; TIME = Nt ∗ 2∗ pi / f r e q ; % For a l l actuator = [ 0 5; 1 5; 2 delta ; 3 delta ; TIME+3 d e l t a ; TIME+3 0 ; TIME+5 0 ] ; simOut = sim ( ’ b o d e b h o s t ’ ) ; save ( [ ’ r e s u l t s 4 / t e s t ’ num2str ( k ) ’ f r e q ’ num2str ( f r e q ) ’ . mat ’ ] ) figure subplot ( 2 , 1 , 1 ) ; plot ( data . s i g n a l s ( 3 ) . v a l u e s ) ; grid subplot ( 2 , 1 , 2 ) ; plot ( a c t u a t o r s . s i g n a l s ( 1 ) . v a l u e s ) ; grid end end D.2.6 Test 5 %% C h a r a c t e r i z a t i o n t e s t #5 clear a l l TC = 0 . 5 ; 132 delta = 5; N = 7; actuators = [ % % Validation % % % % % % % 0 , 5 , 50 55 90 90 , 0 , 0 50 60 60 70 70 80 ]; , , , , , , , , , , 10 10 45 45 80 80 delta delta delta delta , , , , , , ; ; ; ]; delta delta delta delta delta delta ; ; ; ; ; TIME = a c t u a t o r s ( s i z e ( a c t u a t o r s , 1 ) , 1 ) ; for k = 1 :N, simOut = sim ( ’ c h a r a c t e r i z a t i o n h o s t ’ ) ; save ( [ ’ r e s u l t s 5 / t e s t ’ num2str ( k ) ] ) figure subplot ( 2 , 1 , 1 ) ; plot ( data . s i g n a l s ( 2 ) . v a l u e s ) ; subplot ( 2 , 1 , 2 ) ; plot ( a c t . s i g n a l s ( 1 ) . v a l u e s ) ; grid grid end D.3 Data post-processing This section presents the data for the post-processing of the data acquired. D.3.1 Test 1 % Test 1 a n a l y s i s : L e a s t S q u a r e s E s t i m a t i o n o f Thrust as a function of the speed % c o n t r o l l e r command ( d u t y c y c l e ’ d e l t a ’ ) % The model t o be a d j u s t e d i s F( d ) = A close a l l N = 20; t i = 820; t f = 3250; for i =1:N, + B∗d 133 load ( [ ’ r e s u l t s 1 / t e s t ’ num2str ( i ) ’ . mat ’ ] , ’ data ’ , ’ a c t ’ ) data = data . s i g n a l s ( 1 , 1 ) . v a l u e s ( t i : t f ) ; d a t s { i } = data ; end act = act . s i g n a l s (1 ,2) . values ( t i : t f ) ; % f o r i =1:N, % anaplot ( dats { i } , act ) % end % Least Squares Estimation f = dats {1}; for i =2:N, f = [ f ; dats { i } ] ; end Y = f; A = [ o n e s ( s i z e ( act , 1 ) ∗N, 1 ) repmat ( act , N, 1 ) ]; th = (A’ ∗A) \A’ ∗ Y model = th ( 1 ) + th ( 2 ) . ∗ a c t ; m o d e l o l d = −3102 + 6 5 2 . 5 . ∗ a c t − 2 1 . 6 7 . ∗ a c t . ˆ 2 ; % f o r i =1:N, % Successive p l o t s of the t e s t s % anaplot ( dats { i } , act ) % s u b p l o t ( 2 , 1 , 1 ) ; h o l d ; p l o t ( model , ’ k − − ’ , ’ LineWidth ’ , 2 ) % end f i g u r e ; grid ; hold plot ( act , model , ’ k ’ , ’ LineWidth ’ , 2 . 5 ) ; for i =1:N, plot ( act , d a t s { i } , ’ r : ’ ) end legend ( ’ LS model ’ , ’ Data ’ ) ylabel ( ’ $T˜ ( g ) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) xlabel ( ’ $\ d e l t a ˜(\%) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) for k=1: s i z e ( d a t s { 1 } , 1 ) , SE = 0 ; f o r i = 1 :N, SE = SE + ( d a t s { i } ( k ) − model ( k ) ) ˆ 2 ; b e t w e e n model and 1 s e r i e s o f d a t a end STD( k ) = (SE / (N−1) ) ˆ . 5 ; end % Squared e r r o r f i g u r e ; errorbar ( a c t ( 1 : 1 0 0 : s i z e ( model , 1 ) ) , model ( 1 : 1 0 0 : s i z e ( model , 1 ) ) , 1 . 9 6 ∗STD( 1 : 1 0 0 : s i z e ( model , 1 ) ) , ’ k ’ , ’ LineWidth ’ , 2 ) ; grid xlim ( [ 6 . 2 5 7 ] ) ; ylabel ( ’ $T˜ ( g ) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ latex ’ ) xlabel ( ’ $\ d e l t a ˜(\%) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) 134 % Correlation c o e f f i c i e n t meanX = mean( a c t ) ; meanY = mean( f ) ; sumXY = 0 ; sumXX = 0 ; sumYY = 0 ; for k=1: s i z e ( d a t s { 1 } , 1 ) , f o r i = 1 :N, sumXY = sumXY + ( a c t ( k ) − meanX) ∗ ( d a t s { i } ( k ) − meanY) ; sumXX = sumXX + ( a c t ( k ) − meanX) ˆ 2 ; sumYY = sumYY + ( d a t s { i } ( k ) − meanY) ˆ 2 ; end end r = sumXY / (sumXXˆ . 5 ∗sumYY ˆ . 5 ) ; r 2 = r ˆ2 % L e a s t S q u a r e s E s t i m a t i o n (2 nd d e g r e e p o l y n o m i a l ) Y = f; A = [ o n e s ( s i z e ( act , 1 ) ∗N, 1 ) repmat ( act , N, 1 ) repmat ( act , N, 1 ) .ˆ2 ] ; th = (A’ ∗A) \A’ ∗ Y D.3.2 Test 2 % A n a l y s i s 2 : L e a s t S q u a r e s E s t i m a t i o n o f ground e f f e c t t h r u s t factor . % The g o a l i s t o f i n d k1 and k1 as c o n s t a n t s t h a t a d j u s t t h e theoretical % model t o t h e e x p e r i m e n t a l d a t a . % Heights : % 1: 34.5/12.5 = 2.75 % 2: 25/12.5 = 2.0 % 3: 16/12.5 = 1.25 % 4: 8.5/12.5 = 0.68 clear a l l close a l l N = 10; t i = 250; t f = 600; z = []; tau = [ ] ; 135 for i =1:N, load ( [ ’ r e s u l t s 2 /testOGE ’ num2str ( i ) ’ . mat ’ ] data = data . s i g n a l s ( 1 , 1 ) . v a l u e s ( t i : t f ) ; meanOGE( i ) = sum( data ) / ( t f −t i ) load ( [ ’ r e s u l t s 2 / t e s t 2 7 5 ’ num2str ( i ) ’ . mat ’ ] data = data . s i g n a l s ( 1 , 1 ) . v a l u e s ( t i : t f ) ; mean275 ( i ) = sum( data ) / ( t f −t i ) load ( [ ’ r e s u l t s 2 / t e s t 2 0 0 ’ num2str ( i ) ’ . mat ’ ] data = data . s i g n a l s ( 1 , 1 ) . v a l u e s ( t i : t f ) ; mean200 ( i ) = sum( data ) / ( t f −t i ) load ( [ ’ r e s u l t s 2 / t e s t 1 2 5 ’ num2str ( i ) ’ . mat ’ ] data = data . s i g n a l s ( 1 , 1 ) . v a l u e s ( t i : t f ) ; mean125 ( i ) = sum( data ) / ( t f −t i ) load ( [ ’ r e s u l t s 2 / t e s t 0 6 8 ’ num2str ( i ) ’ . mat ’ ] data = data . s i g n a l s ( 1 , 1 ) . v a l u e s ( t i : t f ) ; mean068 ( i ) = sum( data ) / ( t f −t i ) , ’ data ’ , ’ a c t ’ ) , ’ data ’ , ’ a c t ’ ) , ’ data ’ , ’ a c t ’ ) , ’ data ’ , ’ a c t ’ ) , ’ data ’ , ’ a c t ’ ) tau = [ tau ; [ mean068 ( i ) ; mean125 ( i ) ; mean200 ( i ) ; mean275 ( i ) ] / meanOGE( i ) ] ; z = [ z ; [0.68; 1.25; 2.0; 2.75]]; end % f o r i =1:N, % figure ; p l o t ( z , tau { i } , ’ r ’ ) ; % p l o t ( z , model ) % end grid ; hold %% L e a s t S q u a r e s E s t i m a t i o n Y = log ( ( tau − 1 ) . / tau ) A = [ log ( 1 . / ( 4 . ∗ z ) ) ] W = diag ( 1 . / z ) ; th = (A’ ∗W∗A) \A’ ∗W∗Y th = (A’ ∗A) \A’ ∗Y % z = 0.5:0.1:3; model = a r r a y f u n (@( x ) ( 1 / ( 1 − ( 1 / ( 4 ∗ x ) ) ˆ 2 ) ) , z ) ; new model = a r r a y f u n (@( x ) ( 1 / ( 1 − ( 1 / ( 4 ∗ x ) ) ˆ th ) ) , z ) ; f i g u r e ; plot ( z , tau , ’ ko ’ ) ; grid ; hold plot ( z , model , ’ k−− ’ , ’ LineWidth ’ , 2 ) plot ( z , new model , ’ k : ’ , ’ LineWidth ’ , 2 ) legend ( ’ E x p e r i m e n t a l p o i n t s ’ , ’ Cheeseman−Benett ’ , ’LSE Model ’ ) ylabel ( ’ $\Gamma$ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) xlabel ( ’ $z /R$ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) 136 meanPoints = a r r a y f u n (@( x ) ( 1 / ( 1 − ( 1 / ( 4 ∗ x ) ) ˆ th ) ) , [ 0 . 6 8 ; 1 . 2 5 ; 2.0; 2.75]) ; t h e o r y P o i n t s = a r r a y f u n (@( x ) ( 1 / ( 1 − ( 1 / ( 4 ∗ x ) ) ˆ 2 ) ) , [ 0 . 6 8 ; 1 . 2 5 ; 2.0; 2.75]) ; % for k=1: s i z e ( meanPoints , 1 ) , SE = 0 ; f o r i = 1 :N, SE = SE + ( tau ( 4 ∗ ( i −1)+k ) − meanPoints ( k ) ) ˆ 2 ; % Squared e r r o r b e t w e e n model and 1 s e r i e s o f d a t a end STD( k ) = (SE / (N−1) ) ˆ . 5 ; end f i g u r e ; grid ; hold plot ( z , model , ’ k−− ’ , ’ LineWidth ’ , 2 ) plot ( z , new model , ’ k : ’ , ’ LineWidth ’ , 2 ) errorbar ( [ 0 . 6 8 ; 1 . 2 5 ; 2 . 0 ; 2 . 7 5 ] , meanPoints , 1 . 9 6 ∗ STD, ’ k . ’ , ’ LineWidth ’ , 2 ) ; legend ( ’ Cheeseman−Benett ’ , ’LSE model ’ ) ylim ( [ 1 1 . 4 ] ) ylabel ( ’ $\Gamma$ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) xlabel ( ’ $z /R$ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) D.3.3 Test 3 % A n a l y s i s 3 : L e a s t S q u a r e s E s t i m a t i o n o f t i l t −r o t o r model . % The g o a l o f t h i s a n a l y s i s i s t o c h e c k i f t h e s i n e −c o s i n e t h r u s t % d e c o m p o s i t i o n i n t o Fz and Fx h o l d s v a l i d under t h e ground effect . close a l l % load t e s t 3 data N = 15; t i = 301; t f = 1351; w = 8 0 ; % w e i g h t from : motor (57 g )+p r o p e l l e r+hub+t e s t b e d arm3b correction = 7.5; factor = 0.85; Fx correction = 5; for i =1:N, load ( [ ’ r e s u l t s 3 / t e s t ’ num2str ( i ) ’ . mat ’ ] , ’ data ’ , ’ a c t ’ ) dataZ = data . s i g n a l s ( 1 , 1 ) . v a l u e s ( t i : t f ) ; dataX = data . s i g n a l s ( 3 ) . v a l u e s ( t i : t f ) ; datsZ { i } = dataZ ; 137 datsX { i } = dataX ; end act = act . s i g n a l s (1) . values ( t i : t f ) ; % f o r i =1:N, % anaplotXZ ( d a t s Z { i } , datsX { i } , a c t ) % end % Fz tot = [ ] ; Fx tot = [ ] ; alpha tot = [ ] ; for i =1:N, Fz = datsZ { i } ; Fx = datsX { i } ; F z t o t = [ F z t o t ; Fz ] ; F x t o t = [ F x t o t ; Fx ] ; a l p h a = −f a c t o r ∗ 2 2 . 5 . ∗ ( act −7.1) ;%−18.53 . ∗ a c t + 1 3 1 . 5 ; a l p h a t o t = [ a l p h a t o t ; alpha ] ; delta = 6.2; T = sum( datsZ { 5 } ( 1 : 5 ) ) / 5 ; % t o t a l t h r u s t % % F z t h e o r y = T . ∗ a r r a y f u n (@( x ) ( c o s d ( x ) ) , max ( 0 , a l p h a ) ) ; % F x t h e o r y = T . ∗ a r r a y f u n (@( x ) ( s i n d ( x ) ) , max ( 0 , a l p h a ) ) ; Fz theory = T . ∗ cosd ( alpha ) ; Fx theory = T . ∗ sind ( alpha ) ; Fz model = T . ∗ a r r a y f u n (@( x ) ( c o s d ( x ) ) ,max( 0 , alpha−c o r r e c t i o n )); Fx model = T . ∗ a r r a y f u n (@( x ) ( s i n d ( x ) ) ,max( 0 , alpha−c o r r e c t i o n )); % figure % s u b p l o t ( 2 , 1 , 1 ) ; p l o t ( a l p h a , Fz , ’ r : ’ ) ; g r i d ; h o l d % p l o t ( a l p h a , F z t h e o r y ) ; %x l i m ( [ 0 2 5 ] ) %% p l o t ( a l p h a , Fz model , ’ g ’ ) ; %x l i m ( [ 0 2 5 ] ) % ylim ([100 250]) % s u b p l o t ( 2 , 1 , 2 ) ; p l o t ( a l p h a , Fx , ’ r : ’ ) ; g r i d ; h o l d % p l o t ( a l p h a , F x t h e o r y ) ; %x l i m ( [ 0 2 5 ] ) % p l o t ( a l p h a , Fx model , ’ g ’ ) ; %x l i m ( [ 0 2 5 ] ) end Fx tot = Fx tot − Fx correction ; % Correcting i n i t i a l bias of load c e l l reading figure subplot ( 2 , 1 , 1 ) ; plot ( a l p h a t o t , F z t o t , ’ k . ’ , ’ M a r k e r S i z e ’ , 0 . 2 5 ) ; grid ; hold plot ( alpha , F z t h e o r y , ’ k ’ , ’ LineWidth ’ , 2 . 5 ) ; xlim ( [ 0 1 6 . 5 ] ) % l e g e n d ( ’ Data ’ , ’ Model ’ ) 138 ylabel ( ’ $F z ˜ ( g ) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) xlabel ( ’ $\ a l p h a ˜ ( ˆ\ c i r c ) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) % p l o t ( a l p h a , Fz model , ’ g ’ ) ; %x l i m ( [ 0 2 5 ] ) ylim ( [ 1 6 0 2 5 0 ] ) subplot ( 2 , 1 , 2 ) ; plot ( a l p h a t o t , Fx tot , ’ k . ’ , ’ M a r k e r S i z e ’ , 0 . 2 5 ) ; grid ; hold plot ( alpha , Fx theory , ’ k ’ , ’ LineWidth ’ , 2 . 5 ) ; xlim ( [ 0 1 6 . 5 ] ) % l e g e n d ( ’ Data ’ , ’ Model ’ ) ylabel ( ’ $F x ˜ ( g ) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) xlabel ( ’ $\ a l p h a ˜ ( ˆ\ c i r c ) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) %x l i m ( [ 0 2 5 ] ) for k=1: s i z e ( datsZ { 1 } , 1 ) , SE = 0 ; f o r i = 1 :N, SE = SE + ( datsZ { i } ( k ) − F z t h e o r y ( k ) ) ˆ 2 ; e r r o r b e t w e e n model and 1 s e r i e s o f d a t a end STDz( k ) = (SE / (N−1) ) ˆ . 5 ; end for k=1: s i z e ( datsX { 1 } , 1 ) , SE = 0 ; f o r i = 1 :N, SE = SE + ( datsX { i } ( k ) − F x t h e o r y ( k ) ) ˆ 2 ; e r r o r b e t w e e n model and 1 s e r i e s o f d a t a end STDx( k ) = (SE / (N−1) ) ˆ . 5 ; end % Squared % Squared figure ; subplot ( 2 , 1 , 1 ) ; errorbar ( a l p h a ( 1 : 1 0 0 : s i z e ( alpha , 1 ) ) , F z t h e o r y ( 1 : 1 0 0 : s i z e ( F z t h e o r y , 1 ) ) , 1 . 9 6 ∗ STDz ( 1 : 1 0 0 : s i z e ( Fz model , 1 ) ) , ’ k ’ , ’ LineWidth ’ , 2 ) ; grid ylim ( [ 1 6 0 2 5 0 ] ) ; xlim ( [ 0 1 6 ] ) ylabel ( ’ $F z ˜ ( g ) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) xlabel ( ’ $\ a l p h a ˜ ( ˆ\ c i r c ) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) subplot ( 2 , 1 , 2 ) ; errorbar ( a l p h a ( 1 : 1 0 0 : s i z e ( alpha , 1 ) ) , F x t h e o r y ( 1 : 1 0 0 : s i z e ( F z t h e o r y , 1 ) ) , 1 . 9 6 ∗STDx ( 1 : 1 0 0 : s i z e ( Fz model , 1 ) ) , ’ k ’ , ’ LineWidth ’ , 2 ) ; grid xlim ( [ 0 1 6 ] ) ylabel ( ’ $F x ˜ ( g ) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) xlabel ( ’ $\ a l p h a ˜ ( ˆ\ c i r c ) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) 139 D.3.4 Test 4: transient and frequency %% Test 4 b : Frequency and t r a n s i e n t a n a l y s i s close a l l clear a l l N = 1 0 ; %Number o f t e s t s tau = 0 . 0 8 8 4 ; sigma = 1 0 0 ; % o f f s e t = −10; N p v e c t o r = [ 0 , 0 , 0 , 0 , 2 , 2 , 3 ] ; % Number o f p e r i o d s b e f o r e s t e a d y state f r e q v e c t o r = [ 0 . 1 , 1 , 2 , 4 , 6 , 8 , 1 0 ] ; %rad / s C = t f ( 1 , [ tau 1 ] ) ; k=1; %#t e s t results all = []; phases all = [ ] ; for k=1:N maxes = [ ] ; phases = [ ] ; f o r i =1: length ( f r e q v e c t o r ) , load ( [ ’ r e s u l t s 4 / t e s t ’ num2str ( k ) ’ f r e q ’ num2str ( f r e q v e c t o r ( i ) ) ’ . mat ’ ] ) T = 2∗ pi / f r e q v e c t o r ( i ) ; t i = 3 / 0 . 0 2 + N p v e c t o r ( i ) ∗T/ 0 . 0 2 ; mask = f s p e c i a l ( ’ g a u s s i a n ’ , [ 1 , 9 ] , sigma ) ; d a t s = conv ( data . s i g n a l s ( 3 ) . v a l u e s ( t i : end ) , mask , ’ same ’ ) ; a c t = a c t u a t o r s . s i g n a l s ( 1 ) . v a l u e s ( t i : end ) ; time = data . time ( t i : end ) − 2 . 9 8 ; % Substract i n i t i a l t r a n s i t i o n time [ x , i n d ] = min( d a t s ) ; phs = time ( i n d ( 1 ) ) ∗ f r e q v e c t o r ( i ) ; % w h i l e phs >= 2∗ pi , phs = phs − 2∗ p i ; end while abs ( phs > pi ) , i f phs > 0 , phs = phs − 2∗ pi ; else phs = phs + 2∗ pi ; end end p h a s e s = [ p h a s e s −phs ∗180/ pi ] ; maxes = [ maxes 0 . 5 ∗ (max( d a t s )−min( d a t s ) ) ] ; % figure % subplot (2 ,1 ,1) ; p l o t ( time , d a t s ) ; grid % subplot (2 ,1 ,2) ; p l o t ( time , a c t ) ; grid end maxes = maxes −3; 140 % % % % % % % % end p h a s e s = p h a s e s + abs ( p h a s e s ( 1 ) ) ; %S u b s t r a c t c t d e l a y t h a t i s not from dynamics r e s u l t s = 20 ∗ log10 ( maxes / maxes ( 1 ) ) ; f r e q v e c t o r ( 1 ) =0.101; % Move p o i n t so t h a t i t a p p e a r s on plot results all = [ results all results ]; p h a s e s a l l = [ p h a s e s a l l phases ] ; figure bodemag (C, { 0 . 1 , 1 0 0 } , ’ k ’ ) ; g r i d ; h o l d ; y l i m ([ −10 1 ] ) p l o t ( f r e q v e c t o r , r e s u l t s , ’ ko ’ , ’ LineWidth ’ , 2 ) % Phase p l o t figure bode (C, { 0 . 1 , 1 0 0 } , ’ k ’ ) ; g r i d ; h o l d ; y l i m ([ −90 1 0 ] ) p l o t ( f r e q v e c t o r , phases , ’ ko ’ , ’ LineWidth ’ , 2 ) for k=1: length ( r e s u l t s ) , SE = 0 ; s e p h a s e s = 0 ; meanBode ( k ) = 0 ; meanPhase ( k ) = 0 ; f o r i = 1 :N, meanBode ( k ) = meanBode ( k ) + r e s u l t s a l l ( ( i −1)∗7+k ) ; meanPhase ( k ) = meanPhase ( k ) + p h a s e s a l l ( ( i −1)∗7+k ) ; end meanBode ( k ) = meanBode ( k ) /N; meanPhase ( k ) = meanPhase ( k ) /N; f o r i = 1 :N, SE = SE + ( r e s u l t s a l l ( ( i −1)∗7+k ) − meanBode ( k ) ) ˆ 2 ; Squared e r r o r b e t w e e n model and 1 s e r i e s o f d a t a s e p h a s e s = s e p h a s e s + ( p h a s e s a l l ( ( i −1)∗7+k ) − meanPhase ( k ) ) ˆ 2 ; end stdBode ( k ) = (SE / (N−1) ) ˆ . 5 ; stdPhase ( k ) = ( s e p h a s e s / (N−1) ) ˆ . 5 ; end figure semilogx ( repmat ( f r e q v e c t o r , [ 1 , N ] ) , r e s u l t s a l l , ’ ko ’ , ’ LineWidth ’ , 2 ) ; ylim ([ −10 1 ] ) ; grid ; hold bode (C, { 0 . 1 , 1 0 0 } , ’ k ’ ) ; grid ; plot ( repmat ( f r e q v e c t o r , [ 1 , N ] ) , p h a s e s a l l , ’ ko ’ , ’ LineWidth ’ , 2 ) ; ylim ([ −90 1 0 ] ) figure errorbar ( f r e q v e c t o r , meanBode , 1 . 9 6 ∗ stdBode , ’ ko ’ , ’ LineWidth ’ , 2 ) ; ylim ([ −10 1 ] ) ; grid ; hold bode (C, { 0 . 1 , 1 0 0 } , ’ k ’ ) ; grid ; % 141 errorbar ( f r e q v e c t o r , meanPhase , 1 . 9 6 ∗ stdPhase , ’ ko ’ , ’ LineWidth ’ , 2 ) ; ylim ([ −90 1 0 ] ) %% T r a n s i e n t a n a l y s i s N = 20; sigma = 1 0 ; window length = 3 ; t i = 302; tend = 3 5 0 ; tau = zeros (N, 1 ) ; f i g u r e ; hold ; grid ; ylim ( [ 0 1 6 0 ] ) for k = 1 :N, load ( [ ’ r e s u l t s 4 / t e s t T r a n s ’ num2str ( k ) ] , ’ data ’ ) mask = f s p e c i a l ( ’ g a u s s i a n ’ , [ 1 , window length ] , sigma ) ; d a t s = conv ( data . s i g n a l s ( 3 ) . v a l u e s ( t i : tend ) , mask , ’ same ’ ) ; time = data . time ( t i : tend ) − ( t i −1) ∗ 0 . 0 2 ; plot ( time ( 1 : 4 5 ) , d a t s ( 1 : 4 5 ) , ’ k : ’ , ’ LineWidth ’ , 0 . 5 ) s s v a l u e = sum( d a t s ( 3 5 : 4 5 ) ) / 1 1 ; %Find time t o r e a c h 63% o f f i n a l v a l u e i =1; while d a t s ( i ) < 0 . 6 3 ∗ s s v a l u e , i = i +1; end d i f f 1 = dats ( i ) − 0.63∗ s s v a l u e ; d i f f 2 = d a t s ( i ) − d a t s ( i −1) ; t i m e d i f f = 0.02 ∗ d i f f 1 / d i f f 2 ; tau ( k ) = time ( i ) − t i m e d i f f ; end ylabel ( ’ $F x ˜ ( g ) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) xlabel ( ’ $ t ˜ ( s ) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) tau tau mean = mean( tau ) t a u s t d = std ( tau ) CI = 1 . 9 6 ∗ t a u s t d D.3.5 Test 5 %% Test 5 close a l l N = 20; t i = 251; t f = 2501; c o r r e c t i o n = −0.75 e −4; for i =1:N, load ( [ ’ r e s u l t s 5 / t e s t ’ num2str ( i ) ’ . mat ’ ] , ’ data ’ , ’ a c t ’ ) d a t s { i } = data . s i g n a l s ( 2 ) . v a l u e s ( t i : t f ) ; 142 end act = act . s i g n a l s (1) . values ( t i : t f ) ; % f o r i =1:N, % anaplot ( dats { i } , act ) % end f = dats {1}; for i =2:N, f = [ f ; dats { i } ] ; f = f − correction ; end %% I d e n t i f i c a t i o n o f ’ l ’ parameter m = 0.09; g = 9.81; Y = f; A = [m∗g ∗ s i n d ( repmat ( act , N, 1 ) ) ] ; th = (A’ ∗A) \A’ ∗Y M model = m∗ g∗ s i n d ( a c t ) ∗ th ; figure plot ( repmat ( act , N, 1 ) , f , ’ k . ’ , ’ M a r k e r S i z e ’ , 0 . 5 ) ; grid ; hold plot ( act , M model , ’ k ’ , ’ LineWidth ’ , 2 . 5 ) ;% x l i m ( [ 0 1 6 . 5 ] ) % h = l e g e n d ( ’ E x p e r i m e n t a l data ’ , ’ Model ’ ) ; % s e t (h , ’ FontSize ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) ylabel ( ’$M˜ (N.m) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) xlabel ( ’ $\ a l p h a ˜ ( ˆ \ c i r c ) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) legend ( ’ LS model ’ , ’ Data ’ ) for k=1: s i z e ( d a t s { 1 } , 1 ) , SE = 0 ; f o r i = 1 :N, SE = SE + ( d a t s { i } ( k ) − M model ( k ) ) ˆ 2 ; % Squared e r r o r b e t w e e n model and 1 s e r i e s o f d a t a end STD( k ) = (SE / (N−1) ) ˆ . 5 ; end figure ; errorbar ( a c t ( 1 : 1 0 0 : s i z e ( act , 1 ) ) , M model ( 1 : 1 0 0 : s i z e ( act , 1 ) ) , 1 . 9 6 ∗ STD( 1 : 1 0 0 : s i z e ( act , 1 ) ) , ’ k ’ , ’ LineWidth ’ , 2 ) ; grid ylabel ( ’$M˜ (N.m) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) xlabel ( ’ $\ a l p h a ˜ ( ˆ \ c i r c ) $ ’ , ’ F o n t S i z e ’ , 1 4 , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) ylim ([ −4 3 ] ∗ 1 e −4) ; xlim ( [ 0 9 0 ] ) 143 E. Mathematical model matrices This appendix shows the mathematical model matrices developed in Chapter 5. Linear Time-Variant model 0 0 0 0 A= 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 −1.620 [C(u3 )TR (u1 ) + C(u4 )TL (u2 )] 0 , 0 0 0 0 0 1 0 0 B= 0 (E.1) 0 0 0 0 0 0 0 0 1.620S(u4 )TL (u2 ) 1.620S (u3 )TR (u1 ) 1.620S (u4 )TL (u2 ) 1.620S(u3 )TR (u1 ) 0 0 0 0 0 0 0 0 −1.620x7 C(u3 )TR (u1 ) −1.620x7 C(u4 )TL (u2 ) −1.620x7 C (u3 )TR (u1 ) −1.620x7 C (u4 )TL (u2 ) , 0 0 0 0 0 0 0 19.14S(u3 )TR 0 (u1 ) −19.14S(u )T (u ) 19.14S (u )T (u ) −19.14S (u )T (u ) 4 2 3 1 4 2 L R L 0 0 0 0 0 0 0 0 20.90C(u3 )TR (u1 ) −20.90C(u4 )TL (u2 ) 20.90C (u3 )TR (u1 ) −20.90C (u4 )TL (u2 )) where TR/L (u1/2 ) are Equation set G.2. (E.2) 144 Linear Time-Invariant model 1 0 0 0 0 0 −0.3546 0 0 1 A = 0 0 0 1 0 , 0 0 0 0 0 0 0 0 0 −11.31 (E.3) 0 0 0 0 B= 0 0 . 34.27 −34.27 24.17 24.17 (E.4) 145 F. Matlab code for the platform localization The Kalman filter implementation in Matlab is presented below. The code is embedded in a Matlab function Simulink block, which in turn is integrated in the thrustvectoring platform control loop. Kalman filter function x e s t i m = f c n ( a raw , yaw raw , Dyaw raw , u , x , p a r a m e t e r s ) p e r s i s t e n t F G H V W P; i f isempty (F) , % I n i t i a l i z e matrices m = parameters (1) ; L = parameters (2) ; I z z = parameters (3) ; T = parameters (4) ; dt = p a r a m e t e r s ( 5 ) ; c = parameters (6) ; % Process matrix F = single ([ 1 dt 0 0 0 0 1−c /m∗ dt 0 0 0 1 dt 0 0 0 0 1 0 0 0 0 0 0 % Input matrix G = single ([ 0 0 0 dt ∗L/ I z z ∗T T/m % Observation matrix H = single ([ 0 0 1 0 0 0 0 0 0 % Model e r r o r c o v a r i a n c e V = s i n g l e ( eye ( 5 ) ∗ 0 . 0 0 0 1 ) ; ; 0 dt ; ; ; ]) ; 0 ; 0 ; 0 ; −dt ∗L/ I z z ∗T ; T/m ] ) ; 0 1 0 0 0 1 % 5 x5 ; ; ]) ; 146 V( 3 , 3 ) = 2 . 6 1 3 e −5; V( 4 , 4 ) = 4 . 5 6 4 e −4; % Measurement e r r o r c o v a r i a n c e W = s i n g l e ( eye ( 3 ) ) ; W( 1 , 1 ) = s i n g l e ( 2 . 6 1 3 e −5) ; W( 2 , 2 ) = s i n g l e ( 4 . 5 6 4 e −4) ; W( 3 , 3 ) = s i n g l e ( 0 . 0 4 4 7 9 ) ; % Covariance o f acceleration observation P = s i n g l e ( zeros ( 5 , 5 ) ) ; covariance % I n i t i a l estimate error end % x x K A l l o c a t e space p r e d = s i n g l e ( zeros ( 5 , 1 ) ) ; e s t i m = s i n g l e ( zeros ( 5 , 1 ) ) ; = s i n g l e ( zeros ( 5 , 3 ) ) ; % Measurement v e c t o r z = [ yaw raw ; Dyaw raw ; a raw ] ; % x P K x P Kalman a l g o r i t h m pred = F ∗ x + G ∗ u ; = F ∗ P ∗ F ’ + V; = P ∗ H’ / (H ∗ P ∗ H’ + W) ; estim = x pred + K ∗ ( z − H ∗ x pred ) ; = ( eye ( 5 ) − K ∗ H) ∗ P ; 147 G. Controller implementation on hovercraft This appendix presents the implementation of an LQR controller on the built hovercraft platform, similar to the LQR designed in Chapter 6. This LQR controller was designed in the same manner, but with a system modelled defined by the following equations: Fz (δ, α, Z̄) = T (δ) · Γ(Z̄) · V (α) Fx (δ, α, Z̄) = T (δ) · Γ(Z̄) · H(α), (G.1) where T (δ) = a + b · δ + c · δ 2 , Γ(Z̄) = (G.2) 1 1 + ( 41Z̄ )kGEF (G.3) and V (α) = ac + bc · α2 + cc · α4 + dc · α6 H(α) = as + bs · α2 + cs · α4 + ds · α6 + es · α8 + fs · α10 , where the 15 experimentally found parameters are: a = −3102 , M (α) : l = −9.8547 · 10−4 , T (δ) : b = 652.5 c = −21.67 kGEF = 2.0, (G.4) 148 V (α) : ac = 1 bc = −9.574 · 10−6 , H(α) : cc = −2.074 · 10−7 dc = 1.484 · 10−10 as = 6.251 · 10−5 bs = 6.843 · 10−5 cs = −9.170 · 10−8 . ds = −2.199 · 10−10 es = 7.100 · 10−13 fs = −5.138 · 10−16 The above model results in the following K feedback matrix: 0.1074 0.0692 0.7071 0.6927 0.2236 . K= 0.7071 0.6927 −0.2236 −0.1074 0.0692 (G.5) Thanks to the use of the Fio Std board, the implementation of the controller was a straightforward process. The control loop was coded in Simulink (Figure G.1). It consists on the following key parts: 1. Sensor data reception (sensor measurements). 2. Kalman filter. 3. Feedback gain matrix K. 4. Controller outputs to the servo motors (plant inputs). A data logger was added in order to record the results in a microSD storage card for later analysis. Furthermore, a scheduler is also added to safely limit the operation time of the hovercraft if operation went wrong. Once the Simulink model was complete, it was directly compiled and loaded into the board via the Matlab’s Embedded Real-Time Workshop toolbox and C compiler. propeller blades from colliding with the surface. for safety in case of erratic operation. The saturation block limits the maximum and minimum values of the controller output to keep time, state and inputs of the system for later analysis. The schedule block disconnects all the inputs after a specified amount of time, Figure G.1: Simulink hovercraft control diagram with sensor data, Kalman filter, feedback gain, and actuator output. A data logger records the 149 150 Figure G.2: Hovercraft movement commands. The initial position of the hovercraft on the friction-reducing surface can be seen in Figure G.4. The controller is tested for the following sequence of commands: 1. Turn 90 degrees to the right with a step input. 2. Move forward 1.5m with a step input. 3. Turn about, 180 degrees to the left with a ramp input. 4. Move forward 1.5m with a step input. 5. Turn 90 degrees to the right. The above path leaves the Hovercraft in the initial position after executing all the commands. An scheme of the Hovercraft movement commands can be seen in Figure G.2. Also, the commands over time can be seen in Figure G.3. During the execution of the path commands, the Hovercraft state estimate and inputs over time were recorded. The state variables were then plotted against the desired 151 Figure G.3: Hovercraft movement commands over time path in Figure G.5. In order to avoid collision between the propeller blades and the surface, the tilt angles were limited to a maximum of 12 degrees. This results in the controlling effort being saturated at some moments, as seen in Figure G.5. The thrust-vectoring platform executes the commands with great precision, according to the hovercraft state estimate. In reality, the state estimate and the actual position and angle are very close: less than 10% error in position and 15 degrees in orientation. 152 Figure G.4: Hovercraft on friction-reducing surface. the first two subplots. Figure G.5: Test recorded x position, ψ angle, αR and αL , in solid lines. The position and angle commands are represented with dotted lines on 153 154 Vita Joan Jorquera Grau was born to Carmen Grau Pellicer and Juan I. Jorquera Nieto in 1987 in Valencia, Spain. He graduated from High School at L’Ametlla del Valles (Barcelona) in 2005. He received his Aerospace Higher Engineering degree from the Polytechnic University of Catalonia (UPC) in 2011. During his studies at UPC, he worked as an intern in Nissan Motor Iberica, as a simulation developer for the motor calibration department. He also worked as an intern in the Advanced Space Systems & Technology department at GMV Aerospace & Defence. Joan’s work in the area of robotics in GMV led him to pursue a Master’s Degree in Electrical Engineering, with focus on robotics, at South Dakota School of Mines & Technology. During his studies at SDSMT, Joan worked as a Graduate Teaching Assistant in Mechatronics. Positions Graduate Teaching Assistant in Mechatronics, August 2011 - December 2012 Internship at GMV Aerospace & Defence, July 2010 - June 2011 Internship at Nissan Motor Ibrica, July 2009 - December 2009 Publications “Comparison of Angles Only Initial Orbit Determination Algorithms for Space Debris Cataloguing”, 22nd International Symposium on Space Flight Dynamics, February 2011.