Rapid Missile System Characterization Using Computational Intelligence by Steven G. Ritz A thesis submitted to the Graduate Faculty of Auburn University in partial ful llment of the requirements for the Degree of Master of Science Auburn, Alabama August 2, 2014 Keywords: fuzzy logic, arti cial neural network, missile Copyright 2014 by Steven G. Ritz Approved by Roy Hart eld, Chair, Walt and Virgina Woltosz Professor of Aerospace Engineering Alice Smith, W. Allen and Martha Reed Professor of Industrial and Systems Engineering Andrew Sinclair, Associate Professor of Aerospace Engineering Abstract There exist many physical relationships between dynamic systems that humans can infer data from where an exact science may not be possible or plausible to apply. The imprecision or inaccuracy of attempted models and sensors often lead to errors when seemingly simple tasks are left to a machine; a seasoned expert may know from experience how to react under certain conditions for which a robot may not have been trained or may not have sensors to a high enough precision. Fuzzy Logic and Arti cial Neural Networks are an attempt to remedy that. If machine algorithms are able to infer solutions from previous knowledge, then new potential can be unlocked in computational applications. The study performed discusses the use of computational intelligence methods in the rapid classi cation of known and unknown missile systems. When a hostile missile is launched, it is crucial to know the geometry and capabilities of the impending ballistic vehicle. Computational intelligence mechanisms could play a large role in this defense application as well as a complementary tool to existing defense systems. ii Acknowledgments The author would like to thank Dr. Roy Hart eld for providing the opportunity, en- couragement, and support for conducting this research. The author would also like to thank Dr. Alice Smith for the help and guidance with computational intelligence methods, without which the author?s understanding of fuzzy logic would be fuzzy. Special thanks also goes to the author?s parents and grandparents for their years of support and encouragement, without which none of this would be possible. iii Table of Contents Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii List of Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Previous Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.1 Functional clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.2 Missile characterization . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1 Fuzzy Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Arti cial Neural Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3 Algorithm Development and Discussion . . . . . . . . . . . . . . . . . . . . . . . 10 3.1 Fuzzy Functional Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1.1 Selection of Reference Missile . . . . . . . . . . . . . . . . . . . . . . 12 3.1.2 Translation into RMS Coordinates . . . . . . . . . . . . . . . . . . . 12 3.1.3 Selecting values for constants to be used . . . . . . . . . . . . . . . . 13 3.1.4 Initialize membership values for all missiles . . . . . . . . . . . . . . . 14 3.1.5 Calculation of center . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.1.6 Distance and membership calculations . . . . . . . . . . . . . . . . . 15 3.2 Feed-forward Backpropagation Network . . . . . . . . . . . . . . . . . . . . . 15 3.2.1 Backpropagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3 Classi cation/Prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 iv 4 Application of Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.1 Description of Data Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.1.1 Selected parameters for clustering and classi cation . . . . . . . . . . 21 4.2 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.2.1 Functional Fuzzy Clustering Results . . . . . . . . . . . . . . . . . . . 22 4.2.2 ANN Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.2.3 Characterization Results . . . . . . . . . . . . . . . . . . . . . . . . . 27 5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 A Values for SRM code parameters . . . . . . . . . . . . . . . . . . . . . . . . . . 40 B FFC Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 v List of Figures 2.1 Example of a basic set of membership functions . . . . . . . . . . . . . . . . . . 4 2.2 Both sets of membership functions with marked observation x . . . . . . . . . . 5 2.3 Shaded sections of the response membership functions corresponding to output from the rule set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.4 Example of basic neuron with activation function . . . . . . . . . . . . . . . . . 8 2.5 A 2:2:1 feed-forward network . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.1 The initial center positions vs. the nal positions. This is meant to demonstrate the how the cluster centers move over iterations of cluster updates. . . . . . . . 15 3.2 Sample backpropagation network architecture . . . . . . . . . . . . . . . . . . . 16 4.1 Long range, high altitude trajectory missile . . . . . . . . . . . . . . . . . . . . 20 4.2 Short range, low altitude trajectory missile . . . . . . . . . . . . . . . . . . . . . 20 4.3 Mid range, mid altitude trajectory missile . . . . . . . . . . . . . . . . . . . . . 20 4.4 Selected RMS plots showing cluster patterns among data sets . . . . . . . . . . 22 4.5 Selected RMS plots showing cluster patterns among data sets . . . . . . . . . . 23 4.6 Correlation plots showing the calculated diameter results, in meters, of the ANN training validation with 20% holdout. Observations closer to the line y = x are better predictions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 vi 4.7 Correlation plot of the validation of a single arti cial neural network representing the entire data set. Observations closer to the line y = x are better predictions. 26 4.8 Averaged long-range missile prediction results . . . . . . . . . . . . . . . . . . . 27 4.9 Long-range prediction results from all data sets . . . . . . . . . . . . . . . . . . 28 4.10 Averaged long-range missile prediction results up to 115 seconds . . . . . . . . . 29 4.11 Short-range missile prediction results . . . . . . . . . . . . . . . . . . . . . . . . 31 4.12 Short-range prediction results from all data sets . . . . . . . . . . . . . . . . . . 32 4.13 Mid-range missile prediction results . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.14 Mid-range prediction results from all data sets . . . . . . . . . . . . . . . . . . . 34 vii List of Tables 4.1 Average inaccurate cluster assignments for each of the 3 missiles tested. The total observations are given for each test case. . . . . . . . . . . . . . . . . . . 30 viii List of Abbreviations learning rate for an ANN membership of a single observation cluster center coordinates V weight matrix between input layer and hidden layer W weight matrix between hidden layer and output layer Xi Input neuron for ANN Yk Output neuron for ANN Zj Hidden neuron for ANN ANN Arti cial Neural Network BP backpropagation c index of cluster d distance from observation to current cluster center FCC Fuzzy Functional Clustering m? fuzziness parameter SRM solid rocket motor ix Chapter 1 Introduction Most anti-missile defensive measures rely on knowing the capabilities of a missile within seconds of launch. Often, the arsenal and capabilities of an adversary are known to the defensive group. More generally, the technological level of the missile system is characterized but a given missile systems capabilities may not be known a priori. There is therefore a need to quickly characterize hostile missile systems during launch. Many successful endeavors have been made to nd the optimal missile con guration for a given trajectory using physical models [1, 2, 3, 4, 5]. Each of these methods requires the use of a population based meta- heuristic optimizer: genetic algorithms, particle swarm, ant colony, or a hybrid formed from a combination of one of these with a Hooke and Jeeves pattern search. Each member in the population of these methods was evaluated using a 6 degree-of-freedom missile code called AERODSN and compared to the objective function of the optimizer to determine tness [6]. While these methods have been met with success, the amount of computational time required is not su cient for response times if an unknown missile is launched. During this type of scenario, reliable information needs to be received within tens of seconds after launch if not sooner. By using a method that requires a large up-front computational cost, faster calculations can be made. In this study an algorithm is proposed that uses a trained database of missile system trajectories to rapidly and accurately identify and predict the geometry of the missile during launch. The estimates are calculated using an arti cial neural network (ANN) trained on simulated data representing possible missile systems and their trajectories. To improve the ANN performance, however, the training data was divided into subsets using a variant of the fuzzy c-means clustering algorithm, here referred to as Fuzzy Functional Clustering 1 (FFC). Separate ANNs were trained for each cluster of training data. This approach reduced the required domain for each ANN, allowing for improved accuracy within that domain. After training, each network undergoes a validation using data withheld from training in order to determine how well the network estimates the geometrical parameters from new data points. A total of twenty data sets were used to characterize the entire method as a whole in addition to the validation metrics performed at the various stages of the algorithm. The results of the twenty trials were compiled for statistical use as well as to measure the accuracy and consistency of the algorithm. 1.1 Previous Work 1.1.1 Functional clustering Functional clustering is not a new concept: a hybrid of the B-spline tting and k-means was given by Abraham et al. [7] as well as Luan and Li [8] which clusters the coe cients of the spline polynomial, clustering around principal points of curves devised by Tarpey and Kinateder [9], Bayes clustering with hierarchical wavelets proposed by Ray and Mallick [10] (2006), and the others summarized by Chiou and Li [11]. Many of these use a variant of the k-means (also called c-means) clustering algorithm, but a fuzzy k-means algorithm is possibly better suited for this application. This assertion is based on how the fuzzy clustering algorithm calculates membership to a cluster, using not only how close it is to a single cluster but also the distance to all other clusters. Since the membership value is ultimately what decides which cluster to place an observation, the fuzzy clustering algorithm seemed to be a strong choice to couple with a functional clustering method. 1.1.2 Missile characterization Other attempts have been made to characterize a missile in ight with di erent ap- proaches. In 2005, Lei and Lu submitted a method for missile classi cation using micro- Doppler signatures from radar signals [12]. This method used the micro-Doppler signatures 2 from the radar in the time-frequency domain to classify targets based on their motion dynam- ics. This method appears to work well in determining the current performance of a missile in ight, but not the geometry. Their use of the Gabor feature extraction could prove as an improvement to the RMS translation as described in this study with some modi cations; however, this would be the topic of a future study. Another attempt to classify missiles in ight that used arti cial neural networks was carried out by Albarado, Hart eld, Carpenter, Burkhalter, and Ritz [13]. In this study, the team used training data created by a Monte Carlo simulator for 6 reference missiles. Each missile was own out for 10 simulations and then used in the training set to attempt to correctly classify missiles in ight. The initial training results were promising, but when validating with outside data generated by other simulations, the predictions started to mis- assign classi cations. In addition, this work only attempted to classify, not characterize the geometry, of missiles. This study is inspired from the previous motivation of earlier works, but attacks the problem with an alternate solution. Similar to the Lei and Lu method, a characterization attempt is made, but not by using the same type of data nor by using the same feature ex- traction. Likewise, an arti cial neural network is used in this study with similar architecture to that of Albarado et al, but used for geometrical characterization instead of classi cation. 3 Chapter 2 Background 2.1 Fuzzy Logic The concept of fuzzy logic was conceived by Lot Zadeh in 1965 [14]. He explained the need for a mathematical means of expressing the uncertain relationships between objects in the real world and the terms humans use to classify them. For example, a \tall man" or \warm weather" may hold di erent meaning between two individuals, but with fuzzy logic sets, a membership function or set of functions can be created that roughly translate these adjectives to crisp measurements. The best way to understand fuzzy logic is with an example of membership functions and rule sets. Figure 2.1 shows a plot of three basic membership functions. Each corresponds to a linguistic variable (terms such as \tall", \warm", \fast", etc.) and the degree of membership for that variable in a system. ? x Figure 2.1: Example of a basic set of membership functions Consider and example with two observations and one response. Each observation should have its own set of membership functions, which for this example is shown in Figure 2.2 4 ? a x 1 (a) Membership functions for ob- servation 1 ? x 2 (b) Membership functions for ob- servation 2 Figure 2.2: Both sets of membership functions with marked observation x The dotted lines in the gures represent the observations x measured for this example. Assuming that the range of membership values is 0 1, a for blue and red is equal to 0.5 while b for red is 0.75 and b for green is 0.25. Given that the activated rule set for this example is IF R AND R, THEN B IF R AND G, THEN G IF B AND R, THEN G IF B AND G, THEN R the membership values for the response set of membership functions can be found. In this example, this is done using the max-min rule. The minimum membership value of all observations in a single rule is selected for the response variable. If multiple values for an output are calculated, the maximum value is chosen. The calculated response values are IF ar = 0:5 AND br = 0:75; THEN cb = 0:50 IF ar = 0:5 AND bg = 0:25; THEN cg = 0:25 IF ab = 0:5 AND br = 0:75; THEN cg = 0:50 IF ab = 0:5 AND bg = 0:25; THEN cr = 0:25 where the notation ij represents the membership function of color j in set i. It should be noted that the green membership function of the output was activated twice. Following the max-min procedure, only the green value of 0.50 can be used since 0:50 > 0:25. With all 5 of the outputs for the activated rules found, the nal output value is able to be defuzzi ed. The output values are rst plotted on the response set of membership functions as seen in Figure 2.3 ? c x Figure 2.3: Shaded sections of the response membership functions corresponding to output from the rule set These shaded areas represent the total membership for the outcome of the two obser- vations. There are several acceptable methods for defuzzi cation, the most common being the centroid method. In this method the centroid of the shaded area is calculated. The x location of the centroid is the defuzzi ed value of the output. The implications of this assertion of a method for handling the imperfections in mea- surements is not readily apparent unless one is acquainted with probability theory. The only other means of expressing uncertainty at the time was through probability, a subject fuzzy logic shares similarity but is not the same. For instance, the membership values should not be confused with probability; both concepts handle the idea of uncertainty in measurements, but probability is based on classical set theory and the chance a measurement is accurate [15]. Fuzzy logic membership explains the degree in which this measurement is correct. One could delve into the entire eld of vagueness and uncertainty along with the impact of fuzzy logic, but the focus of this study is the concept of a membership function and its application to clustering. The concept of clustering multi-variate data was also a fairly recent idea around the time fuzzy logic was introduced[16]. It took almost twenty years before the methods were 6 married by James Bezdek to form the fuzzy c-means algorithm, or FCM[17]. This proposed method coupled the notion of membership to the distance calculations associated with the c-means method. This seemed a natural addition as pattern recognition is integral to human perception just as much is the uncertainty in our speech [15]. The study presented in this text focuses on the application of the FCM in particular. 2.2 Arti cial Neural Network In general, an arti cial neural network (ANN) is the result of an attempt to mimic a biological brain?s ability to learn. Similar to how a brain is constructed, an ANN is composed of simple processing elements called neurons. These neurons can be connected in various ways by means of directed communication links [18]. The manner in which these neurons are connected determines the network?s architecture. Simple architectures consist of feed- forward networks, those in which information ows through the network like a one-way street. There also exists more complicated architectures, like the cascade correlation which consists of adding in neurons to the topology until the error is reduced below a threshold. Both the feed-forward and cascade have a one-way operation, but other networks such as the bidirectional associative memory net can have connections that ow two-way. The rst ANN dates back to 1943 when McCulloch & Pitts published their paper titled \A Logical Calculus of the Ideas Immanent in Nervous Activity" [19], where they proposed a mathematical model for how a biological neuron was believed to work. In this early model, neuron activation was limited to binary functions: activated or not activated. Over the years, more sophisticated learning methods, the methods by which the weights that connect a network are changed to produce the correct values of outputs, were developed to handle more complex problems. After becoming very popular in the 1950s and 1960s, ANN research declined as current methods at the time could only solve linearly separable problems as shown in a report by Minsky and Papert [20]. In the 1980s, ANN research saw 7 a resurgence of activity after the publication of several new learning methods for networks such as backpropagation [21] and Hop eld learning nets [22]. For most architectures, the structure of a neuron is similar; it consists of an activation or transfer function that determines the type of signal a neuron res with connections to the inputs and outputs. The basic structure of a neuron is shown in Figure 2.4. X 1 X 2 X b f(?(w i x i )) y Figure 2.4: Example of basic neuron with activation function In the previous gure, x is the raw input to the neuron, wi is the weight coe cient to the corresponding connection, and y is the output after passing through the activation function, f. The xb is an input referred to as the bias. It is usually equal to unity and when multiplied by wb acts as a constant for the network. A bias is not required in neural networks but can be useful for adding some linearity to a model [18]. Early neuron models had binary transfer functions, allowing a neuron to send only \on" and \o " signals. This severely limited the type of problems ANNs could handle. In modern neuron structures, a sigmoidal transfer function is often used which is given as (x0i) = 11 + exp ( x0 i) (2.1) where x0i is the input received by the neuron after multiplied by the weight matrix, W, as given by [X] [W] = X0 (2.2) 8 This weight matrix is where the information of a network is stored once trained. It is what de nes two unique networks with similar architecture and neuron structure. A full network is composed of interconnected neurons. Di erent architectures have di erent methods for connecting the neurons but a common one is the feed-forward topology. This is composed of at least least three layers in the network: the input, hidden, and output layers. A very simple feed-forward network is shown in Figure 2.5 x 1 x 2 z 1 z 2 y 1 Figure 2.5: A 2:2:1 feed-forward network where the input layer is represented by the x, the hidden layer by the z and the output by the y. Each connection is where the previously mentioned weights are stored; the output of each neuron is multiplied by the weight in the connection before being passed into the neuron on the path. The basic principle of training a network is to minimize the error in the weights, but there are various techniques to accomplish this. Many are based on gradient methods, such as backpropagation, meaning they follow the downward slopes in the error function. A shortcoming of gradient methods, though, is the likelihood of ending up in a local minimum rather than in the global minimum. For most well-behaved data sets this is not a large problem, but for ill-behaved data this can cause poor training. 9 Chapter 3 Algorithm Development and Discussion The full algorithm, as used in this study, can be described in ve general steps: 1. A database of missile performance data is generated. 2. An initial analysis on data to select a reference missile is performed. 3. Trajectories are clustered based on the reference missile. 4. The ANNs are trained based on the associated clusters. 5. The ANN and clustering are evaluated by simulating a real-time yout. A more comprehensive discussion of the data sets is given in Chapter 4. This chapter is more focused on the computational intelligence methods of the study. 3.1 Fuzzy Functional Clustering Clustering is a method for assigning labels to unlabeled observations in multi-dimensional space [23]. Through clustering the underlying patterns between observations are used to place the data in various sized groups that have similar characteristics. In the algorithm known as the c-means method, clustering occurs through an iterative process of calculating the cluster centers and the distances between the observations and the centers. For most clustering methods, the number of clusters is determined before implementing the clustering algorithm. For this reason, several iterations of clustering may be necessary to determine the optimal number of clusters for the application. 10 The fuzzy c-means (FCM) algorithm implemented in this process was established by Bezdek, Ehrlich, and Full et al. in 1984 [17]. It is a variation of the k-means clustering algo- rithm that incorporates a membership calculation that updates the centers of the clusters. This membership function is given as tik = 2 4 cX j=1 dtik dtjk !2=(m0 1)3 5 1 (3.1) where is the membership value for observation k in cluster i, d is the distance be- tween the cluster center and the observation, t is the current iteration, and m0 is the fuzzy parameter, which in all trials run using this process the fuzzy parameter was set to 2. This means an observation?s membership is dependent on its? distance to all the cluster centers. The equation for the cluster center, , calculation is shown in the following ij = Pn k=1 m0 ik xkjP n k=1 m0 ik (3.2) which is similar to the hard k-means center calculation except for the membership values used as weighting coe cients in the calculation. After the center is calculated, the mem- bership values are re-evaluated for the observations. These new values are then used to determine the new cluster center positions and so on until convergence or until the centers move less than some threshold value. In the c-means clustering, the process of updating cluster centers is carried out until convergence; however in the FCM convergence is not always necessarily achievable. It is more practical to iterate until cluster centers change within a tolerance established or to continue over a set number of iterations. The entirety of the FFC is listed for reference and can be found in Appendix B. 11 3.1.1 Selection of Reference Missile The reference missile serves as the \truth" for calculating the RMS values (explained in the following section) that will be clustered. Selecting a good reference missile is a crucial task; if a sub-optimal missile is chosen the resulting cluster space will not yield even clustering meaning too many trajectories will end up in a single cluster. To prevent this, a method was found that provides two candidates for a reference missile in a given data set. The maximum range and altitude are found within each set of missile trajectory obser- vations in the data set. The mean and standard deviation of these values are then calculated. The rst reference missile candidate is simply selected by nding the associated trajectory with the maximum altitude. The second candidate is selected by nding the trajectory with the maximum range at least one standard deviation less than the mean. Both missiles are used in the initial clustering and evaluated by calculating the standard deviation of the num- ber of missiles in each cluster. For example, if candidate one is used in the FFC and four clusters are produced with population 1, 1, 2, 9, respectively, and candidate two makes the FFC produce four clusters of 3, 3, 4, 3, candidate two will be selected as the better missile to proceed with for the rest of the algorithm. Alternatively, a method for choosing a reference missile is to run the batch clustering algorithm over as many iteration as there are missiles in the database, using every missile as reference missile. This will allow the user to visually inspect the cluster space generated by each choice. A better clustering might result from this method, however it is time consuming for both the computer and the user. For that reason the previous method presented is the preferred method of selecting a reference missile. 3.1.2 Translation into RMS Coordinates Each trajectory that was clustered is made of hundreds or thousands of data points from incremented time-steps. This presents a unique challenge since the objects that were to be clustered were the trajectories themselves. A form of feature extraction needed to 12 be performed on the data points that represented the trajectories. This was accomplished by translating the full altitude, range, and velocity pro les of a trajectory into a single RMS value of the residuals as compared to the reference missiles chosen. Essentially, each trajectory would then be able to be represented as a point in 3-D space if plotted on axes RMS altitude, RMS range, and RMS velocity. These values were calculated using Equation 3.3 [24]: RMS = qP (yt y)2 n (3.3) where yt is the target found from the spline, y is the data point from the missile in question, and n is the total number of data points given in that trajectory. Other forms of feature extraction seem plausible for this type of clustering, however, the seemingly obvious choices fall short when applied to the classi cation section of the algorithm. For example, based on the type of data being clustered, it may seem su cient to cluster this data based on just the max altitude, max range, and max velocity or some combination of those features. This falls short in the classi cation though due to the fact that the maximum aspects are not known a priori or as radar data is streaming in. While this method of clustering might work well for the unsupervised clustering of the initial database sets, its capabilities are lacking in the supervised classi cation. The method presented can be used for both scenarios with slight modi cation. 3.1.3 Selecting values for constants to be used The values of the three constants of the FFC should be investigated over the course of any future study that wishes to implement this algorithm. These values can alter the type of clustering that will result from the FFC. The number of iterations for cluster center updating will likely scale with the size of the data set. Forty iterations was found to be suitable for data sets under 200 missiles. Selecting the number of clusters, c, can take some trial and error to nd the optimal number that suits the user?s speci cations for clustering, 13 but it was found that a substantial number of clusters can scale with the size and variability of the data set. Too many clusters will lead to the formation of singletons, or clusters with a single observation; not enough clusters will result in clusters that missiles with too dissimilar of qualities. It is suggested to start with 6 or 8 clusters for data sets between 100 and 200 missiles that were generated over a uniform distribution. The fuzzy parameter, m0, determines how \fuzzy" the cluster membership is. Typically this is set to 2 and adjusted as needed. 3.1.4 Initialize membership values for all missiles The initialization of the membership values was simply done by systematically assigning a unity membership to every kth missile such that each cluster had roughly an even distri- bution of missiles. While the initial membership assignments may e ect the nal cluster assignments, it does not e ect the shape of all the clusters. For example, if missile 1 and 2 are assigned to cluster 1 with one type of initialization and cluster 2 with another, there is no e ect on the nal outcome of the algorithm as long as those two missiles are clustered together. 3.1.5 Calculation of center The cluster center calculation in Equation 3.2 is used for each cluster using the mem- berships of each missile and the coordinates: RMS altitude, RMS range, and RMS velocity. Initially these centers are located arbitrarily due to the seeded membership values. With each updated membership and center calculation, the centers shift resulting in the forma- tion of clusters. Though the centers with never truly converge, their change in position will approach zero. If upon inspection these centers still move substantially after the maximum number of iterations is reached, increase the maximum number of iterations. It is crucial these centers fall into stable locations. Figures 3.1a and 3.1b show how much cluster centers can change over the course of a full set of iterations. 14 32 34 36 38 40 42 5 10 150 2000 4000 6000 8000 (a) Cluster center initialization 0 20 40 60 80 0 10 20 300 5 10 15 x 104 (b) Cluster center nal positions Figure 3.1: The initial center positions vs. the nal positions. This is meant to demonstrate the how the cluster centers move over iterations of cluster updates. 3.1.6 Distance and membership calculations Euclidean distances from represented missile points to the cluster centers are found by using the RMS coordinates. These distances are then used to calculate the membership values for each observation. This is performed with Equation 3.1. Each observation is then assigned a cluster determined by the highest corresponding membership value obtained in the current iteration. Traditionally this is performed by implementing what is called an alpha cut, a method that handles cluster assignment by restricting acceptance to certain membership levels. A tournament selection was chosen over this method due to some errors that appeared in the classi cation section when implementing the alpha cut. This means that whichever cluster the observation showed the highest membership in was the cluster the observation was assigned to. The errors from the implementing the alpha cut are discussed later in the results given in Section 4.2.1. 3.2 Feed-forward Backpropagation Network Once each data set that is passed through the initial clustering, the full trajectories of each missile are sorted into sub-sets based on their cluster designation. These sub-sets then act as separate training sets for the arti cial neural network (ANN) for each cluster. For example, if the desired number of clusters is 6, then 6 ANNs will be trained to represent 15 each cluster. Instead of creating a single network trained on the entire data set, the networks were separated in this manner in order to train on more localized ranges of the geometrical parameters. If the training data range is too large, some resolution could be lost in the training process. The speci c type of network used for this algorithm is a single hidden layer, feedforward, backpropagation arti cial neural network. This means the inputs are fed to a hidden layer and then to the output layer in a one-way process. The weights are reduced using a back- propagation method explained in further detail in the following section. 3.2.1 Backpropagation The backpropagation algorithm is a an optimization method for the training of the weights in a feedforward network. The training is based on the idea of gradient descent of the error, meaning a weight change that produces a decrease in the error will be taken and any increase in the error stops the training. The basic architecture of a backpropagation network is shown in Figure 3.2 where the inputs to the network are given as Xi, the response X i X 1 Xn Z1 Zn Y i Y 1 Y n W V Figure 3.2: Sample backpropagation network architecture variables are shown as Yi, and the hidden layer neurons are given as Zi. The weights connecting the rst and second layer are V and W, respectively. These weights are the elements of the network that are trained using target data from the training set. For the 16 application presented in this study, this was the trajectory data. These weights are randomly seeded initially and then evaluated with the rst observation selected from the training set following the same evaluation rules as any other feedforward architecture. Once the initial evaluation is complete, the weights are updated to minimize error. The backpropagation method starts with the output values and works back through the network, updating the weights in each layer simultaneously. It is important that the updated weights W are not used in the calculation of the updated weights V. The weight change for the individual weights in W when using a bipolar sigmoid activation function is given by the following w = (t y)(1 +y)(1 y)z (3.4) and the weight change for the weights in V is given by v = X k ((t y)(1 +y)(1 y)z)kwk ! (1 +z)(1 z)x (3.5) where is the learning rate of the network training, k is the number of outputs, and t is the target data point the network is training to. This process is continued until the error in the network is smaller than some tolerance or until a maximum number of iterations has been reached. Once training is nalized for the network the weights are frozen and saved to be used for predictions. With each network undergoing training, a subset of the data to be trained with was withheld from actually being used. By testing the network with a data set that has not been used to train it, the overall accuracy of the network can be determined. If a poor prediction results from testing the with the holdout data, it is likely the network has been over- tted. This means that particular set of weights found will predict the target data very well but will poorly predict any other data even if it is within the range of the originally trained data. 17 3.3 Classi cation/Prediction The classi cation and prediction section of the algorithm is where the data gathered and trained from the previous sections is applied to characterize a missile while in ight. In the classi cation portion, the the radar data is read in and compared to the same reference missile used in the previous FFC with the same data set. This translates the newly received data into RMS coordinates. The distance from the observation to each predetermined cluster center is calculated and then used to calculate the membership using the same Equation from 3.1. Where this varies from the FFC is that the cluster centers do not get updated; they are xed in space. The missile associated with the observed data is then assigned to a cluster based on the highest membership calculated. This cluster designation determines which weight matrix to use for the ANN prediction. For example, if a missile is assigned to cluster 3, then the weight matrix found from training the data associated with cluster 3 will be used to predict the desired characteristics. This process continues for every observation that is read in. For a full application of the algorithm, the previous sections do not need to be run more than once; once the data is clustered and trained within acceptable error tolerances there is no need to re-run. The following chapter outlines how this algorithm and process were used for a validation study which also serves as an example for the use of this package. 18 Chapter 4 Application of Algorithm 4.1 Description of Data Sets Apart from the main goal of predicting the geometry of a missile in ight, another goal of this application was to show the value of clustering a data set prior to training an ANN and to validate the accuracy of this method. In order to accomplish this, twenty data sets were created using the SRM yout code and seeded using a Latin hyper-cube uniform distribution. Each of the unique missiles had a single trajectory assigned to it. The ranges for the 35 parameters were equal across all twenty data sets and are shown in Appendix A. The desired parameter to match in this study was diameter of the missile; therefore, many of the other parameters and characteristics of the missile were held constant or to a small range (some values, like star points, needed to be varied in order for a feasible solution to be found); however, the same fuel and launch angle were used in each simulated yout as well as payload. If these certain values were not held constant, the range and altitude would be far less correlated with the diameter of the missile. For each unique missile created a set of data points were created to simulate incoming radar data. The number of these data points varied based on the ight time of the missile. Each data set contained 125 to 135 missiles with 3 missiles that were placed in each of the 20 data sets: a short range missile, a long range missile, and a mid-range missile. These three missiles were used to validate the accuracy and con dence of the total algorithm. Figures 4.1, 4.2, and 4.3 show models of the missiles used in this study. The diameter was chosen for characterization due to the fact that most of the missile geometry is scaled to the diameter; it is the one parameter that can tell the most about a 19 -10 -5 0 5 10 -10 -5 0 5 10 0 5 10 15 20 25 30 35 40 45 50 55 60 Figure 4.1: Long range, high altitude trajectory missile -10 -5 0 5 10 -10 -5 0 5 10 0 5 10 15 20 25 30 35 40 45 50 55 60 Figure 4.2: Short range, low altitude trajectory missile -10 -5 0 5 10 -10 -5 0 5 10 0 5 10 15 20 25 30 35 40 45 50 55 60 Figure 4.3: Mid range, mid altitude trajectory missile 20 missile. This not only reveals vital information about the geometry but the performance of the missile as well. 4.1.1 Selected parameters for clustering and classi cation Four parameters were chosen to be the input for the FFC algorithm: time, altitude, range, and velocity. These were chosen to simulate the type of data that would be obtained by radar. The altitude is de ned as the total height above sea level and the range is de ned as the component of the distance from the launch point to the missile projected on the ground. The velocity is simply the time rate of change in position of the missile. Though there is not a direction associated with this velocity term in the data, it is implied that this term is tangent to the point of the trajectory where the measurement was taken or simulated. Though more data might have yielded better results, the need to simulate data strictly from a radar limited the number of plausible inputs to time, position, and any derivatives associated with those. Since the classi cation is designed to perform in real-time with a missile launch, the input variables needed to be adjusted. The critical time for classi cation is in the early part of the ight. Early after launch, many missile trajectories can seem similar; many will have similar altitudes and ranges. For this reason, the classi cation only uses the velocity data from the radar data. 4.2 Results The following sections are broken into the di erent parts of the algorithm and describe the validation and analysis of through each step. The nal code was combined after all of the individual sections functioned properly and produced favorable results. 21 4.2.1 Functional Fuzzy Clustering Results The results from the FFC in Figures 4.4a-4.4d are represented in the translated RMS coordinates for ease of viewing. These observations have no real bearing in physical space, they are simply a representation of the features extracted from the trajectories. 0 20 40 60 80 100 01020 304050 0 500 1000 1500 RMS AltitiudeRMS Range RMS Velocity (a) Clustered data from Data Set 6 0 20 40 60 80 100 0102030 405060 0 500 1000 1500 RMS AltitiudeRMS Range RMS Velocity (b) Clustered data from Data Set 5 0 20 40 60 80 100 02040 60800 200 400 600 800 1000 1200 1400 1600 RMS AltitiudeRMS Range RMS Velocity (c) Clustered data from Data Set 19 0 20 40 60 80 100 0102030 405060 0 200 400 600 800 1000 1200 1400 1600 RMS AltitiudeRMS Range RMS Velocity (d) Clustered data from Data Set 15 Figure 4.4: Selected RMS plots showing cluster patterns among data sets From these plots it is also easy to see the large di erences in velocity and how that a ects the clustering outcome. This result helps defend the reasoning to use just velocity as the classi cation variable during the characterization algorithm and also con rms the distinct variability in the missiles of the data sets; this implies that that some missiles share similar 22 trajectories but vary in velocity. This di erence is only achievable with di erent size motors (since all missiles had the same fuel/binder type), which is only possible if the diameters vary, further implying that velocity was a good input for the classi cation. Figure 4.5 gives a more physical sense of how the clusters are grouped. Since the maximum ranges vary wildly in the data set, only the rst 100,000 ft is displayed for ease of viewing the smaller missiles. 0 10 20 30 40 50 60 70 80 90 1000 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2x 104 Range Velocity (a) Clustered trajectories from Data Set 6 0 10 20 30 40 50 60 70 80 90 1000 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2x 104 Range Velocity (b) Clustered trajectories from Data Set 5 0 10 20 30 40 50 60 70 80 90 1000 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2x 104 Range Velocity (c) Clustered trajectories from Data Set 19 0 10 20 30 40 50 60 70 80 90 1000 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2x 104 Range Velocity (d) Clustered trajectories from Data Set 15 Figure 4.5: Selected RMS plots showing cluster patterns among data sets 23 The clusters seem to form bands along the velocity axis and are based heavily on the velocity after the motor burns out. The high density of clusters in the initial stages is found to cause some issues in classi cation that is further explained in Section 4.2.3. It should also be mentioned that these clusters are the result of using a tournament based cluster assignment previously remarked in Section 3.1.6. This was used to ensure that each missile was placed into a cluster and no dead clusters formed. When using the alpha cut method, there were several missiles that were placed into singleton groups. Normally, a simple x might be to increase or reduce the number of clusters in order to accommodate this outliers. Instead, the tournament selection was chosen because of the real-time classi cation operation. If the clustered data were to be used to classify another batch of trajectories this would not have been an issue, but with the nature of a moving time scale and the necessity of having an assigned cluster each time step, the missile needed to be assigned to the cluster with which it shared the highest membership. Future versions of the FFC may not involve this type of cluster selection but this was the most direct method for this application. 4.2.2 ANN Results All networks were trained for a maximum of 2000 iterations or until the absolute er- ror converged below 0.05, although in every scenario the maximum number of iterations was reached. As mentioned previously, the maximum number of iterations was limited to prevent over tting. Each network underwent a validation performed by using a holdout data set created from pseudo-randomly selecting 20% of the observations; the three missiles in question were ensured to be placed in the holdout set. Figures 4.6a-4.6h show sample correlation plots from one of the data sets created from the results of using the inputs of the holdout data to make predictions. A dot on the diagonal line means the output was perfectly predicted after passing the inputs through the network. The RMS error is given for each validation. 24 0 0.5 1 1.50 0.5 1 1.5 y holdout predicted y RMSE=0.0484 (a) Cluster 1 validation results 0 0.5 1 1.50 0.5 1 1.5 y holdout predicted y RMSE=0.00816 (b) Cluster 2 validation results 0 0.5 1 1.50 0.5 1 1.5 y holdout predicted y RMSE=0.0201 (c) Cluster 3 validation results 0 0.5 1 1.50 0.5 1 1.5 y holdout predicted y RMSE=0.374 (d) Cluster 4 validation results 0 0.5 1 1.50 0.5 1 1.5 y holdout predicted y RMSE=0.0661 (e) Cluster 5 validation results 0 0.5 1 1.50 0.5 1 1.5 y holdout predicted y RMSE=0.14 (f) Cluster 6 validation results 0 0.5 1 1.50 0.5 1 1.5 y holdout predicted y RMSE=0.0683 (g) Cluster 7 validation results 0 0.5 1 1.50 0.5 1 1.5 y holdout predicted y RMSE=0.172 (h) Cluster 8 validation results Figure 4.6: Correlation plots showing the calculated diameter results, in meters, of the ANN training validation with 20% holdout. Observations closer to the line y = x are better predictions. 25 In this gure, Cluster 4 was visibly the worst performing cluster. It is important to note that though the RMSE seems very low, this type of result is unusable due to the poor correlation. This may have been due to the large number of missiles placed in this cluster relative to the size of the other clusters in this validation case. Increasing the number of clusters may x this issue, however this action would likely result in dividing all clusters including the already small ones. To demonstrate the signi cance of training on the subsets created by clustering, a similar training was performed on a holdout set of the entire data set. The results of this training can be found in Figure 4.7. 0 0.5 1 1.50 0.5 1 1.5 y holdout predicted y RMSE=0.609 Figure 4.7: Correlation plot of the validation of a single arti cial neural network representing the entire data set. Observations closer to the line y = x are better predictions. Given the same training parameters as the networks formed from the clustered data, the validation of this network shows a weak training result. This may have been due to the training set covering too wide a range of diameters for the network to properly obtain a higher degree of resolution. 26 4.2.3 Characterization Results The results discussed in this section are the averages obtained from the same three mis- siles in the twenty data sets, averaged together, then plotted to determine if the predictions fell within the bounds of an acceptable error. In the following cases, an error of 5% was determined to be acceptable. Figure 4.8 show the results of the averaged value of the pre- dicted missile diameter over time and Figure 4.9 shows all the predictions made from based on the ANNs from each of the data sets. 0 500 1000 15001.1 1.15 1.2 1.25 1.3 1.35 1.4 1.45 1.5 Time (s) Diameter (m) Error bounds for diameter prediction after t=115 ?5% errorpredicted targett=115 Figure 4.8: Averaged long-range missile prediction results 27 0 500 1000 1500?0.4 ?0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 Time (s) Diameter (m) Error bounds for diameter prediction with all data sets ?5% errortarget prediction Figure 4.9: Long-range prediction results from all data sets This set of plots show the predicted diameter over the course of a long-range trajectory, relative to the other missiles in the data set. The results obtained for this particular mis- sile/trajectory pair show the viability of this method. One of the noticeable positive trends is that as more observations are processed in the characterization algorithm, the predicted diameter converges to the target actual diameter. Another aspect to note is the quick con- vergence; after 115 seconds after launch the missile is identi ed within the error limits and remains within the bounds. This convergence is not gradual, however, and in the rst 115 seconds after launch the predictions made do not come close to the error bounds, which can clearly be seen in Figure 4.10. 28 0 20 40 60 80 100 1201.1 1.15 1.2 1.25 1.3 1.35 1.4 1.45 1.5 Time (s) Diameter (m) Error bounds for diameter prediction up to t=115 ?5% errorpredicted targett=115 Figure 4.10: Averaged long-range missile prediction results up to 115 seconds However, it is possible to predict the correct diameter before this time. By comparing the cluster assignment made during classi cation with that same missile?s assigned cluster from the FFC, it was possible to determine at what times the classi cation algorithm correctly assigned cluster numbers. Some of the trials produced predictions that were accurate from the initial observations to the last. This was due to correct cluster assignments occurring 98% of the time. Table 4.1 shows on average how many times an improper cluster assignment was made in a single trial during the classi cation phase. 29 Stat Long-Range total 3834 obs Short-Range total 365 obs Mid-Range total 1395 obs Mean 76 267 1169 Std Dev 133 30 148 Percentage 2% 73% 85% Table 4.1: Average inaccurate cluster assignments for each of the 3 missiles tested. The total observations are given for each test case. Based on the results from the table, it would seem to follow that the short-range missile, with a success rate of 27%, would not manage to correctly predict target diameter within the acceptable error. While the short-range missile diameter is not predicted accurately as quickly as the long-range, accurate predictions are made after 110 seconds from launch, which can be seen from the averaged predictions in Figure 4.11 and in the full set of predictions in Figure 4.12. 30 0 50 100 1500 0.2 0.4 0.6 0.8 1 1.2 1.4 Time (s) Diameter (m) Error bounds for diameter prediction after t=15 & t=110 ?5 & 35% errorpredicted targett=15 & 110 Figure 4.11: Short-range missile prediction results 31 0 50 100 150?0.4 ?0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 Time (s) Diameter (m) Error bounds for diameter prediction with all data sets ?5% errortarget prediction Figure 4.12: Short-range prediction results from all data sets Most predictions do reach a steady-state early after 15 seconds, oscillating around the lower bound of 35%, but this error is outside acceptable limits. Some diameters are predicted as less than zero, an infeasible solution that results from having a bipolar sigmoid function. In future iterations of this algorithm, a binary sigmoid will be used. The worst predictions performed, however, were those during the characterization of the mid-range missile. These averaged results are shown in Figure 4.13 and all of the mid-range predictions are shown in Figure 4.14. 32 0 100 200 300 400 5000.2 0.4 0.6 0.8 1 1.2 1.4 1.6 Time (s) Diameter (m) Error bounds for diameter prediction ?5% errorpredicted target Figure 4.13: Mid-range missile prediction results 33 0 100 200 300 400 500?0.5 0 0.5 1 1.5 Time (s) Diameter (m) Error bounds for diameter prediction with all data sets ?5% errortarget prediction Figure 4.14: Mid-range prediction results from all data sets Based on the information in Table 4.1, the mid-range missile was assigned to the correct cluster in only 15% of the observations tested. What is interesting about the prediction curve is that the initial predictions are within the 5% error limit. The predictions rapidly begin to become worse then slowly recover in the last tens of seconds. Furthermore, these predictions came from the same training sets as the long-range missile predictions which on average were within acceptable error. One possible explanation as to why the discrepancy in the accuracy of the predictions across the di erence missiles can be found in the size of the clusters each missile belonged to. Consistently, the long-range missile was placed in the second or third largest cluster of the data set, never the largest. The short-range missile was placed in the second or third smallest cluster, and the mid-range was placed in the largest cluster. The largest clusters in the twenty data sets were usually signi cantly larger than the next largest data set, sometimes 25-50% 34 larger. Due to this increased size, it is possible the large data sets did not produce a fully trained ANN. The same number of maximum iterations was implemented for all clustered data subsets; the large data sets might not have had enough iterations to minimize the error in the wieghts, leading to poor predictions for missiles in the largest cluster. Another likely cause for the prediction accuracy inconsistency is the method of classi- cation. Each of the tested missiles was able to be predicted within the acceptable error bounds at least once, meaning that a correct prediction was possible with the given trained ANN. Though improvements could be made to the training methods, an increase in the ANN prediction accuracy would not help if missiles are wrongly assigned to a cluster during classi cation. A mismatched assignment means that the missile?s diameter will be predicted using the incorrect network. This mismatch occurs in the mid-range missiles particularly because most of their ight time falls within the range of some of the larger missiles? burn time. The gures presented in Section 4.2.1 show a tangled grouping of clusters for the rst 10,000 feet; this creates a large di culty in the ability to properly classify within this range. After this initial range, the high-velocity missiles (corresponding to long-range) are picked out easily since they lie within a more sparse region; however, the lower max velocity mis- siles lie within a more dense set of multiple clusters during the majority of their ight time. Though classi cation is easier than the initial moments after launch, the classi cation algo- rithm still has di culty in proper classi cation, an assertion con rmed by the performance displayed in Figure 4.13. 35 Chapter 5 Conclusion In summary, computational intelligence methods were used to to cluster, classify, and characterize missile systems in mid- ight. For this study, the diameter of the missile was chosen as the geometric characteristic to be predicted. Twenty data sets were generated using a missile yout simulation program. These data sets were used as training sets for the FFC algorithm which produced 8 clusters for each respective data set. These subsets, coupled with the geometrical data, were used as the target data for the ANNs. Another ANN was trained without clustering prior to training in order to show the e ects of the FFC. The results from this comparison showed that the clustering reduced the error in the neural network by an order of magnitude at the expense of creating and training multiple networks. With the networks trained and the clusters found, simulated youts were performed for the same 3 missiles in every data set. The results were given as the predicted diameter over the time of the trajectory. It was found that the accuracy of the prediction for the missile?s diameter seemed to be dependent on the ability of the classi cation algorithm to properly assign a cluster to the missile. In other words, a proper cluster assignment for the missile in question while in mid- ight would produce the proper diameter. There are two important ndings from this study: the use of a clustering method can decrease the overall training and validation error in an arti cial neural network, and geometrical parameters of missiles systems can be predicted with the an ANN while in ight. While these results show a proof of concept, the overall accuracy and consistency of the algorithm can be improved, of which the most important is tuning the classi cation algorithm. It was shown in the results that more improper cluster assignments for a missile 36 will lead to poor predictions regardless of how well the suite of neural networks were trained. Moreover, it is vital that if this is to be used as an aid for missile defense applications that these cluster assignments not only are correct, but are correct in the rst seconds of a launch. This issue was discussed in the results; most missile launches initially look similar so there is a need for a more discerning method of classi cation in these initial seconds. The fuzzy algorithm might still be suitable with the adjustment of the fuzzy parameter or perhaps the assignment method; neither the alpha cut method nor the method used produced consistent results. In order to make a much more robust algorithm, various launch angles and fuel types will need to be added to the data sets. This will undoubtedly add much more complexity to the problem as this will decouple the relationship between position and diameter; the clustering and neural network training will be far more sensitive to the changed in velocity and possibly even acceleration. This would also mean nding another feature extraction method other than the conversion into RMS space using the reference missile. Overall, the results show a promising continuation of aerospace applications using com- putational methods. With some improvements to the classi cation algorithm, the method- ology could prove as a useful tool for missile defense or for other real-time characterization applications. 37 Bibliography [1] Hart eld, R., Jenkins, R., and Burkhalter, J., \Ramjet Powered Missile Design Using a Genetic Algorithm," AIAA Aerospace Sciences Meeting, 2004. [2] Jenkins, R., Hart eld, R., and Burkhalter, J., \Optimizing a Solid Rocket Mo- tor Boosted Ramjet Powered Missile Using a Genetic Algorithm," AIAA/AS- ME/SAE/ASEE Joint Propulsion Conference, 2005. [3] Dyer, J., Hart eld, R., and Dozier, G., \Aerospace Design Optimization Using a Steady State Real-Coded Genetic Algorithm," Applied Mathematics and Computation, Vol. 218, No. 9, 2012, pp. 4710{4730. [4] Albarado, K., Hart eld, R., Hurston, B., and Jenkins, R., \Solid Rocket Performance Matching Using Pattern Search/Particle Swarm Optimization," International Journal of Aerospace Engineering, 2012. [5] Kiyak, Z., Ant Colony Optimization: An Alternative Heuristic for Aerospace Design Applications, Ph.D. thesis, Auburn University, December 2013. [6] Sanders, G. A. and Washington, W. D., \Computer Program for Estimating Stability Derivatives of Missile Con gurations - Users Manual," Tech. rep., U.S. Army Missile Command, 1982. [7] Abraham, C., \Unsupervised Curve Clustering using B-Splines," Scandanavian Journal of Statistics, Vol. 30, No. 3, 2003, pp. 581{595. [8] Luan, Y. and Li, H., \Clustering of time-course gene expression data using a mixed- e ects model with B-splines," Bioinformatics, Vol. 19, No. 4, 2003, pp. 474{482. [9] Tarpey, T. and Kinateder, K., \Clustering Functional Data," Journal of Classi cation, Vol. 20, No. 1, 2003, pp. 93{114. [10] Ray, S. and Mallick, B., \Functional clustering by Bayesian wavelet methods," J.R. Statist. Soc. B, Vol. 68, No. 2, 2006, pp. 305{332. [11] Chiou, J.-M. and Li, P.-L., \Functional clustering and identifying subtructures of lon- gitudinal data," J.R. Statist. Soc. B, Vol. 69, No. 4, 2007, pp. 679{699. [12] Lei, J. and Lu, C., \Target classi cation based on micro-Doppler signatures," IEEE International, 2005, pp. 179{183. 38 [13] Albarado, K., Hart eld, R., Carpenter, D., Burkahlter, J., and Ritz, S., \Rapid Missile Classi cation for Early Launch Using Neural Networks," MDissile Defence Conference, 2012. [14] Zadeh, L. A., \Fuzzy Sets," Information and Control, Vol. 8, No. 3, 1965, pp. 338{353. [15] Ross, T. J., Fuzzy Logic with Engineering Applications, John Wiley & Sons, West Sus- sex, UK, 3rd ed., 2010. [16] MacQueen, J. B., \Some Methods for Classi cation and Analysis of Multivariate Ob- servations," Proceedings of 5th Berkeley Symposium on Mathematical Statistics and Probability, 1967, pp. 281{297. [17] Bezdeck, J. C., Ehrlich, R., and Full, W., \FCM: The Fuzzy c-Means Clustering Algo- rithm," Computers and Geosciences, Vol. 10, No. 2-3, 1984, pp. 191{203. [18] Fausett, L., Fundamentals of Neural Networks: Architectures, Algorithms, and Applica- tions, Prentice-Hall, Inc., Upper Saddle River, NJ, 1st ed., 1994. [19] McCulloch, W. and Pitts, W., \A Logical Calculus of the Ideas Immantent in Nervous Activity," Bulletin of Mathemetical Biophysics, Vol. 5, No. 1, 1943, pp. 115{133. [20] Minsky, M. and Papert, S., Perceptrons: An Introduction to Computational Geometry, MIT Press, Cambridge, MA, 1st ed., 1969. [21] Rumelhart, D. E., Hinton, G. E., and Williams, R. J., \Learning representations by back-propagating errors," Nature, Vol. 323, No. 10, 1986, pp. 533{536. [22] Hop eld, J. J., \Neural networks and physical systems with emergent collective compu- tational abilities," Proceeding of the National Academy of Sciences of the United States of America, Vol. 79, No. 8, 1982, pp. 2554{2558. [23] Duda, R., Hart, P., and Stork, D., Pattern Classi cation, John Wiley and Sons, Inc., New York, NY, 2nd ed., 2001. [24] Navidi, W., Statistics for Scientist and Engineers, McGraw-Hill Companies, Inc., New York, NY, 3rd ed., 2011. 39 Appendix A Values for SRM code parameters 4.18E-01 1 rnose/rbodyFINCNTL 1.35E+0019 tailsemispan/dbody 1.72E+00 2 lnose/dbody 1.19E+0020 tailroot chord= crt/dbody 5.00E+00 3 fueltype 7.93E-01 21 tailtaper ratio= ctt/crt 5.62E-01 4 staroutR rpvar=(rp+f)/rbody1 7.17E+0022 LEsweepangledeg 1.70E-01 5 starinnerratio=ri/rp 9.92E-01 23 xTEtxTEt/lbody 4.61E+00 6 number of starpts 5.00E+0324 autopilotdelay timesec 9.70E-02 7 lletradiusratio=f/rp 6.93E+0125 initiallaunch angledeg 8.72E-01 8 eps(starPI*eps/N)width 3.98E+0026 pitch multipliergain 9.56E+00 9 starpoint angledeg 1.66E+0027 yaw multipliergain 7.90E-01 10 fractionalnozlen f/ro 1.41E+0028 dumy 2.64E-01 11 Diathroat/Dbody=Dstar/Dbody 3.16E+0029 initialpitch commandangle- degrees 1.30E+0112 FinenessratioLbody/Dbody 2.47E-02 30 initialyaw commandangle- degrees 1.41E+0013 diaof stage1meters 5.22E-01 31 b2var=b2vane/rexit 1.13E-03 14 wingsemispan/dbody 3.55E-01 32 timestepto actuate ns(sec) 1.29E-03 15 wingroot chord= crw/dbody 9.11E-04 33 correctionto initialpsiang(deg) 9.28E-01 16 taper ratio= ctw/crw 4.00E+0434 deltxforz corrections 1.23E+0017 wingLEsweepangledeg 4.00E+0435 deltxfory corrections 3.48E-01 18 xLExLEw/lbody 40 Appendix B FFC Algorithm % Author: Steven Ritz % This program is part of the fuzzy neural suite of codes to sort, cluster, % and predict missile geometery based on data that would be acquired % through radar. % % Fuzzy/ANN Suite: % DataManager.m % FuzzyClusterRobust.m* % Max Alt Range.m % plotting things.m % PreNeural.m % RefMissileSort.m % RealtimeFuzzyClassification.m % NOTE: This requires the database 'Classificated plus.mat' from % DataManager.m to be in current directory % clc % clear all % close all %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This is the function version of the code to be used for confidence % interval testing. It will likely be put into the final suite version to % be implemented into the GUI. function [F]=FuzzyClusterRobust(m,c,epochs,allRef,refm,database num) close all current dir=strcat(pwd,sprintf('nnDataSet%inn',database num)); 41 load(strcat(current dir,'Classificated plus.mat')); %% Method % Normalize % Randomly Assign to clusters % > Compute distance from all obs to cluster center % j update membership values % < repeat until desired epochs is met %% Constants switch allRef case 0 cycledM=refm; case 1 cycledM=[1:1:total]; end %% File Management number for file=num2str(c); file path=strcat(current dir,'n',number for file,' Clustersn'); dircheck=isdir(file path); if dircheck==0 mkdir(file path); mkdir(strcat(file path,'nTrajectoriesn')); mkdir(strcat(file path,'nMissiles In Clustersn')); mkdir(strcat(file path,'nRMS Plotsn')); mkdir(strcat(file path,'nRMS Centersn')); mkdir(strcat(file path,'nRef Based DBsn')); end for refmissile=cycledM close all %% Initialize Membership for all obs for C=1:c eval(sprintf('Class%i.membership=zeros(1,total);',C)); end for i=1:total 42 C=rem(i,c); if C==0 C=c; end eval(sprintf('Class%i.membership(i)=1;',C)); end %% Reference Frame Calculation eval(sprintf('ref.alt=spline(missile.m%i.time,missile.m%i.Alt);',... refmissile,refmissile)); eval(sprintf('ref.range=spline(missile.m%i.time,missile.m%i.Range);',... refmissile,refmissile)); eval(sprintf('ref.vel=spline(missile.m%i.time,missile.m%i.Velocity);',... refmissile,refmissile)); %% Coordinate Calculation % Cycle through missiles, i for i=1:total Coord.sosAlt=0; Coord.sosRange=0; Coord.sosVel=0; eval(sprintf('time=missile.m%i.time;', i)); eval(sprintf('Alt=missile.m%i.Alt;', i)); eval(sprintf('Range=missile.m%i.Range;', i)); eval(sprintf('Vel=missile.m%i.Velocity;', i)); for t=1:length(time) Coord.sosAlt=(ppval(ref.alt,time(t)) Alt(t))?2+Coord.sosAlt; Coord.sosRange=(ppval(ref.range,time(t)) Range(t))?2+... Coord.sosRange; Coord.sosVel=(ppval(ref.vel,time(t)) Vel(t))?2+Coord.sosVel; end Coord.RMSAlt(i)=sqrt(Coord.sosAlt)/length(time); Coord.RMSRange(i)=sqrt(Coord.sosRange)/length(time); Coord.RMSVel(i)=sqrt(Coord.sosVel)/length(time); 43 end for ecount=1:epochs %% Repeated Center Calculation for C=1:c x1t=0; x2t=0; x3t=0; x1b=0; x2b=0; x3b=0; for i=1:total eval(sprintf('mum=Class%i.membership(i);',C)); x1t=x1t+(mum?m*Coord.RMSAlt(i)); x1b=x1b+(mum?m); x2t=x2t+(mum?m*Coord.RMSRange(i)); x2b=x2b+(mum?m); x3t=x3t+(mum?m*Coord.RMSVel(i)); x3b=x3b+(mum?m); end x1=x1t/x1b; x2=x2t/x2b; x3=x3t/x3b; eval(sprintf('Coord.Class%i=[x1,x2,x3];',C)); end %% "Distance" Calculations % Cycle through missiles, i for i=1:total for C=1:c eval(sprintf('Class%i.sosX1=0;',C)); eval(sprintf('Class%i.sosX2=0;',C)); eval(sprintf('Class%i.sosX3=0;',C)); end eval(sprintf('time=missile.m%i.time;', i)); eval(sprintf('Alt=missile.m%i.Alt;', i)); eval(sprintf('Range=missile.m%i.Range;', i)); eval(sprintf('Vel=missile.m%i.Velocity;', i)); for C=1:c 44 eval(sprintf('Altdiff=Coord.Class%i(1) Coord.RMSAlt(i);',C)); eval(sprintf('Rangediff=Coord.Class%i(2) Coord.RMSRange(i);',C)); eval(sprintf('Veldiff=Coord.Class%i(3) Coord.RMSVel(i);',C)); eval(sprintf(... 'Class%i.Distance(i)=sqrt(Altdiff?2+Rangediff?2+Veldiff?2);',... C)); end end %% Membership Values for C=1:c eval(sprintf('Class%i.members=[];',C)); end for i=1:total for C=1:c eval(sprintf('Class%i.membership(i)=0;',C)); for CC=1:c eval(sprintf(... 'Class%i.membership(i)=Class%i.membership(i)+... (Class%i.Distance(i)/Class%i.Distance(i))?(2/(m 1));',C,C,C,CC)); end eval(sprintf(... 'Class%i.membership(i)=Class%i.membership(i)?( 1);',C,C)); end member check=Class1.membership(i); cluster id=1; for C=2:c if eval(sprintf('Class%i.membership(i)>member check',C)) eval(sprintf('member check=Class%i.membership(i);',C)); cluster id=C; end end j=length(eval(sprintf('Class%i.members;',cluster id))); eval(sprintf('Class%i.members(j+1)= i;',cluster id)); 45 end %% Cleanup for C=1:c eval(sprintf('epoch centerfC,ecountg=Coord.Class%i;',C)); end end %% Partition Coef % F=0; % for i=1:total % for C=1:c % eval(sprintf('F=F+Class%i.membership(i)?2/total;',C)); % end % end %% Validation by plot altlim=0;rangelim=0;vellim=0; for t=1:epochs for i=1:c centerplot=epoch centerfi,tg; if centerplot(1)>altlim altlim=centerplot(1); end if centerplot(2)>rangelim rangelim=centerplot(2); end if centerplot(3)>vellim vellim=centerplot(3); end end end for C=1:c eval(sprintf('allClasses.Class%i=Class%i;',C,C)); end [fig handel,plot handel]=... 46 plotting things(c,allClasses,Coord,refmissile,file path); plotting things str=strcat(pwd,'nplotting things.m'); close all % % Plot Things colours=f' m' ' r' ' g' ' b' ' k' ' xr' ' xm' ' xg' ' xb' ' xk'g; fig handel=figure('OuterPosition',[200 400 850 800]); plot handel=gca; for C=1:c if eval(sprintf('sum(Class%i.members)',C))>0 for i=1:eval(sprintf('length(Class%i.members)',C)) pp=1; velplot=0; Rangeplot=0; Altplot=0; eval(sprintf('j=Class%i.members(i);',C)); eval(sprintf('time=missile.m%i.time;',j)); for plotter=1:length(time) if mod(plotter,10)==0 eval(sprintf(... 'velplot(pp)=missile.m%i.Velocity(plotter);',j)); eval(sprintf(... 'Rangeplot(pp)=missile.m%i.Range(plotter);',j)); eval(sprintf(... 'Altplot(pp)=missile.m%i.Alt(plotter);',j)); pp=pp+1; else end end eval(sprintf(... 'plot handel,plot(Rangeplot,velplot,''%s'',''MarkerSize'',4);',coloursfCg)); hold(plot handel,'on'); end end 47 end xlabel('Range','FontSize',14);ylabel('Velocity','FontSize',14); xlim([0 100]) export fig(strcat(file path,... 'nTrajectoriesn',sprintf('%icluster %i.pdf',c,refmissile)),... ' transparent') Membership file=fopen(strcat(file path,... 'nMissiles In Clustersn',sprintf('RefMissile%i.txt',refmissile)),'w'); for i=1:c eval(sprintf('allmembers(i)=length(Class%i.members);',i)); eval(sprintf('themembers=Class%i.members;',i)); fprintf(Membership file,'Class %i nrnn',i); for b=1:allmembers(i) fprintf(Membership file,'%i ',themembers(b)); end fprintf(Membership file,' nrnn'); end F=std(allmembers); fclose(Membership file); save(strcat(file path,'nRef Based DBsn',... sprintf('Clustered ref %i.mat',refmissile))); end end 48