Open Collections

UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Design evolution of engineering systems through modeling, on-line monitoring, and evolutionary optimization Campos, Jesus Ramon 2010

Your browser doesn't seem to have a PDF viewer, please download the PDF to view this item.

Item Metadata

Download

Media
24-ubc_2011_spring_campos_jesus.pdf [ 12.53MB ]
Metadata
JSON: 24-1.0071460.json
JSON-LD: 24-1.0071460-ld.json
RDF/XML (Pretty): 24-1.0071460-rdf.xml
RDF/JSON: 24-1.0071460-rdf.json
Turtle: 24-1.0071460-turtle.txt
N-Triples: 24-1.0071460-rdf-ntriples.txt
Original Record: 24-1.0071460-source.json
Full Text
24-1.0071460-fulltext.txt
Citation
24-1.0071460.ris

Full Text

Design Evolution of Engineering Systems through Modeling, On-line Monitoring, and Evolutionary Optimization by Jesus Ramon Campos B.A.Sc., Universidad Panamericana 2001  A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF  MASTER OF APPLIED SCIENCE  in  THE FACULTY OF GRADUATE STUDIES (Mechanical Engineering)  THE UNIVERSITY OF BRITISH COLUMBIA (Vancouver)  October 2010  © Jesus Ramon Campos, 2010  Abstract This work develops a framework of design evolution to support and automate the generation and evaluation of optimal multi-domain engineering designs. It integrates a Machine Health Monitoring System (MHMS), a Model Generation System (MGS), a Design Expert System (DES) and an Evolutionary Design Optimization System (EDOS) for aiding engineers through the redesign of an existing engineering system. First, the MHMS, while maintaining the engineering system in an operable condition by anticipating possible failures, indicates subsystems for possible design improvement. Second, the MGS which provides the capability of system modeling through the Linear Graphs approach enables representation of the current version of the system that is being designed. Third, the integration of a DES to the evolutionary framework provides automatic incorporation of expert suggestions into the system. Fourth, the EDOS automatically evolves mechatronic designs represented by Linear Graphs using Genetic Programming (GP). In addition, the Mechatronic Design Quotient has been proposed as the fitness function of the evolutionary process, as it provides an intelligent way to represent the quality of design using various design indices. Also it has proven to be a good approach to meet design constraints and do not violate the feasibility of implementation. The experimental system (Iron Butcher) is an automated industrial fish processing machine that already has a MHMS. Development of the DES is an on-going project of other researchers in our laboratory. The present thesis primarily focuses on the modeling using Linear Graph and design optimization using Genetic Programming. An algorithm which integrates GPLAB, a MATLAB toolbox for Genetic Programming, with the powerful modeling and simulation tool of Simscape is developed. Both the scheme and the design alternatives generated by the algorithm are validated using computer simulations and physical experimentation on a realistic environment. For this purpose, a state-space model of the electromechanical conveying system of the Iron Butcher is developed using Linear Graph modeling. Results show that under normal operating conditions, the response of the machine satisfactorily matches that of the state-space model. Also it is found that the new mechatronic engineering designs automatically evolved through the developed design framework successfully met the design requirements.  ii  Table of Contents  Abstract ........................................................................................................................................... ii Table of Contents ........................................................................................................................... iii List of Tables .................................................................................................................................. v List of Figures ................................................................................................................................ vi Acknowledgements ........................................................................................................................ ix Chapter 1 Introduction ..................................................................................................................................... 1 1.1 Design of Engineering Systems .................................................................................... 1 1.2 Research Objectives ..................................................................................................... 3 1.3 Organization of the Thesis ............................................................................................ 4 Chapter 2 Literature Review............................................................................................................................ 5 2.1 Dynamic Modeling ....................................................................................................... 5 2.2 Genetic Programming ................................................................................................... 6 2.3 GP and BG Integration ................................................................................................. 7 2.4 Mechatronic Design Quotient ....................................................................................... 8 2.5 Machine Health Monitoring Systems ........................................................................... 9 2.6 Expert Systems ............................................................................................................. 9 2.7 Summary..................................................................................................................... 10 Chapter 3 Approach and Methodology ......................................................................................................... 12 3.1 Introduction ................................................................................................................ 12 3.2 Research Methodology ............................................................................................... 13 3.3 System Framework ..................................................................................................... 13 3.3.1 Machine Health Monitoring System ....................................................................... 14 3.3.2 Design Expert System ............................................................................................. 15 3.3.3 Evolutionary Design Optimization System ............................................................ 16 3.3.3.1 Linear Graphs ...................................................................................................... 17 3.3.3.2 State Space Models from Linear Graphs............................................................. 21 3.3.3.3 Genetic Programming ......................................................................................... 24 3.3.3.4 Mechatronic Design Quotient ............................................................................. 31 3.3.3.5 LG Evolution ....................................................................................................... 32 3.4 System Framework Algorithm Flowchart .................................................................. 42 3.5 Summary..................................................................................................................... 43 Chapter 4 Modeling and Implementation of the Experimental System ........................................................ 45 4.1 Experimental System: Iron Butcher ........................................................................... 45 4.2 IB – Conveying System Linear Graph Model ............................................................ 49 4.3 Simulation................................................................................................................... 56 4.4 Summary..................................................................................................................... 64 iii  Chapter 5 Results and Discussion ................................................................................................................. 65 5.1 Evolutionary Tool ....................................................................................................... 65 5.2 Evolution .................................................................................................................... 67 5.3 Design Fault Simulation ............................................................................................. 79 5.4 Summary..................................................................................................................... 85 Chapter 6 Conclusions ................................................................................................................................... 86 6.1 Main Contributions ..................................................................................................... 86 6.2 Future Directions ........................................................................................................ 87 References ..................................................................................................................................... 89 Appendix A EDOS Operation Manual .............................................................................................................. 93 A.1 Introduction ................................................................................................................ 93 A.2 Procedure .................................................................................................................... 94 A.3 Demo .......................................................................................................................... 97  iv  List of Tables Table 3.1: Through and across variables associated with some domains ................................. 18 Table 3.2: LG- GP Functions and Terminals………………………......................................... 38 Table 5.1: Parameters for automated design of a mass-spring-damper system..........................70 Table 5.2: Parameters for automated design of electromechanical conveying system.............. 82  v  List of Figures Figure 3.1: Design evolution through on-line monitoring framework……………………….... 14 Figure 3.2: Linear Graph branch of an element…………………….………………………….. 18 Figure 3.3: Linear Graph representation for electrical system elements (Single-port)…………19 Figure 3.4: Linear Graph representation for a T-type source and an A-type source…………... 20 Figure 3.5: Linear Graph representation for a Transformer………………………………........ 20 Figure 3.6: Linear Graph representation for a Gyrator………………………………...…..….. 21 Figure 3.7: Mass-spring-damper Linear Graph representation with 3 primary loops…............ 22 Figure 3.8: Parallel mechanical system and its BG and LG representation…………………… 23 Figure 3.9: Series electrical system and its BG and LG representation…………………….......24 Figure 3.10: Two parental GP trees…………………………………………………………..... 28 Figure 3.11: Two offspring produced by crossover…………………………………………... 28 Figure 3.12: Two identical parental GP trees………………………………………………...... 28 Figure 3.13: Two offspring produced by crossover between two identical parental GP trees… 29 Figure 3.14: GP tree selected for mutation…………………………………………………….. 29 Figure 3.15: Two different offspring GP trees after mutation…………………………….....… 29 Figure 3.16 General Add function structure…………………………………………………… 33 Figure 3.17 Original LG branch with one modifiable site…………………………………...… 34 Figure 3.18 New LG branch after Add_A function has been applied…………………..……… 34 Figure 3.19 New LG for the Mass or Inertia element………………………………………..… 35 Figure 3.20 Original LG branch with one modifiable site………………………………...…… 35 Figure 3.21 New LG branch after Add_t function has been applied………………………..…. 36 Figure 3.22 New LG branch after Add_g function has been applied……………………….…..36 Figure 3.23: Original LG branches with one modifiable site each………………………….…. 37 Figure 3.24: New LG model after Add_L function has been applied…………………….......... 37 Figure 3.25: Embryo example of a mechatronic LG model…………………….......……….... 40 Figure 3.26: Example of a GP tree for an arbitrary evolved LG model……………………...... 40 Figure 3.27: LG model generated by the example GP tree……………………………..………42 vi  Figure 3.28: System framework algorithm flowchart………………………………………….. 43 Figure 4.1: Iron Butcher………………………………………………………………………... 45 Figure 4.2 (a) and (b): IB conveying system and sliding mechanism...……………….………. 46 Figure 4.3 (a) and (b): Cutter blade assembly and solenoid valves….………………................ 46 Figure 4.4: Schematic diagram of the electro-hydraulic system……………………….……… 47 Figure 4.5 (a) and (b): Holding mechanism and cutting blade………………………………… 47 Figure 4.6: Iron Butcher zones: Feeding, Standby, Cutting and Inspection…………………… 48 Figure 4.7: Electromechanical conveying system LG……………………………………….... 49 Figure 4.8 (a) and (b): Driving subsystem: AC motor with and gearbox and VFD……............57 Figure 4.9: Simscape model of driving section........................................................................... 58 Figure 4.10 (a) and (b): Gearbox input and output signals ………….………………………… 59 Figure 4.11: Driving subsystem……………………………………………………………...… 59 Figure 4.12: SimMechanics model of driven section……………………………………..…… 60 Figure 4.13: Output position profile ...........………………………………………………….... 61 Figure 4.14 (a) and (b): Velocity and acceleration profile of the indexing pins......................... 61 Figure 4.15: Reaction torque and reaction force........………………………………….....……. 62 Figure 4.16: Location of linkages and joints....………………………………………………... 62 Figure 4.17: Snapshots for the position of every linkage during the simulation………………. 63 Figure 5.1: EDOS Algorithm Flowchart………………………………………………………. 66 Figure 5.2 (a) and (b): Mass-spring-damper system and corresponding LG………………...… 67 Figure 5.3: Linear Graph embryo model with two modifiable sites………………………….... 68 Figure 5.4: Simscape embryo and test fixture model.................................................................. 68 Figure 5.5 (a) and (b): Expected responses: Velocity and Position profiles ……………...…… 69 Figure 5.6: Pulse input force applied to the mass-spring-damper system……………………... 70 Figure 5.7 Best GP tree individual found for the mass-spring-damper system………..………. 71 Figure 5.8: Simscape model generated from the best GP tree individual found…………...….. 72 Figure 5.9: Fitness plot…………………………………………………………………....…… 72 Figure 5.10: Complexity plot…………………………………………………………….......… 73  vii  Figure 5.11 (a) and (b): Fitness and complexity plots at generation 10..................................… 74 Figure 5.12: Best GP tree individual found for the MSD system at generation 10..................... 75 Figure 5.13 (a): Fitness plot at generation 20.............................................................................. 75 Figure 5.13 (b): Complexity plot at generation 20...................................................................... 76 Figure 5.14: Best GP tree individual found for the MSD system at generation 20..................... 76 Figure 5.15: Simscape model generated from the best individual found at generation 20.......... 77 Figure 5.16: Velocity and Position profiles of best individual found at generation 20…........... 77 Figure 5.17 (a) and (b): Fitness and complexity plot at generation 40……………………….... 78 Figure 5.18: Best GP tree individual found for the MSD system at generation 40..................... 79 Figure 5.19: Linear Graph embryo model with two modifiable sites………………………...... 80 Figure 5.20: Simscape embryo and test fixture model…...……………………………………. 81 Figure 5.21: Best GP tree individual found for the electromechanical conveying system…….. 83 Figure 5.22: Fitness plot……………………………………………………………………...... 84 Figure 5.23: Complexity plot………………………………………………………………....... 84 Figure A.1: Simscape embryo and test fixture model..................................................................94 Figure A.2: Fitness plot after 70 generations............................................................................... 98 Figure A.3: Complexity plot after 70 generations....................................................................... 98 Figure A.4: Modified GLAB tree found after 70 generations..................................................... 99  viii  Acknowledgements I would like to thank my supervisor Professor Dr. Clarence W. de Silva for his invaluable knowledge, guidance, patience and support throughout the preparation of this thesis and the successful completion of my Master’s degree studies at UBC. Additionally, the financial support provided by him in the form of a Research Assistantship and the necessary equipment and laboratory facilities to perform the experiments carried out in this thesis are greatly appreciated. Thanks to Professor Dr. Lalith Gamage of the Sri Lanka Institute of Information Technology (a former doctoral student in our laboratory) for his constructive supervision, valuable comments and mentoring in this research. Special thank goes to all my colleagues and friends at the Industrial Automation Laboratory (IAL) for their friendship and kind assistance in the last two years, notably Guan-Lu, Srini, Roland, Tahir, Benham, Gamini, Arun, Edward, Ying and Dr. Zheng. I would also like to thank Professor Dr. Saeed Behbahani (a former doctoral student in our laboratory) for his helpful advice and knowledgeable experience. I would also like to acknowledge the sources of financial support for this research, namely: Banco de Mexico (FIDERH), UBC tuition fee award and the research grants held by Professor de Silva: particularly his Tier 1 Canada Research Chair in Mechatronics and Automation (for which the research in the present thesis had been proposed in 2008 as a constituent research objective), Canada Foundation for Innovation (CFI), and the Natural Sciences and Engineering Research Council (NSERC) of Canada. I thank my beloved family; particularly my deepest thankfulness goes to my wife, Laura, for her encouragement to strive for excellence, for providing all the support and understanding that were needed to achieve it and for delighting me with my beautiful daughter Maria. All the credit and the accomplishments of this thesis belong to her. Gracias Pintiti.  ix  Chapter 1 Introduction 1.1 Design of Engineering Systems In many situations of current practice, engineering products are designed in an empirical, instinctive and iterative manner. However, in order to design competitive and complex products, a systematic approach must be applied. Design may be viewed as an interplay between what we want to achieve and how we want to achieve it [1]. However, in practice, going from what to how, continues to be a difficult process which is full of conflicts, tradeoffs and risks. Successful designs must satisfy many opposing practical constraints. For example, there may be insufficient space for a desired function unless costly development is undertaken, or space is occupied from another function, affecting quality, fabrication yields, or ease of assembly. Engineering design could be defined as a multi-step process of specifying a realizable description of an artifact (in particular for this research work, artifact refers to industrial machinery). Converting a concept into a complex, multi-technology system involves many steps of refinement or “evolution.” The need for design optimization with respect to a complex objective function, in the present context, makes the design problem further challenging. In recent years, immense progress has been achieved as the design process for product development has become rational and systematic methodology. The design process is well organized into several specific stages: System Requirements, Conceptual Design, Preliminary Design, Detailed Design, Fabrication, Integration, and Testing. For every design step and its required iteration, a great deal of analysis and thorough investigation of fundamental physical processes are needed. Also it might be necessary to carry out experimental verifications, complex compromises between conflicting elements, and foremost, difficult decisions have to be made throughout. Frequently, the original concept may not function as planned, and additional work may be required, affecting the schedule or requiring a change in specifications; with all the implications this might create.  1  Even with the application of the best engineering design practices, numerous design failures of engineering systems occur on a daily basis. Satisfying the different and conflicting needs of function, manufacturing, use, and support not only requires expert knowledge and skills, but also demands a systematic approach and efficient tools to assist in the process. It is clear to understand why engineering design is a crucial component of the process of industrial product realization and engineering systems development. Several procedures and techniques have emerged to support and improve many phases of the design process. Catalogs, handbooks and company guidelines have been developed to collect and generalize the design knowledge base; but in fact such knowledge is so extensive that, up to date, much of the advances have only been able to focus in some specific domains or on the final phases of the design—the detailed or parametric design. This situation seems logical as, in the initial phases of design, much of the work is done at a high level of abstraction, and to a large extent the information is incomplete and ambiguous. Nevertheless, around 60% to 70% of the design decisions and most innovation are determined during the first stages of the design process—the conceptual design [2]. Some examples of available tools are: rapid physical prototyping systems, solid modeling systems and Computer Aided systems. There is an extended use of Computer-Aided Design (CAD) and Computer-Aided Engineering (CAE) systems nowadays. Recent developments in Expert Systems (ES) have triggered the idea of using them in the challenging process of engineering system design. The present research proposes that along with ES, Machine Health Monitoring Systems (MHMS) could be used to provide valuable information regarding the design status and regions of design weakness. While sensing the performance of an operational prototype or an already commissioned engineering design, it can also be configured to detect existing design failures and gather enough evidence to determine possible areas requiring a redesign. The goal of any industry is to increase its productivity. With this in mind, achievements in the design process research can be used to reduce the lead-time of product development and facilitate the conceptual design process. An effective engineering design process and its automation, will improve quality, reduce costs, guarantee ease of manufacturing, speed up the time to market, and also provide better products that can satisfy customer/market needs. 2  A novel and powerful approach to assist the early stages of mechatronic systems design is developed in the present thesis. Automated search of the design space for an optimum solution, based on Genetic Programming (GP) and Linear Graphs (LG), addresses the time consuming and difficult process of innovation, where technical expertise and human judgment prevail.  1.2 Research Objectives The goal of this thesis is to develop a system framework that uses on-line monitoring, lineargraph modeling, design expert systems, and evolutionary optimization for automated design evolution of existing engineering/mechatronic systems. The original concept of this integrated system framework was proposed by Clarence de Silva in 2008, in his research proposal for a Tier 1 Canada Research Chair at the University of British Columbia. Application of the developed methodology to a representative complex industrial machine and evaluation the resulting performance improvement in such a mechatronic system are also associated objectives of the present research. The system framework will integrate several technologies and systems capable of generating design alternatives, evaluate such alternatives, select the best candidate and provide an insight into why a particular design was chosen. The developed system framework will be implemented and tested on the industrial fish cutting machine (Iron Butcher), which has a complex engineering design and is available in the Industrial Automation Laboratory of the University of British Columbia. The most effective designs are acts of creativity that rank with those in the fine arts [3]. Trying to emulate such innovative and intelligent processes are not within the scope of this work, but to provide a tool to quickly and efficiently explore the vast space of possibilities and guide future research on design.  3  1.3 Organization of the Thesis The thesis is divided into 6 chapters. The present chapter discussed the motivation for a framework that is capable of assisting the creative phases of the engineering design process. Objectives and challenges of the research have been outlined in this Chapter. Chapter 2 provides a detailed literature review highlighting the relevant work in dynamic modeling techniques, evolutionary computing and particularly Genetic Programming (GP), and the integration of both dynamic modeling and GP for the design evolution of engineering systems. Previous work related to Machine Health Monitoring Systems implemented on the Iron Butcher is summarized. Finally, a description of Expert Systems is provided along with references. Chapter 3 describes the proposed system framework along with its main subsystems. The integration of a Machine Health Monitoring System, a Model Generation System, a Design Expert System and an Evolutionary Design Optimization System is discussed. The foundation (attributes and characteristics) of Linear Graph (LG) modeling as well as a brief introduction to Genetic Programming are presented as pertinent background. Such important concepts as evolution of fitness and embryo are discussed in detail in this chapter. The reasoning behind the selection of Linear Graph modeling is described. The general approach and methodology followed in the thesis are also described in this chapter. Chapter 4 presents the experimental setup, the industrial Iron Butcher, used in the present research. A Linear Graph model for the fish cutting machine and the state space model derived from it are presented in this chapter. The model response is compared against experimental results and verified through computer simulation. Chapter 5 summarizes the results obtained from computer simulation and experimentation on the test bed. The evolutionary program algorithm is presented and case studies are evaluated and discussed. Chapter 6 concludes this work by providing a summary of the presented research and the main contributions made. Suggestions for future research topics are also presented in this chapter.  4  Chapter 2 Literature Review 2.1 Dynamic Modeling Analytical dynamic models have proven to be a powerful way to represent complex engineering systems. They have also been helpful to gain comprehension of the physical and mathematical theory that describes the relationships and interactions between every subsystem/component within a dynamic system. They provide useful means to represent the exchange of energy between elements and manipulate their response variables, which are, in principle, directly measurable physical quantities. An effective modeling tool that has been developed at the Massachusetts Institute of Technology, which can assist engineers in developing a state space model (system dynamical equations), is Linear Graph (LG) modeling. Linear Graphs is a graphical tool for developing and representing lumped-parameter models of dynamic systems. A good description of the underlying methodologies are provided by de Silva [4, 5]. Mechatronic systems (mechanical, electrical, thermal, fluid or multi-domain systems) are examples of dynamic systems which require a thorough understanding of their physical principles and behavior. Such understanding of the systems allows engineers to design, modify, control, and operate them for useful purposes. The graph theory was proposed by Euler in 1736, but it was only in 1950’s and 1960’s that the general modeling techniques for multi-domain engineering systems were developed [6]. In 1955 Trent was the first to propose extending Kirchhoff’s studies on electrical networks to other physical domains [7]. Work by Roe [8] (1967) and Blackwell [9] (1968) provided unified procedures for analysis and design of physical systems such as very large electrical networks. Linear Graphs or Graph-Theoretic Modeling (GTM), Physical Networks and Bond Graphs (BG) are examples of techniques which share the common theory. Researchers have applied LG theory to spatial, flexible, and interconnected multi-bodies and symbolic computing [10]. Also the use of individual subsystems to build more complex system models has been evaluated and convenient computer software has been developed for constructing LG, BG and Physical Networks models. Such technical computing software has extended the benefits to various disciplines other than engineering (e.g., bioinformatics and 5  econometrics) thanks to the automatic formulation and solution of differential and algebraic equations which define the modeled system. Chapter 3 will provide an overview of LG principles and the unified and systematic approach for modeling multi-domain dynamic systems. A good reference for modeling and its application in control systems is the book by de Silva on Modeling and Control of Engineering Systems [11]. In particular, it provides a comprehensive chapter on the use of LG representation and the systematic development of an analytical model for mechanical, electrical, fluid and thermal systems.  2.2 Genetic Programming Genetic Programming (GP) is a method of automatically creating computer programs inspired by biological evolution. The techniques based on natural means of evolution are classified as evolutionary computing. Genetic Algorithms (GA) developed by John Holland [12] in 1975 and Genetic Programming invented by Koza [13] in 1992 are two representative techniques of evolutionary computing. While in GA, solutions are represented by strings of numbers or symbols, GP solutions are executable programs (e.g., trees) that, without being explicitly programmed to solve a problem, they are able to do so [13]. Both GA and GP are adaptive search mechanisms that are useful for system design. Several studies have proposed methods of using GA and GP to automatically design and optimize electrical circuits and mechanical structures [14]. In the past years, much progress has been made by Koza et al in this regard. They have demonstrated the capabilities of GP in the automatic synthesis (both topology and sizing) of various electrical circuits including filters, operational amplifiers and controllers [15]. Other applications of GP include: symbolic regression problems, time-optimal control and image compression. Attractive features and benefits of the GP technique as discussed later in this thesis include: global optimization without the risk of trapping in a local optimum, non-analytic optimization, biological inspiration, the variety of problems that can be solved, the problem independence and the ability to reuse previously generated code. 6  Genetic Programming technique comprises the following main steps: It starts by randomly generating an initial population of computer programs using the functions and terminals (variables and constants) of the problem. Once, the initial generation has been created, it evaluates every individual program of the population and calculates a fitness value depending on its performance on solving the problem. The best individuals will be selected and several architecture altering operations such as crossover and mutation will be applied on them in order to obtain new computer programs (individuals). The process of evaluation of individuals and the selection and creation of new individuals is repeated until the termination criteria have been satisfied. Finally, the best individual created in any of the generations will be able to solve (or approximately solve) the given problem, in an optimal manner as dictated by a fitness function (performance index). Chapter 3 will expand further the main components, principal operations and parameter characteristics of GP. Extensive information regarding the subject could be found in Karray and de Silva’s book [16] and Koza’s book [17].  2.3 GP and BG Integration GP has been successfully applied to the automated synthesis (both sizing and topology) of analog electrical circuits [18] by mapping the structures obtained in GP with the graphs that represent associated complex circuits. One of the limitations of Koza’s work is that it has been performed only in one domain. Methodology has been developed to extend this approach to other domains. Bond Graphs (BG) is a multi-domain modeling tool for representing dynamic systems. Inspired by Koza’s work, Seo [19] et al. proposed the integration of Bond Graph modeling with Genetic Programming to explore the design space not only in electrical domain but also in multi-domain mechatronic systems which include active and passive components. The drawback of their work is that they only considered the structural part of the system and did not make a proper evaluation of the designs for implementation. Fan [20] et al. in 2001 proposed a tool called GPBG for automated synthesis of a variety of dynamic systems. The GPBG tool uses Genetic Programming to generate trees that specify operations for construction of a Bond Graph. 7  Behbahani and de Silva [21] have also integrated Genetic Programming and Bond Graphs for the system identification of a mechatronic system. The technique has been applied to a nonlinear electro-hydraulic manipulator. The authors also proposed additional construction functions to account for some nonlinearities of a mechatronic system. Previous work has demonstrated the powerful search ability of Genetic Programming and the benefits of the integration of a multi-domain modeling tool. In order to assist in the automated synthesis of mechatronic systems, however, it is required to develop two main components: an embryo model from which all proposed solutions will be evolved and a fitness function which is a performance function for optimization, which can evaluate the performance of the candidate solutions.  2.4 Mechatronic Design Quotient In the early 2000s, de Silva proposed the concept of Mechatronic Design Quotient (MDQ), which integrates a group of indices to represent the optimality of a multi-domain integrated design problem [22]. Subsequently, in 2005 Behbahani and de Silva [23] developed a tool for automated system identification that can be used in a variety of problems, provided that a suitable evaluation scheme can be established for that problem. The authors incorporated a fitness evaluation method based on MDQ, indicating the degree of closeness of the response of each model to the actual behavior of the system. Since then the concept of MDQ has been applied in the integrated design of a variety of applications [24, 25, 26]. Considering n design criteria and r design constraints, may be expressed as:     r  MDQ ( x )  H s1 ( x ), s2 ( x ),..., sn ( x ), V g i ( x )  (2. 1)  i 1  were si(x) is the partial score from the ith criterion showing its degree of satisfaction, H is the aggregation operator, and V[gi (x)] is a function indicating whether a constraint has been fulfilled (1 satisfied, 0 otherwise). In the design process, requirement specifications have to be compared against evaluating criteria in order to be able to select the best design candidates. Hence, MDQ can facilitate the designer’s selection of conceptual alternatives based on the degree of satisfaction of the chosen criteria. 8  2.5 Machine Health Monitoring Systems Fault detection and diagnosis have been an important topic for industrial systems. Severe damage can occur from failure of engineering systems and the effect of such failure could be serious. In this sense, many different approaches have assisted in monitoring modern complex engineering systems. Monitoring the health of complex mechatronic systems provides information that can be used to perform actions to prevent or correct failures. In the case of the Iron Butcher—the industrial fish cutting machine available at the Industrial Automation Laboratory—several Machine Health Monitoring Systems have been developed to accurately detect machine faults. In 2008, Lang and de Silva [27] developed a monitoring scheme through neuro-fuzzy sensor fusion for the Iron Butcher. They were able to classify three types of faults with high accuracy using an accelerometer, microphone and a CCD camera. Raman and de Silva [28] and Razavi and de Silva [29] developed two other techniques for condition monitoring of the Iron Butcher. Raman and de Silva [28] implemented a multisensorbased condition monitoring scheme using wavelet packets to process acquired data from the sensors (accelerometers and microphones), evolutionary computing to optimize vector selection and neural networks to classify the faults. They were able to determine 6 different machine defects. Moreover, the system is capable of determining to which specific subsystem in the Iron Butcher the fault is related. Razavi and de Silva [29] implemented a model-based online condition monitoring scheme using Unscented Kalman Filter on the hydraulic subsystem of the Iron Butcher. They were able to detect four common hydraulic faults (hydraulic cylinder leakage and dry friction build-up).  2.6 Expert Systems Expert Systems (ES) are a branch of applied artificial intelligence (AI) which emulate the behavior of a human expert or a consultant of a specified domain and solve or assist to solve difficult problems within their domain [30]. Expert Systems have been used to assist in diagnostics and monitoring of industrial machinery [31]. Present research explores the possibility 9  of incorporating Expert Systems in the design process as they are capable of incorporating the “expertise” of the design specialist. A thorough literature survey conducted by Liao [32] detailed Expert Systems methodologies and its applications. A summary of the foundations of ES and different techniques used to represent knowledge could be found in [30, 33]. Some of the available techniques include: rule-based systems, first-order predicate calculus, object-oriented systems and attribute grammar systems. In the case of rule-based systems, human expertise is represented in the form of rules (e.g., IFTHEN-ELSE). Such human expertise and the decision rules contained in the knowledge-base are usually integrated with 3 other main subsystems: an inference engine, a working memory and a user interface. The inference engine can update data in the working memory and determines which rules are fired, its sequence and also functions as a conflict solver. The user interface serves as a channel to obtain more information from the users or to present an insight of how the result was achieved. Some work included in Liao’s ES survey are the design of an industrial fermentation plant, the cold forging process and designing of a microprocessor-based systems.  2.7 Summary A historical overview and the theoretical foundation of Linear Graph modeling has been presented in this chapter. LG is a useful modeling tool for developing the analytical models of multi-domain engineering systems. Genetic Programming, although being an open-ended search technique, has been effective in complex and non-analytic optimization and particularly in generating design alternatives with respect to a performance function because it is a well organized procedure. Furthermore GP is suitable for large-scale, nonlinear multimodal problems, such as design improvement. The key feature of GP is that it allows the design space to be explored until the desired design, defined by the fitness function (performance function), is achieved. The integration of Genetic Programming and a multi-domain modeling tool has offered interesting possibilities for the automation of the early stages of the design process. Special importance has been attributed to the embryo model and the fitness calculation method. For this 10  purpose, the benefits of using the Mechatronic Design Quotient—MDQ have been outlined. A multi-criteria index of this type maybe used as the fitness measure for the Genetic Programming tool, to guide the design evolutionary process. Machine Health Monitoring Systems implemented on the Iron Butcher have been presented. Finally, characteristics of Expert Systems have been outlined and references of the application of these technologies in aiding the design process have been included.  11  Chapter 3 Approach and Methodology 3.1 Introduction Engineering design is a fundamental aspect of industrial development. Benefits of properly designing products (simple or complex) based on a systematic methodology, by far exceed those related to monitoring, control, and maintenance. The costs and repercussions of design failures also speak for the value of good design. Among other reasons, this is why it is more frequent to see the application of advanced practices on design, implementation of standard procedures that integrate multi-disciplinary teams and the usage of tools such as CAD/CAE that minimize development time and costs associated with the design process. Unfortunately, many software tools in engineering design and the progress achieved in the past have focused primarily on the final phases of the design and not on the conceptual stages. This could be explained due to the fact that innovation in the design process is based on the capabilities of the human expert, which are difficult to assess and control quantitatively. Furthermore, design procedures and tools that address multi-domain integrated design and multiobjective optimal design are virtually not available. Tools that can support the automatic and “creative” generation of design alternatives in the conceptual phase, evaluate the compliance of the performance requirements and asses the feasibility of implementation or even its costs, will provide unquantifiable benefits to the design process as they will stimulate the creation of new engineering systems. Moreover, existing engineering systems that are functional and operational will benefit from the improvements or redesign suggestions by such tools. In the subsequent sections of the present chapter the research methodology followed in this thesis is presented, for the optimal design evolution of multi-domain (mechatronic) systems. A detailed description of the system framework proposed to assist in the design evolution stages as well as in the redesign of existing systems is presented. A summary of the tools: LG, GP and MDQ are briefly described in order to provide adequate background for the proposed methodology. Finally, reasons for using LG modeling and its systematic procedure are also justified in this chapter. 12  3.2 Research Methodology The methodology pursued in the development of the present research comprises the following steps:   A thorough literature review to further define the problem and understand the state of the art in this discipline.    Development of a method to address the research problem.    Program the developed method    Test the developed method and evaluate its performance through simulation and experimentation.    Discuss the performance of the developed methodology.  3.3 System Framework To address the complex problem presented in this thesis, several tools and methodologies are developed and integrated in a complementary manner to provide innovative design alternatives. Such design proposals will be evaluated (as done by expert engineers) and the selected options will be able to satisfy the design requirements (for new engineering systems) or improve the system performance (for already operational engineering systems). Figure 3.1 shows a graphical representation of the proposed approach.  13  Figure 3.1: Design evolution framework through on-line monitoring.  The conceptual framework consists of 4 main systems: a Machine Health Monitoring System (MHMS), a Design Expert System (DES), a Multi-Domain Model Generation System (MGS), and an Evolutionary Design Optimization System (EDOS). The following sections discuss these subsystems in more detail as well as the interrelation between them.  3.3.1  Machine Health Monitoring System  As discussed in Section 2.5, Machine Health Monitoring Systems have traditionally being used for fault detection and diagnosis. In order to reduce operational and maintenance costs, increase the equipment performance and improve its reliability, monitoring systems acquire data from different combinations of sensors and observe the current state of an engineering system. In the scheme proposed here, besides maintaining the engineering system in an operable condition, by anticipating possible failures, the MHMS is also responsible for providing valuable data to the Design Expert System (DES). This information will be processed by the DES in order to select locations of a possible design weakness which may lead to a fault or a malfunction. Hence, the information from monitored signals can be used to indicate to some extent where and what type of design improvements should be studied. For example, once a fault has been 14  detected in a specific region (subsystem or component) of the engineering system, the MHMS will trigger the Design Expert System so that it can evaluate the characteristics of the fault, classify it and evaluate if such a fault is related to a system underperformance with respect to speed, efficiency or power consumption. In general, for the proposed framework the MHMS has to accomplish two main objectives:   Monitor and diagnose failures within a complex engineering system,    Indicate specific areas or components related to faults which could be used by the evolutionary system for design improvement.  In fact, the MHMS implemented by Raman and de Silva [28] on the Iron Butcher can classify the machine faults with high accuracy. Furthermore, it is capable of suggesting subsystems related to a component failure (e.g., a cylinder leakage corresponds to a hydraulic system failure, the wear in a bearing relates to a conveying system failure).  3.3.2  Design Expert System  Once the Machine Health Monitoring System has acquired data related to a specific failure, if an expert engineer reviews such data and detects trends in the degradation of performance or recurrence of certain types of failures, it will be able to distinguish whether such failures are due to a bad design (e.g., fatigue failure, incorrect overload specification, etc.) or just wear, lack of preventive maintenance or even a bad original installation. In this research, an important function of the Design Expert System is to assist in the automated classification between an engineering system malfunctioning (due to maintenance, operational or installation errors) and an engineering design error, and to emulate human expertise in determining the characteristics of a fault. As another function, the DES will mimic the role of human experts for general supervision and for intelligent decisions within the automation of the design process. Furthermore, it can assist in determining the sites for design improvement and separating feasible design changes with infeasible design changes. In order to correctly assess the problem, expert engineers will use prior experience, theoretical and organized knowledge, and of course, common sense gained over time. The expert knowledge 15  in a particular domain may normally be represented in the form of heuristic knowledge (rules of thumb). Once the expert knowledge is captured (Knowledge Engineering), typically in the form of IF-THEN rules, it will be transferred to a Knowledge Base (KB) along with design data contained in catalogs or handbooks. The Working Memory (WM) will contain the situation-specific information. This means that for every problem, particular details will be stored in the WM, such as the design specifications (tolerances, requisites and restrictions) as well as the intermediate results and facts of the problem being studied. One of the facts of the problem is in effect the on-line health provided (and routinely updated) by the MHMS. With the rules of the system (descriptions, relationships and procedures) stored in the KB and the facts of the problem saved in the WM, the Inference Engine (a program within the Expert System) will decide what set of rules should be applied and in which order should they be executed to minimize conflicts. For cases of incomplete information, DES can prompt the user or domain experts for missing values or data. An interesting aspect of the DES is its capability to answer questions and provide explanations of its procedures or reasoning by means of a user interface. This capability is very useful for the user as it helps to understand how it worked or in determining whether the DES reasoning was correct. In summary, the DES will infer system malfunctions from sensed symptom data provided by the MHMS and study the observed data over a period of time. It will warn against potential flaws and determine whether the failure corresponds to a design error. Finally, in conjunction with the MHMS, the DES will be able to identify subsystems or sites within the engineering system suitable for design improvement or related to the original cause of failure. Another activity performed by DES corresponds to feasibility evaluation, but this topic will be discussed in more detail in the next section.  3.3.3  Evolutionary Design Optimization System  The Evolutionary Design Optimization System (EDOS) is a key component of the proposed system framework. The EDOS may be considered as the primary creative part of the system. It is 16  responsible for the innovation in the automated design evolution process. This system consists of two primary subsystems: Model Generation System and Evolutionary Design Optimization System. The concept design evolution was proposed be de Silva in 2008 in his research proposal for Canada research Chair. It uses some concepts of model optimization through the GPBG scheme presented by Seo et al. [19], some concepts of Mechatronic Design Quotient (MDQ) [22, 23], and liner graph modeling. The overall purpose of the Evolutionary Design Optimization System is to develop configurations that will satisfy given constraints, such as the optimal selection of components and its parameters for a predetermined response. These configurations are, in fact, design alternatives that could address the requirements for a new engineering concept or improve the actual performance of a functional system. The first step is to have a representation of the engineering system. In this approach a Linear Graph (LG) model, will be employed to represent an engineering system and also will be used for analysis and simulation. To provide fundamental understanding of the capabilities of the developed multi-domain modeling tool the following section provides a brief introduction to LG and its structures. Section 3.3.3.2 explains the procedure to obtain an analytical model from the LG model. It will also provide the rationale for using LG modeling. The remaining sections of the chapter describe the GP tool, the MDQ, and the EDOS algorithm flowchart. Finally the LG evolution procedure will be introduced with an example of a Mechatronic system evolution.  3.3.3.1  Linear Graphs  Linear Graphs use interconnected line segments called branches to represent ideal lumpedparameter systems based on the conservation of power (see de Silva [4, 5, 11]). Each branch has an ordered pair of variables associated with it: a through variable (f) and an across variable (v). The product of the two variables in every branch is the power variable. In general, the relationship between f and v is nonlinear. Table 3.1 presents the pair of variables associated with Electrical, Mechanical, Hydraulic/Pneumatic and Thermal domains.  17  Table 3.1: Through and across variables associated with some domains. Domain  Through variable  Across variable  Electrical  Current  Voltage  Mechanical  Force / Torque  Velocity / Angular Velocity  Hydraulic / Pneumatic  Flow Rate  Pressure  Thermal  Heat Transfer  Temperature  In LG, every branch is oriented and they are connected at nodes (where two or more branches meet). A branch has one end called a point of action and the other end is called the point of reference. An arrowhead, always pointing toward the point of reference, is used to describe the positive direction of flow as shown in Figure 3.2. This configuration reflects the physics of the system.  Figure 3.2: Linear Graph branch of an element. The value of the through variable (f) transmitted through an element does not change. However, in the same element, the absolute value of the corresponding across variable (v) does change “across” the element, and the value at the point of action relative to that at the point of reference is taken as the value of the across variable v. In LG there are two main types of elements: Single-Port Elements and Two-Port Elements. The classification of each type of element is related to the number of branches that are used to represent them.  The following sections explain in more detail the elements and their  classification. Single-Port Elements A port is defined as a place where energy/power is exchanged with the environment (input or output of energy/power). Hence the Single-Port Elements are represented by a single branch (line segment) and they have a single power variable. 18  Three passive Single-Port Elements are required to model systems: Across (A-Type) elements, Through (T-Type) elements, and Damping (D-Type) elements. Passive elements do not contain sources of power. There are analogous representations used for the mechanical, electrical, fluid and thermal elements. Figure 3.3 shows the Linear Graph representation of the passive electrical elements.  Figure 3.3: Linear Graph representation for electrical system elements (Single-port). A second type of Single-Port Element is required to represent the system inputs. Such inputs are represented by the source elements, which may be classified as T-Type Source (e.g., Current Source, Force Source) and A-Type Source (e.g., Voltage Source, Velocity Source). For these elements, the independent variable in the source will be unaffected by the dynamics of the system to which the source is connected; but the dependent variable will change. Figure 3.4 shows the representation of the two types of source elements.  19  Figure 3.4: Linear Graph representation of a T-type source and an A-type source.  Two-Port Elements The Two-Port Elements represent elements that have two energy ports in which power is conserved. The transformer and the gyrator are the two elements required to model systems. The transformer element is an ideal element where the across and through variables associated with the two branches change without dissipating or storing energy. Figure 3.5 shows the Linear Graph representation of a transformer where: vi and fi are the across and through variables of the input port, vo and fo are the across and through variables of the output port and r is the transformation ratio.  Figure 3.5: Linear Graph representation of a Transformer.  20  Examples of transformer elements are a pair of gear wheels (mechanical rotatory domain), a lever and a pulley (mechanical translatory domain) or an electrical transformer (electrical domain). The gyrator element represents an ideal gyroscope or spinning top where other small motions do not affect the rotation (high angular speed) of its own axis. Figure 3.6 shows the Linear Graph representation of the gyrator where: vi and fi are the across and through variables of the gyrator input port, vo and fo are the across and through variables of the gyrator output port and M is the gyroscope parameter.  Figure 3.6: Linear Graph representation of a Gyrator.  3.3.3.2  State Space Models from Linear Graphs  This section provides a description of the systematic procedure that is used to obtain an analytical model from a Linear Graph. Three types of equations have to be established from the linear graph:   Constitutive (physical) equations    Compatibility (or loop) equations    Continuity (or node) equations 21  The Constitutive equations correspond to the “physical” equations of all the branches (elements) that are not sources (inputs). The Compatibility equations correspond to the independent loops in the Linear Graph. A loop is a closed path formed by at least two branches. Independent loops refer to a minimal set of loops from which any other loop in the LG model could be formed (See Fig. 3.7).  Figure 3.7: Mass-spring-damper Linear Graph representation with 3 primary loops. The Compatibility equations are obtained by summing all the across variables along the branches that form the loop and equating it to zero. A sign convention dictates that while following the loop, the across variable in each branch is considered positive if it is in the direction of the arrow, and negative otherwise. For the Continuity equations, we have to equate the sum of all the through variables at every node to zero. The reason for this is related to the Current balance (Kirchhoff’s current law) in electrical systems or the equilibrium equation (Newton’s third law) in mechanical systems. Once we obtain the Constitutive, Compatibility and Continuity equations the systematic methodology to obtain the state space model comprises the following steps: 1. Select the state variables for the independent elements: across variables for A-type elements and trough variables for T-type elements. 2. Write the state space shell. The state space shell is formed by the constitutive equations of the independent energy storage elements. 22  3. Write the remaining constitutive equations for the other elements. 4. Write the continuity equations for the primary nodes. 5. Write the compatibility equations for the primary loops. 6. Finally, eliminate all the other variables in the state space shell which are not state variables or input variables, using the node, loop and remaining constitutive equations. An illustrative example given in Section 4.3 describes this process. As clear from this example, the methodology is easily implementable in a computer script and provides a good justification for automating the process. LG as a powerful multi-domain modeling technique will be used to represent the engineering system. The justifications for using the LG approach are: 1. The systematic methodology described in Section 3.3.3.2 is used to obtain the state space model from any LG model. 2. Mechatronic systems are generally modeled either by BG or LG. LG has a realistic representation of the physical structure compared to other mechatronic modeling methods. 3. LG provides a unified approach to model multi-domain systems. Figure 3.8 shows the BG and LG representations for a parallel Spring-Mass-Damper mechanical system and Figure 3.9 shows a series configuration of an electrical system and its representation in both BG and LG.  Figure 3.8: Parallel mechanical system and its BG and LG representation.  23  Figure 3.9: Series electrical system and its BG and LG representation. While the same BG model represents a parallel mechanical system and a series electrical system, it is clear to see that a unique parallel LG model represents a parallel mechanical system, and a unique series LG model represents a series electrical system. This characteristic of LG is very helpful for design engineers as it can provide an insight of an engineering system. 4. BG adds a computational burden to the framework, as it requires a causality check to verify every model. LG, however, by its nature, will not have a causality conflict. Once the LG model has been generated, either for developing an engineering prototype in the conceptual phase or to model an operational engineering system, the model can be validated by simulation and/or experimentation. Actual parameters may be obtained by system identification, experimental modeling or from manufacturer’s documentation. Using actual parameters will guarantee that the model performs according to the real system, and every modification in its configuration will impact on the desired performance.  3.3.3.3  Genetic Programming  On-line health information provided by the MHMS is used by the design expert system (DES) to determine areas or components that may need (and are suitable for) a design improvement. The next step is to identify the corresponding sections in the LG model as the regions of the engineering system selected by the DES. These LG sections will become the modifiable sites where evolutionary process will take place. Note that during the evolutionary process, GP by its nature will also select modifiable sites in its normal course of action. However, MHMS in 24  conjunction with DES are able to either allow or overrule any modifications that are independently considered by GP. In this sense what is done is a supervised modification. The next section will provide an overview of the GP structures, main operations, fitness, embryo model and control parameters used by the EDOS.  Structures The structures that we want to evolve in GP are LG models (or its representation) capable of solving a specified design problem. In order to accomplish the solution, the user has to define Nfunc functions in the function set F = {f1, f2,…, fNfunc} and Nterm terminals in the terminal set T = {t1, t2,…, tNterm} that, when combined in to a set C C=FT will provide all the required ingredients to recursively create LG models. Such possible combination of functions and terminals becomes the search space for GP. Each function requires a specified number of arguments, which is called arity. On the other hand, terminals could be considered as functions that have arity of 0; this means they do not require any argument to be evaluated. The functions and terminals have to satisfy two important conditions in order for GP to obtain the expected results.   Closure – This property states that each of the functions defined in the function set has to be able to incorporate, as its arguments, any data resulting from the evaluation of other functions or terminals defined in the combined set C. This property is especially critical, as will be seen later in the thesis, because altering operations have to be applied on the  25  structures and there is no possibility of matching functions with predetermined terminals as its arguments. The possibility of randomly mixing the functions and terminals in set C is one of the benefits of GP, as it simultaneously creates hundreds or thousands of individuals in the search space which may be capable of solving the specified problem.   Sufficiency – This property states that the combination of sets, the function and the terminal set, have to be defined by the user in such way that they should be able to generate a solution to the problem.  In some GP problems, this property may be trivially satisfied, but in some other applications the sufficiency of the set C could surpass the user expertise. A way to overcome this problem is the inclusion of functions and terminals that may be useful in achieving a solution. These potentially useful components are called extraneous functions and terminals. In some cases they could degrade the performance of the GP and sometimes enhance the performance of the individuals, depending on the unknown sufficiency of the set C to solve the problem. Fitness The purpose of the fitness measure is to specify what the user wants to achieve. Hence, for every individual program, the fitness calculation must reflect how well its output resembles the desired output. Since this fitness calculation will guide the evolutionary process and it is performed on every individual generated by the GP, it is a critical component of the technique. In the design and evolution of mechatronic systems, it is appropriate to use the Mechatronic Design Quotient (MDQ) as proposed by de Silva in 2004 [22] as the fitness function for optimization. There are several alternatives to calculate the fitness; some are explicit while others are implicit. The fitness measure used in the application described in Chapter 4 was named by Koza as raw fitness. It consists of defining the raw fitness r(i,t) of the individual i at any generational step t as the sum of the absolute values of the difference (error) between the desired output C(j) (objective value for fitness case j) and the evaluated response S(i,j) (value i for fitness case j in Ne cases). Ne  r (i, t )   S (i, j )  C ( j )  (3. 1)  j 1  26  In the raw fitness calculation, it is clear that a smaller fitness measure is better; a fitness measure of 0 will indicate a perfect match with the target. In nature the individuals in a generation have better chances of survival (and therefore, in transmitting their characteristics to future generations) if their fitness is higher. In this sense, a convenient way of expressing the fitness measure is using the standardize fitness s(i,t), given by s (i, t )  rmax  r (i, t )  (3. 2)  where rmax denotes the maximum possible value of raw fitness to be computed. Two other methods that may be used in GP for calculating the fitness are the adjusted fitness and the normalized fitness. The selection between the different fitness computations will depend on the application and its ability to express the correctness of every individual in the GP runs. Structure Modifying Operations Once the function and the terminal set have been defined, the method of calculating the fitness measure has been established, and the initial generation of structures has been created, the next step in the Genetic Programming algorithm is to select and/or modify such primitive individuals.   Reproduction - The reproduction operation plays a major role among the important operations that modify the original structure in evolution. Described by Darwin’s natural selection and survival of the fittest, reproduction consists of the selection (based on fitness) of one individual and its replication into the new generation of individuals. Examples of different selection methods are: roulette, tournament, lexictour [34] and double tour.    Crossover - In the crossover operation, two individuals are mated to form two new individuals or offspring. The parents are selected from the population by a fitness-based selection method. Once the parents are chosen, a random section of each parent is picked (see Fig. 3.10) and swapped, between the corresponding structural locations of the two parents (see Fig. 3.11).  27  Figure 3.10: Two parental GP trees.  Figure 3.11: Two offspring produced by crossover. Often the length of the two parents is different and the resulting offspring is as diverse as in the previous generations. But in some cases, as the evolutionary process progresses, it is possible that several individuals in the same generation will be identical. This situation may be explained because those individuals are replicas of the fittest individual (the one who has greater probabilities of being selected for reproduction) of previous generations. This phenomenon is called convergence. It can cause an incestuous mating (crossover between identical individuals (see Fig. 3.12)) which in later generations will increase the convergence tendency and lead to suboptimal results.  Figure 3.12: Two identical parental GP trees.  28  In contrast to genetic algorithms (GA), where the convergence tendency is high and only the mutation operation could counter the effect, GP does not have fixed-length strings and it is quite infrequent that the crossover sections of the parents are the same (see Fig. 3.13). This characteristic provides the GP with good probabilities of reaching the global optimum.  Figure 3.13: Two offspring produced by crossover between two identical parental GP trees.    Mutation – For the mutation operation a random individual is selected and aleatory changes are performed on the structure of the individual (see Fig. 3.14 and 3.15).  Figure 3.14: GP tree selected for mutation.  Figure 3.15: Two different offspring GP trees after mutation. 29  Mutation operation provides both GA and GP an important ability to escape from local optima in what is known as hill-climbing. This operation is responsible for introducing diversity in the population which may have beneficial results. Other genetic operations that may be used to improve the GP performance are: permutation, editing, encapsulation and decimation. Termination Criteria As in nature, the GP process will evolve continuously and so it is important that the user defines the termination criteria. One criterion is when a specified maximum number of generations G is reached. Another is when a certain stop condition has been met. A stop condition could be defined to terminate the evolutionary process when the result obtained by the best individual in the population produces exact results in all fitness cases, or to stop if it produces exact results in at least a certain percentage of the fitness cases, or the fitness value reaches a predefined desired value. Several stop conditions may be used concurrently. Control Parameters Several control parameters can be established in Genetic Programming so that runs are executed according to an expected behavior. The two main parameters that must be set by the user are the maximum number of generations to be run (G) and the population size (M). Other parameters that may be used to control the process include: generative method for the initial population, method of selection, probability of crossover, and probability of reproduction. Embryo Model The initial step to obtain a complex model from a program structure (tree-like structure) is to define the basic model. This initial model consists of two main subsections: an embryo model and a test fixture. The embryo model corresponds to a model substructure that at least has one modifiable site. The modifiable sites are places where the evolutionary process could be applied in order to obtain new individuals. The new individuals will continue to evolve through generations until a fully developed model is obtained and the fitness function defined by the user is satisfied. 30  On the other hand, the test fixture, as its name indicates, is a fixed circuit substructure that cannot be modified because it contains important elements that are required to test the new individuals. Elements that may be included in the test fixture are: input sources, actuators, scopes and/or output sensors.  3.3.3.4  Mechatronic Design Quotient  In the early 2000s, de Silva proposed the concept of Mechatronic Design Quotient or MDQ [22]. Just as a human designer, the present evolutionary design framework has to deal with the extensive search space resulting from the combination of possible conceptual choices. The selection of such choices has to achieve the best problem satisfaction without violating the constraints. It is common that design may use excessive safety factors and worst-case specifications. This will not provide an optimal design or the most efficient performance. For this reasons the Mechatronic Design Quotient (MDQ) – a multi-criteria design evaluation index is used in the present work as the fitness function in the GP. Optimization of its value will provide the best design solution. The model that contains the identified modifiable sites and all the inputs required for the simulation will become the embryo model for the EDOS. This embryo model serves as the basis for all the evolutionary operations (e.g., selection, crossover, and mutation) performed by GP. The functions utilized by the GP to evolve new individuals (LG models) will then be evaluated through a fitness calculation indicating the satisfaction measure against the functional requirements. In this sense, the MDQ can integrate decision factors such as the criteria described in the list below. These criteria can be used to obtain successful designs as described in [23]   Reliability    Ease of manufacture and assembly    Safety    Low cost of operation and maintenance  31    Ergonomics    Aesthetics    Use of standard components    Compliance with International Standards    Disposition and recycling of components (at the end of the lifecycle of the product)  Therefore, MDQ, which is a multi-criteria design evaluation index, is able to guide the process of design evolution as its fitness function. The maximization of the selected criteria will serve as an assessment on the optimality of the design. Moreover, MDQ can also integrate the implementation feasibility criterion. Such criterion has to be evaluated during the evolutionary design process, both by the DES and by the fitness calculation method in the GP. This aspect is especially important as the GP has to be guided, without restricting its broad exploratory functionality, because not all the generated individuals are physically realizable, even though they are capable of obtaining good responses in computer simulation. Finally the process of generation, modification and evaluation of the individuals is repeated automatically until the MDQ has been satisfied. This means that the final choice not only provides the intended function and the desired performance, but also will be a feasible new design or a feasible design improvement ready for implementation.  3.3.3.5  LG Evolution  As indicated in the literature review of Chapter 2, in 2003 Seo et al. [19] presented their expanded methodology for multi-domain dynamic applications by integrating BG and GP. They complemented the advantages of the open ended search capabilities of GP and the multi-domain representation characteristics of BG, and demonstrated their usefulness in various design problems. Their proposed automated methodology provides the designers with a unified tool (regardless of the domain areas e.g., mechanic, electrical, hydraulic and thermal) to “create” alternative designs 32  without much of the interaction of the user, thereby avoiding the cumbersome iteration process of evaluating each recommended alternative. In their work, Seo and colleagues evolved GP trees, where the GP chromosomes did not directly represent the bond graphs, but they represented instructions on how to develop them. Following work of Koza and Seo, the novel methodology proposed in this thesis uses several construction functions and terminals to generate such instructions, but applied for Linear Graphs (LG) instead of Bond Graphs. For the proposed case of LG, two types of functions are required: a combination between topology-modifying functions, component-creating functions, and development-controlling functions. The first type of functions, in general, inserts a component into the developing model, assigns a value to it and changes the model structure. A detailed explanation of these first functions and their principal characteristics are presented next. The Add functions (see Fig. 3.16) are component-creating/topology-modifying functions which are applied to a modifiable node and will incorporate a single-port T, D or A element, a two-port t or g element, or an L connection.  Figure 3.16: General Add function structure. For the single-port elements the Add functions are: Add_T: adds single-port Through type element (e.g., Linear Spring, Torsional Spring, Inductor, or Fluid Inertor). Add_D: adds single-port Damping type element (e.g., Viscous Damper, Resistor, Thermal Resistor, or Fluid Resistor).  33  Add_A: adds single-port Across type element (Mass, Moment of Inertia, Capacitor, Thermal Capacitor, or Fluid Capacitor). The single-port Add functions may be applied to any modifiable node (see Fig. 3.17) and will create two new modifiable sites, as indicated in Figure 3.18. The add function maintains the modifiable site (1) for further possible modification at the node. It creates a new node at the modifiable site (2) and will add the single-port Across, Through, or Damping type element at the modifiable site (3). The modifiable site (3) is the one that allows the branch to change its corresponding parameter value.  Figure 3.17: Original LG branch with one modifiable site.  Figure 3.18: New LG branch after Add_A function has been applied.  Add_A function has a special meaning in the mechanical domain. When it is a mass or a moment of inertia element, it is always “connected” to the reference point (Newton’s 2nd Law) or ground. Therefore such function is connected in the modifiable site (2) to the ground reference and that node does not become a modifiable site anymore as illustrated in Figure 3.19.  34  Figure 3.19: New LG for the Mass or Inertia element.  For the case of two-port elements the Add functions are: Add_t: adds two-port transformer element. Add_g: adds two-port gyrator element. These functions may be applied to any modifiable node (see Fig. 3.20) and they create two modifiable sites as indicated in Figure 3.21. They will maintain the modifiable site (1) for possible modification of the node, will create a new node at the modifiable site (2), and will change the corresponding parameter value at the modifiable site (3).  Figure 3.20: Original LG branch with one modifiable site.  35  Figure 3.21: New LG branch after Add_t function has been applied.  Similar to Add_t function, Figure 3.22 shows the corresponding branch and modifiable nodes created after the Add_g function has been applied.  Figure 3.22: New LG branch after Add_g function has been applied.  The last Add function that is required by this scheme is the Add_L function. This simple, yet important function is the one responsible of converting the open-circuit topology of LG into closed loop circuits. The Add_L is a pure topology-modifying function, which requires two modifiable nodes to operate (see Fig. 3.23), and its purpose is to create a connection between such nodes.  36  Figure 3.23: Original LG branches with one modifiable site each. After the Add_L function has been applied, the two nodes involved are integrated into one new modifiable site (3) that allows further evolution of the model (see Fig. 3.24).  Figure 3.24: New LG model after Add_L function has been applied. Finally, the Replace functions are pure component-creating functions that can modify the type of element defined for the selected modifiable branch and its corresponding parameter value. The Replace functions may either be applied to the single-port elements or the two-port elements. The Replace functions have an arity of 2 as they require a branch to be in between two modifiable sites to operate. The second type of functions, the development-controlling functions, is responsible for directing the growth and development of the model. To some degree these functions control the expansion of the evolutionary process and serve to filter incomplete models before further processing, which can be computationally expensive. This type of functions includes the Operational functions and the Arithmetic functions. Desprog_2 and Desprog_3 are zero-argument operational functions that correspond to instructions for executing two or three other functions sequentially. Both functions are based on Koza’s artificial ant problems [13]. Close_node is an operational function that could be applied to any modifiable node and it will terminate the possibility of further expansion on the selected node. 37  Gnd is an operational terminal that combines the Close_node function and the Add_L function. Basically, it is applied to a modifiable node and it performs a connection between such node and the system ground node. This terminal cancels the original modifiable node and no further evolution could be performed in such node. On the other hand, Arithmetic functions perform arithmetic operations to determine the parameter value associated with each component. For these functions, several methods may be incorporated in order to perform the required calculations. For example genetic algorithms using real-valued genes could be used or in the case that the number of possible component values is small, a specific function could be defined for every component (i.e., the component’s value is implicit in the component creating function) [15]. Ephemeral Random Constants (ERC) are terminals used to define the values for each component. The + and – functions are responsible for adding two ERCs or subtracting two ERCs to calculate the parameter value of the component. The End terminal finalizes the parameter value calculation of a modifiable branch. Table 3.2 presents a summary of the functions and terminals used to evolve LG models in this thesis. Table 3.2: LG- GP Functions and Terminals. Name  Arity  Description  Add_A  1  Adds an Across type element to a modifiable node  Add_T  1  Adds a Through type element to a modifiable node  Add_D  1  Adds a Damping type element to a modifiable node  Add_t  1  Adds a Transformer type element (two-port) to a modifiable node  Add_g  1  Adds a Gyrator type element (two-port) to a modifiable node  Add_L  2  Adds a Line between two modifiable nodes  Replace_A  2  Replaces the current element with an Across type element  Replace_T  2  Replaces the current element with a Through type element  Replace_D  2  Replaces the current element with a Damping type element 38  Name  Arity  Description  Replace_t  2  Replaces the current two-port element with a Transformer type element  Replace_g  2  Replaces the current two-port element with a Gyrator type element  Desprog_2  0  Executes two functions sequentially  Desprog_3  0  Executes three functions sequentially  Close_node  1  Terminates a modifiable node  Gnd  1  Connects a modifiable node to ground reference and terminates it  ERC  0  Ephemeral Random Constant  +  2  Adds two ERCs  –  2  Subtracts two ERCs  *  2  Multiplies two ERCs  End  0  Terminates a modifiable branch  To exemplify how the proposed functions and terminals are used, the next section demonstrates the evolution of a mechatronic system through the application of the described methodology. The first step in the procedure to evolve an LG is to define an Embryo model (see Fig. 3.25) which should include some input(s), some output(s), relationships between them, and modifiable sites (where the user wants the system to perform changes). This Embryo model will be the base model for solutions proposed by the evolutionary system, until it accomplishes the objective defined in the fitness function. Three modifiable sites at nodes (a), (b) and (c) have been identified by the user and have been indicated as available for the GP program to start the evolution.  39  Figure 3.25: Embryo example of a mechatronic LG model. Figure 3.26 illustrates a GP tree generated arbitrarily from the LG embryo model of Figure 3.25.  Figure 3.26: Example of a GP tree for an arbitrary evolved LG model.  The first operation applied to the embryo model starts at the modifiable site in node (a). If the evolution starts from that site with Add_T function, it will generate a branch (in this example representing an Inductor), determine its parameter value and will connect the branch to the 40  ground reference applying a Gnd terminal. The evolution process of this recently created branch terminates with an End operator and a Close_node terminal so that no further modification occurs at that node. The next modifiable site is at the node (b) and includes an Add_A function which for this case may correspond to a Moment of Inertia. Because it is a Moment of Inertia and belongs to the special case of the Add functions, the newly created node is automatically connected to the ground reference. In the same way as the Add_T function described before at node (a), the parameter values are calculated and the branch modifiable site is terminated with an End operator. In this case, the node (b) continues to be modifiable and from the same node (b) an Add_D function as well as an Add_t function, are executed one after the other. Once the Add_t function has been executed, a Close_node terminal is applied to the modifiable site at node (b) finishing any possibility of further modification in such site. Now, from the modifiable site recently generated by the Add_t function at node (4), another Add_T (e.g., Spring) function and an Add_D (e.g., Viscous damper) function are executed. In both cases, the parameter values are calculated using ERCs, + and – terminals and the modifiable site at each branch is terminated with an End operators. Notice that the Add_T function and the Add_D function in this section of the GP tree use the Desprog_2 and Desprog_3 functions to perform several operations sequentially. In the first case, an Add_L is required to connect the modifiable site in node (6) to the modifiable site in node (c) and a Close_node function to terminate the modifiable site at node (6). Finally, for the Desprog_3 case an Add_L is required to connect the modifiable site in node (5) to the modifiable site in node (c) and two Close_node functions are used to terminate the modifiable sites at nodes (5) and (c). The resulting LG model is shown in Figure 3.27.  41  Figure 3.27: LG model generated by the example GP tree.  3.4 System Framework Algorithm Flowchart Figure 3.28 presents a flowchart of the system framework algorithm. The dark shaded blocks identify steps where the MHMS and the DES exchange information so that the evolutionary process (EDOS) can take place. Operations executed by the EDOS (such as LG model creation, embryo model initialization with modifiable sites, alternatives evolution, and simulation of feasible design candidates) are indicated in light shaded blocks. Clear blocks correspond to the activities performed in the experimental phase of this research and will be explained in more detail in the following chapters.  42  Figure 3.28: Flowchart of the system framework algorithm.  3.5 Summary In this chapter, an introduction reviewing the issues and complex problems encountered in the engineering design process has been outlined. The research methodology for this thesis has been presented along with the proposed system framework. The developed framework incorporates on-line information provided by an MHMS to the design evolutionary system. Emphasis has been given to the design expert system (DES) functionality and its integration with the framework. The importance in the extraction of knowledge from domain experts as well as how this knowledge is organized, represented and accessed has also been highlighted. The key component of the proposed system framework, the Evolutionary Design Optimization System (EDOS), has been described. It comprises the following concepts:  43    It uses a multi-domain modeling tool to represent the engineering system. LG has been chosen and its benefits, characteristics and key elements have been explained in Sections 3.3.3.1 and 3.3.3.2    Genetic Programming is used for design evolution and as a tool to explore the design space possibilities. Also, a brief description of its procedure, functions and operations has been provided.    Mechatronic Design Quotient (MDQ) has been proposed as the fitness function because it is an intelligent way of evaluating the design. One benefit of using MDQ is the possibility of selecting the important factors/criteria appropriate for each design (user selectable) and its implementation for feasibility evaluation.    The procedure, functions and terminals required to integrate LG modeling with Genetic Programming has been explained in detail. The novel approach functionality has been exemplified with the evolution of a mechatronic design model.  Finally, a system framework algorithm flowchart has been presented to provide better understanding of importance of the interactions between the four main subsystems: the Machine Health Monitoring System, the Design Expert System, Model Generation System, and the Evolutionary Design Optimization System.  44  Chapter 4 Modeling and Implementation of the Experimental System 4.1 Experimental System: Iron Butcher The test bed that is used to evaluate the approach developed here is the Iron Butcher—an automated fish cutting machine developed in the Industrial Automation Laboratory (IAL) of the University of British Columbia. This machine was developed to decrease the use of labor under hazardous conditions and to reduce the wastage of fish meat during processing, in the fish processing industry. The Iron Butcher (IB) is a complex industrial machine with multiple functional units and subsystems, designed for fish head cutting before the processing for canning. Figure 4.1 shows a view of the Iron Butcher.  Figure 4.1: Iron Butcher.  The Iron Butcher contains three main sub-systems: an electromechanical conveying system to feed the fish, a hydraulic system to position the cutter, and a pneumatic system to hold the fish in place and actuate the cutter. The electromechanical conveying system transports the fish from the feeding section to the cutting section. In order to achieve this, a 3-phase AC induction motor (see Fig. 4.2 (a)) is coupled with a Variable-diameter pulley (VDP) drive. The VDP can compensate for speed variations of the motor/load, because the distance between the pulleys and the length of the belt 45  do not change. What changes is the effective diameter of the pulleys which in turn adjusts the overall ratio. The VDP is connected to a gearbox which decreases the output velocity and increases the output torque after which the rotary motion is converted into a push pull stroke through a mechanical linkage. The mechanical linkage is then connected to a sliding mechanism (see Fig. 4.2(b)) which moves the fish only in one direction as several fixtures fold or remain open depending on the cycle of the motion.  Figure 4.2 (a): IB conveying system; Figure 4.2: (b) IB sliding mechanism.  The cutter blade assembly is mounted on a horizontal X-Y table (see Fig. 4.3 (a)). This table is positioned and aligned with respect to the fish gill by means of an electro-hydraulic system (Fig. 4.4). The positioning table is powered by two hydraulic actuators (double acting cylinders) which provide a controlled linear displacement as each one is controlled by a solenoid valve (three-way valve) shown in Figure 4.3 (b). The overall electro-hydraulic system is powered by a hydraulic pump.  Figure 4.3 (a): Cutter blade assembly;  Figure 4.3 (b): Solenoid valves. 46  Figure 4.4: Schematic diagram of the electro-hydraulic system.  The pneumatic system is responsible for operating the cutter and holding the fish in place (see Fig. 4.5 (a) and (b)). A compressor provides the power required to actuate four pneumatic cylinders. One cylinder (double acting) is responsible for the cutting operation and the other three cylinders (single acting) maintain the fish in place while the conveying system is pushing fixtures to retract them to the start position and repeat the cycle. The operation of each cylinder is controlled by a solenoid valve (four-way, five-port double valve).  Figure 4.5 (a): Holding mechanism; Figure 4.5 (b): Cutting blade.  47  The normal operation of the Iron Butcher comprises the following processes: First, fish is fed by the operators manually into the feeding zone (see Fig. 4.6). Then, the conveying system with the sliding mechanism transports the fish into the cutting area where the pneumatic system maintains the position of the fish fixed (perpendicular to the conveying direction). At this moment, a primary digital CCD camera captures the image of the fish and an algorithm calculates the precise cutting position that will reduce the fish meat wastage. Immediately after that, a controller positions the cutter assembly in the computed cutting position. The hydraulic system transports the X-Y table (with the cutter assembly mounted on it) to the computed position. Once the cutting assembly is located in the proper position and the fish enters the cutter assembly, the pneumatic cutter is activated and the fish head is removed. Finally, the holding mechanism releases the fish and the conveying system transports the fish to an inspection zone where a secondary digital CCD camera inspects the quality of the processed fish. The process is repeated continuously as long as new fish is available in the feeding zone.  Figure 4.6: Iron Butcher zones: Feeding, Standby, Cutting, and Inspection.  Recently, the Iron Butcher has been upgraded with two modifications useful for the purposes of this research: The first one is the incorporation of a Machine Health Monitoring System described in the literature review (Chapter 2). As mentioned before, Raman and de Silva [28] 48  implemented a monitoring scheme on the IB, which can be trained to detect subsystems or even components suitable for design enhancement. The other change important for the research is the substitution of the VDP for a Variable Frequency Drive. This change and its benefits will be described in more detail in Section 4.3 of this Chapter.  4.2 IB – Conveying System Linear Graph Model Following the information presented in Section 3.3.3.1, a lumped-parameter Linear Graph model for the IB electromechanical conveying system was developed. Figure 4.7 shows the LG model along with schematic drawings of the three main subsystems.  The conveying system has been chosen to implement the developed methodology, as it provides a practical example of a multi-domain engineering system (consisting of electrical, mechanical translational, and mechanical rotational domains). The Linear Graph model and the state space model generated for this system will serve as a basis for simulation/analysis.  Figure 4.7: LG of the electromechanical conveying system. 49  A list of parameters defined for the subsystems (Gearbox, Wheel and Axle, and Lever) that form the electromechanical conveying system is presented next:  Gearbox = Input shaft angular velocity = Output shaft angular velocity = Torque on the input shaft = Torque on the output shaft = Gear ratio  Wheel/Axle = Linear velocity of the wheel periphery = Angular velocity of the axle = Torque on the axle = Force on the wheel periphery = Wheel radius  Two-node first-class lever with the fulcrum at node B = Lever joint input velocity = Lever joint output velocity = Lever joint input force = Lever joint output force where:  are the arm lengths  The driving motor is represented by an ideal torque source  with an angular velocity of  . The  following parameters are also defined:  = equivalent moment of inertia of the gear = equivalent moment of inertia of the wheel (disc) = equivalent mass of the linkage = equivalent mass of the sliding copper bars (Load) 50  = stiffness of the “flexible” shaft coupling the gearbox with the disc = stiffness of the “flexible” shaft coupling the disc with the linkage = equivalent viscous damping constant = linear velocity of damping element = Torque at the gear = Torque at the “flexible” shaft coupling the gearbox with the disc = Torque at the wheel (disc) = angular velocity of the gear = angular velocity of the wheel (disc) = Force at the “flexible” shaft coupling the disc with the linkage = equivalent dynamic force of the linkage = equivalent dynamic force of the sliding copper bars (Load) = Force at the equivalent viscous damper = angular velocity of the “flexible” shaft coupling the gearbox with the disc = linear velocity of the linkage = velocity of the “flexible” shaft coupling the disc with the linkage = linear velocity of the sliding copper bars  After developing the Linear Graph for the configuration of the conveying system, the next step is to derive the state space model for this dynamic system. According to the systematic methodology described in Section 3.4 and the Linear Graph model previously generated for the IB conveying system, we determine the following:  Number of branches  Number of nodes  Number of primary loops  Number of sources  51  As each source branch has one unknown variable and all the other passive branches have two unknown variables each, then the number of unknown variables is  Number of constitutive equations  Number of independent node equations  Number of loop equations  Now as verification, for the system to be solvable, the number of unknowns should be equal to the number of equations:  The system modeled by the Linear Graph is a sixth order system because it has six independent energy storage elements. The selected state variables are:  Hence the state space shell is formed by the following equations:  52  The remaining constitutive equations are:  The node equations are:  53  and the loop equations are:  Then, by eliminating the auxiliary variables in the state-space shell, the following state equations are obtained:  54  These represent the state-space model. The corresponding system matrix is:  A=  ;  The input distribution matrix is:  B=  ;  The measurement gain matrix is:  C=  ;  and D= 0  55  Now that the state space model (which completely defines the system state) has been derived from the Linear Graph model, simulations can be performed. The simulations allow the design engineer to determine the system response to external inputs without the need to build a real system or make changes to an existing system.  4.3 Simulation To validate the developed analytical model of the IB conveying system, actual measurements from the experimental setup have been performed. Also MATLAB® based Simscape™ language is used to simulate the results. Simscape is an extension of Simulink® software, but instead of modeling the underlying mathematics that represent a system or the operators on the signals of such system, with this software the blocks introduced in the modeling environment directly represent physical components or the physical connections between such components.  This causal modeling and simulation software allows the user, just as in Linear Graphs modeling, to represent multi-domain physical systems. The software provides several modules and blocks that can represent a vast majority of mechanical, hydraulic, electrical, pneumatic and thermal components.  The advantages of simulating the systems in computer software are well known by engineers, among which we can consider some of the following:    The user can test and simulate several design requirements to determine the best components and parameters to use, leading to optimal design solutions.    This capability to test alternative designs and separate the effects of the environment on such systems, will save developing time and will promote innovation.    Finally, testing the configurations in a virtual environment will save costs of manufacturing and prototyping while a mature stage of design is accomplished.  56  As in any modeling technique, the user must determine to what level of detail the system should be studied. For obvious reasons, any system can be divided into numerous subsystems, and one has to be careful, as the modeling could become quite complex with too many details as some of them could become meaningless depending on the type of analysis to be carried out.  For the Iron Butcher electromechanical conveying system, Simscape and its extensions SimMechanics® and SimElectronics®, provided all the blocks required to simulate its performance. Furthermore, the software allows the engineer to create custom blocks for exploration of complex effects and testing of other required domains.  For illustrative purposes the modeling is divided in two sections, a “driving” section and the “driven” section. The driving subsystem corresponds to the power source and gearbox. For the Linear Graph model, the power source was considered as an ideal torque source formed by an AC induction motor connected to a VDP, and the gearbox directly coupled to it.  For the experimental setup, the VDP was replaced by a Variable Frequency Drive (VFD) and the motor incorporated an encoder. The VFD allowed us to control the four pole, 1HP, AC motor (See Fig. 4.8 (a) and Fig. 4.8 (b)) in a closed loop, therefore guaranteeing a constant torque and speed parameters. Finally, the AC motor is directly coupled to a 3 stage helical gearbox with a gear ratio of 106.58:1.  (a) AC motor and gearbox  (b) VFD  Figure 4.8: Driving subsystem. 57  The first section (driving section) of the system is represented by the model shown in Figure 4.9.  Figure 4.9: Simscape model of the driving section.  It is easy to verify that proper relationships between elements have been incorporated into the model. To demonstrate this idea, Ideal Torque Sensors are connected to the input (left hand side LHS) shaft and the output (right hand side - RHS) shaft of the gearbox. Both sensors are connected to a Scope, to monitor whether the gearbox acts as a constant speed reducer.  Applying a sine wave input signal (simulating a no-load input speed of 1800 RPM) the ideal gearbox exerts a peak output speed of 16.8 rpm (See Fig. 4.10 (a)). Similarly, with no-load and the same input sine wave, the peak torque increases from 0.1584 to 16.88 N-m (See Fig. 4.10 (b)).  58  INPUT (LHS)  OUTPUT (RHS)  (a) Rotational velocities (rpm)  (b) Torques (N-m)  Figure 4.10: Gearbox Input and output signals.  The second section of the modeling corresponds to the ‘driven’ subsystem. It consists of a wheel/axle mechanism coupled to a 3 linkage mechanism (see Fig. 4.11). This mechanism converts the rotational motion of the AC motor into the translational push-pull movement of the conveying system.  Linkage AB  Linkage CD  Linkage AE  Linkage AB  Motor, Gearbox & Disc  Figure 4.11: Driving subsystem. The linkage AE is the final element of the mechanism that transmits the force required to move the sliding copper bars. These copper bars have several indexing pins which fold only in one 59  direction. This folding effect allows the fish to be transported with a linear intermittent movement through the table of the Iron Butcher.  The model for this section is shown in Figure 4.12. The linkages are represented by blocks called “bodies” (in green color) which include information as: mass, moment of inertia tensor, the location of the center of gravity, and the physical location with respect to global or local coordinates in the system. The bodies are: Conveying bars, linkage AE, linkage AB, linkage CD and disc DM.  Conveying bars CS1  CS2  Revolute 5  F  B  Revolute 4  Linkage AE CS2  CS1  F  B B  B  F  CS1  CS 2  B  F  Linkage AB  Revolute 1  Revolute 2 Disc DM  CS2  CS 2  Prismatic  Linkage CD  CS1  CS1  CS3  Ground 2  F  p  Revolute  Revolute 3 F  B  v a  B  F  Joint Sensor 1  Fc  Joint Sensor  scope  Env Machine Environment  Ground  Ground 1  scope1  Figure 4.12: SimMechanics model of driven section.  Every block is connected to a joint block (Revolute joints 1,2,3,4 and 5, and a prismatic joint) which represents the degrees of freedom (DOF) of the body relative to another body, or relative to the global reference in the system. Similar to the Simscape model, the SimMechanics model has the possibility of incorporating joint sensors and scopes to visualize responses to different stimuli.  One may notice the similarity between the model and the schematic diagram, which is also another benefit of using physical modeling, as it allows easy reading and interpretation of the model.  60  After determining and measuring the parameters of every component in the system, and specifying them in the model along with their units, the simulation has shown the following results for a constant input speed of 1800 RPM.  Simulation time: 20 seconds Average distance traveled by the indexing pins per cycle: 30.3 cm Average time per cycle: 2.53 seconds  Figure 4.13: Output position profile (cm). Figure 4.14 (a) shows the velocity of the indexing pins in m/s and Figure 4.14 (b) illustrates the acceleration profile in m/s^2.  Figures 4.14 (a) and (b): Velocity [m/s] (top) and acceleration [m/s^2] (bottom) profile of the indexing pins. 61  Torque [N-m] Force [N]  Fig. 4.15: Reaction torque [N-m] and reaction force [N].  Figure 4.15 illustrates the reaction torque in N-m and the reaction force in N measured in the copper bars with respect to the linkage AE.  An interesting aspect of the software is that as information relating to the position and the center of gravity of every link has been captured into the model, the user is able to observe the model’s visual rendering as well as the movements and positions of the elements located in a Cartesian plane (See Fig. 4.16).  Figure 4.16: Location of linkages and joints (m).  62  The graphs in Fig. 4.17 show the linkage locations at different times during the 20 seconds interval of the simulation.  (a)  (b)  (c)  (d)  Figure 4.17: Snapshots of the position of every linkage during the simulation. Although the calculated parameters are realistic, several assumptions have been made. To verify the correctness of the model, the results are compared with experimental data. For example, the measured distance the indexing pins travel on the Iron Butcher is approximately 28.5 cm. Also the average time to complete a cycle was of 3.05 seconds. The existence of these differences is understandable as the model has not taken into consideration several losses due to the friction between the copper bars and the support where they are rested on.  63  4.4 Summary A Linear Graph model representing the Iron Butcher (IB) electromechanical conveying system was generated. The IB conveying system was chosen because it represents a functional, complex and multi-domain industrial machine.  A systematic and unified methodology for modeling multi-domain systems was followed and an analytical model was derived using it. To demonstrate the correctness of the derived model, a simulation was carried out using software based on similar theoretical principles of Linear Graph modeling.  As the results are consistent with the experimental measurements, it was decided to continue with the validation and testing of the proposed system framework in an automated manner.  64  Chapter 5 Results and Discussion 5.1 Evolutionary Tool A framework capable of evolving multi-domain engineering systems in an automated manner is developed in this research. The methodology as described in Chapter 3 integrates four main systems: a Machine Health Monitoring System (MHMS), a Design Expert System (DES), a Model Generation System (MGS), and an Evolutionary Design Optimization System (EDOS). The EDOS uses GP to evolve an optimal design of engineering systems represented by linear graph (LG) models as generated by the MGS. The following sections of the thesis will explain how the EDOS operates and two examples of automated mechatronic design evolution using EDOS. Finally the benefits of the developed methodology are discussed. The EDOS algorithm has been implemented using MATLAB language to perform the automated evolution of both the topology and the parameters of mechatronic systems. The algorithm integrates the powerful modeling and simulation tool of Simscape and an adaptation of GPLAB1 [35], a Genetic Programming toolbox for MATLAB. GPLAB combines a highly modular and modifiable structure with automatic parameterization techniques. These features allow the user to build and test new functionalities such as new sampling methods, new genetic operators or the new user functions required by this research. The flowchart of the general system framework algorithm that is used to evolve the design of a mechatronic system is shown in Figure 3.27. A simplified version of this algorithm was developed by substituting activities previously performed manually with activities now carried out by the modified GPLAB toolbox, and it is shown in Figure 5.1. It is important to notice the interaction between user, DES and MHMS with EDOS and MGS for full automation of the evolutionary process. A detailed description of each block of activities will be explained next and a comprehensive manual to operate the developed EDOS algorithm is included in the Appendix.  1  GPLAB, a Genetic Programming toolbox for MATLAB available at http://gplab.sourceforge.net/download.html  65  Figure 5.1 EDOS Algorithm Flowchart.  The first step described by the algorithm flowchart is where the user (dark shading) has to generate the LG model of the engineering system (MGS). The MHMS & DES (light shading) work in conjunction to monitor the engineering system and to indicate the subsystems, and even components of the subsystems, that are candidates for design improvement. The latter leads to the identification of modifiable sites within the engineering system. Next, the user has to generate the Simscape embryo model based on the LG model in the MGS and the MHMS and DES findings. Before executing the GP program, the user has to define GP parameters (e.g., number of individuals, number of generations, etc.), operations (e.g., crossover, mutation, etc.), functions and terminals (e.g., add functions, replace functions, etc.) to be used, and the proper fitness function (MDQ) which will guide the evolutionary process to the desired solution. Once above information is stored in the EDOS (clear blocks), the modified GPLAB algorithm will be automatically executed to evolve the design from the embryo model to a complete parameterized model that satisfies the defined fitness function. Internally, the modified GPLAB algorithm will create an initial population of individuals using the functions and terminals defined in the preliminary steps. Each of the individuals will automatically be modeled in Simscape, simulated and evaluated against the MDQ criteria and fitness will be assigned to each one of them. The fittest individuals will serve as parents for 66  future generations. Structure modifying operations will be applied to the initial population and hundreds or even thousands of individuals (new design proposals originated from the established embryo model) will be generated, modeled, simulated and evaluated iteratively. The GPLAB algorithm will stop the evolutionary process when the defined maximum number of generations has been reached, or when the required fitness value has been satisfied by an individual. The GP tree of the fittest individual (instructions on how to build the model) will be shown at the end of the program execution.  5.2 Evolution In order to demonstrate the functionality of the developed evolutionary methodology, the multidomain applicability and the automated operation of its algorithm, a rather simple but explicative example is described in this section: a mass-spring-damper mechanical system (see Fig. 5.2 (a)) and its corresponding Linear Graph model (see Fig. 5.2 (b)).  Figure 5.2 (a): Mass-spring-damper system;  Figure 5.2 (b): Mass-spring-damper LG.  With the purpose of obtaining the embryo model, two nodes have been defined as the modifiable sites (1 and 2) and components have been removed from the original LG model (see Fig. 5.3). Also the test fixture (as explained in Chapter 3) has been established maintaining the input source and ground reference. 67  Figure 5.3: Linear Graph embryo model with two modifiable sites.  The next step is to construct the Simscape embryo model (see Fig. 5.4) from the established LG embryo model. Along with the embryo model, it is also required to have the test fixture in the Simscape environment so that it includes the following: Force source, Translational motion sensor, sinks for measurements, signal generator and scopes to display the output response generated during simulation.  Figure 5.4: Simscape embryo and test fixture model.  68  Parallel to these activities, the user has to define the key features of the problem to correctly parameterize the modified GPLAB algorithm. The first step in preparing to use GP is to identify the set of terminals and for this problem it is defined as: T = {ERC, End, Close_node} The second step is to identify the set of functions as given below: F = {Add_T, Add_D, Add_A, Desprog_2,Desprog_3,+, –} Since the problem is defined for the translational mechanical domain, the function set has been constrained to that domain for illustrative purposes. In this case, the Add_T function will insert a Through element corresponding to a Translational Spring, the Add_D function will insert a Damping element corresponding to a Translational Damper, and the Add_A function will insert an Across element corresponding to a Mass. The third step is the identification of the fitness function. For this case, the raw fitness will be calculated as the sum of the absolute value of the difference between the simulated response and the expected response for Velocity and Position (see Fig. 5.5 (a) & (b)) of the mechanical system for the pulse input shown in Figure 5.6.  a) Expected velocity profile;  b) Expected position profile  Figure 5.5 Expected responses: Velocity and Position profiles.  69  massspring/Signal Builder : Group 1 Signal 1  1  0.8  0.6  0.4  0.2  0 0  1  2  3  4  5 Time (sec)  6  7  8  9  10  Figure 5.6: Pulse input force applied to the mass-spring-damper system. Table 5.1 summarizes the key features of (or choices made for) the automated design of a mechanical system problem. The population size, M, and the maximum number of generations to be run, G, are given in the last row of the table. Table 5.1: Parameters for automated design of a mass-spring-damper system. Objective:  Find the mechanical components and its parameters, that yield the expected output response from the system  Terminal set:  ERC, End, Close_node  Function set:  Add_A, Add_T, Desprog_3, + , –  Fitness cases:  The given sample of data points  Raw fitness:  The sum of the absolute value of the difference between the simulated response and the expected response of the mechanical system for a specific input.  Standardized fitness:  Same as raw fitness for this problem  Control parameters:  M=50. G = 600  Add_D,  Desprog_2,  70  The best GP tree individual from generation 513 had a raw fitness value of 5.0000e-012. Figure 5.7 graphically depicts the best individual found as a rooted, point-labeled tree with ordered branches.  desprogn2  desprogn3  add_A  desprogn3  desprogn2  add_D  Add_L  Close_node  add_L  Close_node  Add_T  Figure 5.7: Best GP tree individual found for the mass-spring-damper system. The best individual GP tree generates the Simscape model shown in Figure 5.8. Also, the parameters for Add_A, Add_D and Add_T were automatically generated for every branch with the ERC and end terminals operations (not shown in the GP tree). The values obtained were: Mass = 1.0000 kg Damping coefficient = 100.0000 N/m/s Spring rate = 1000.0000 N/m  71  Figure 5.8: Simscape model generated from the best GP tree individual found.  An added benefit of the GPLAB program is that it can represent some of the state variables graphically. Figure 5.9 shows the evolution of the maximum (best of current generation), median, average, and average +/- standard deviation values of fitness. Also it shows the fitness of the best individual found so far.  Figure 5.9: Fitness plot.  Figure 5.10 presents the evolution of the tree depth and size during the run. Also, the plot shows the values of the best individual found so far. 72  Figure 5.10: Complexity plot.  Intermediate results of the evolutionary process, plots of fitness improvement, complexity levels for the GP trees and best individuals found for generations 10, 20 and 40 are shown in the following figures.  Figure 5.11 (a) shows the fitness plot and Figure 5.11 (b) shows the complexity plot of the first 10 generations. As can be seen from the graph, the best fitness value found in the initial generation for this run was 2. After just 10 generations the fitness value has decreased to 1.  73  Fitness 7  maximum: 1 median: 5 average: 3.975 avg - std: 2.5379 avg + std: 5.4121 best so far: 1  6  fitness  5 4 3 2 1  0  5 generation  10  Structural complexity  tree depth*10 / tree size / %introns  30  maximum size: 28 bestsofar size: 3 bestsofar introns: 0 bestsofar depth: 2  25 20 15 10 5 0  0  5 generation  10  Figure 5.11 (a) and (b): Fitness plot (top) and complexity plot (bottom) at generation 10.  Figure 5.12 shows the best individual GP tree found in generation 10. So far, the algorithm has only been able to terminate the modifiable sites on the embryo model but without building a complete model.  74  desprogn2  closenode10  closenode10  Figure 5.12 Best GP tree individual found for the mass-spring-damper system at generation 10.  Figure 5.13 (a) shows the fitness plot and Figure 5.13 (b) shows the complexity plot of the first 20 generations. Fitness value of the best individual in generation 20 has decreased to 0.37028. The dramatic improvement of the fitness value is explained because of the increase in size (from 3 to 7) and depth (from 2 to 4) of the GP tree structures being evolved.  Fitness 8  maximum: 0.37028 median: 5 average: 4.0586 avg - std: 2.4663 avg + std: 5.6509 best so far: 0.37028  7 6  fitness  5 4 3 2 1 0  0  5  10 15 generation  20  Figure 5.13 (a): Fitness plot at generation 20.  75  Structural complexity  tree depth*10 / tree size / %introns  40  maximum size: 28 bestsofar size: 7 bestsofar introns: 2 bestsofar depth: 4  35 30 25 20 15 10 5 0  0  5  10 15 generation  20  Figure 5.13 (b): Complexity plot at generation 20.  Figure 5.14 shows the best individual GP tree found in generation 20. Now the algorithm has been able to create a GP tree structure which in turn, constructs a complete model. The best individual found has added a mass and a spring to the system. Also it has been able to close one modifiable site on the embryo model and connect the components to the ground reference to form a complete Simscape model (See Fig. 5.15). desprogn2  desprogn2  addmass10  desprogn2  addspring10  closenode10  addline12  Figure 5.14 Best GP tree individual found for the mass-spring-damper system at generation 20. 76  Figure 5.15: Simscape model generated from the best GP tree individual found at generation 20.  Even though this Simscape model is complete for simulation, the response from the system still continues to be out of specification. Figure 5.16 (a) and (b) shows the velocity and position profile obtained at the end of the simulation.  a) Velocity profile;  b) Position profile  Figure 5.16: Velocity and Position profiles of best individual found at generation 20. 77  Figure 5.17 (a) shows the fitness plot and Figure 5.17 (b) shows the complexity plot of the first 40 generations. Fitness value of the best individual in generation 40 has decreased to 0.2915. Previously, the size and depth of the structures had to be increased because the algorithm realized that structures with higher complexity were required. Now, the algorithm realized that it could decrease the complexity in order to obtain a better fitness value. Improvement of the fitness value this time is explained because of a decrease in size (from 7 to 6) and depth (from 4 to 3) of the GP tree structures being evolved.  Fitness 8  maximum: 0.2915 median: 5 average: 4.0378 avg - std: 2.2371 avg + std: 5.8385 best so far: 0.2915  7 6  fitness  5 4 3 2 1 0  0  10  20 30 generation  40  Structural complexity  tree depth*10 / tree size / %introns  40  maximum size: 28 bestsofar size: 6 bestsofar introns: 3 bestsofar depth: 3  35 30 25 20 15 10 5 0  0  10  20 30 generation  40  Figure 5.17 (a) and (b): Fitness and complexity plot at generation 40. 78  Figure 5.18 shows the best individual GP tree found in generation 40. The best individual found has added a damper to the system but removed the spring. It also substituted two desprogn2 functions with only one desprogn3 function. desprogn2  desprogn3  adddamper10  closenode10  addline12  addmass10  Figure 5.18: Best GP tree individual found for the mass-spring-damper system at generation 40.  5.3 Design Fault Simulation Now that the modified GPLAB algorithm has successfully evolved a mechanical system, the next example will present how the MHMS information can be incorporated into the developed framework in order to generate and evaluate design alternatives for a multi-domain engineering system. The proposed evolutionary methodology will use the MHMS information to determine subsystems, or even components, which could be considered as modifiable sites for the GP procedure.  The methodology has been applied to the industrial fish cutting machine, and specifically the electromechanical conveying system described in Chapter 4. Figure 4.7 showed the schematic diagram of the conveying system as well as its corresponding Linear Graph model.  79  In experimental tests, the MHMS implemented by Raman and de Silva [28] was able to detect failures within the conveying system. Moreover, after several runs the MHMS indicated that recurrent failures occur in the gearbox subsystem. After taking into consideration the record of malfunctions, using its knowledge and expertise in the matter, and contrasting design specifications against actual performance, a human expert has been able deciding if the malfunctions were related to a design failure or corresponded to some other factors. In this work such decisions and considerations are suggested to be made by a Design Expert System (DES).  For the purposes of testing the developed system framework we considered the failures in the gearbox to be related to a design failure. In this sense, the next step in the methodology is to generate the embryo model along with the test fixture. Hence the two nodes have been defined as the modifiable sites (1 and 2) and the gearbox component of the LG model has been removed (see Fig. 5.19).  Figure 5.19: Linear Graph embryo model with two modifiable sites.  The next step is to construct the Simscape embryo model (see Fig. 5.20) from the LG embryo shown in Figure 5.19. As in the mass-spring-damper example, along with the embryo model, we require the test fixture in the Simscape environment.  80  Figure 5.20: Simscape embryo and test fixture model.  Similar to the previous example, the terminal set used to correctly parameterize the modified GPLAB algorithm is: T = {ERC, End, Close_node} and the function set for this problem is: F = {Add_t, Desprog_2,Desprog_3,+, –,*} Although the problem is defined as a multi-domain (electrical and mechanical) system, we know the solution has to be given in terms of a gearbox. Therefore it is only required to have the Add_t function as it will insert the two-port Transformer element corresponding to a gearbox.  81  The fitness function will be calculated as in the previous example. Therefore, the fitness case considers the design specification for displacement of the indexing pins of 30 cm in 2.5 seconds. The input corresponds to a constant speed of 1800 RPM. While the position specification is a prerequisite for an optimum design, it alone may not characterize an optimum design. Section 3.3.3.4 presented several decision factors that could be selected to evaluate a design and decide on its optimality. Hence, MDQ and its optimization provides and efficient tool to include and evaluate important criteria for a particular design. In [23] a nonlinear fuzzy integral called the Choquet integral is used to aggregate interacting criteria. In the case of independent criterion a weighted average method may serve as the aggregation technique. Table 5.2 summarizes the key features of the automated design of an electromechanical conveying system problem. Table 5.2: Parameters for automated design of electromechanical conveying system. Objective:  Find the adequate gearbox and gearbox ratio, that yield the expected output response from the system  Terminal set:  ERC, End, Close_node  Function set:  Add_t, Desprog_2, Desprog_3, + , –,*  Fitness cases:  The given sample of data points  Raw fitness:  The sum of the absolute value of the difference between the simulated response and the expected response of the electromechanical conveying system for the specific input.  Standardized fitness:  Same as raw fitness for this problem  Control parameters:  M=100. G = 50  The best GP tree individual found from generation 47 had a raw fitness value of 0.0300. Figure 5.21 graphically depicts the best individual as a rooted, point-labeled tree with ordered branches. 82  Figure 5.21: Best GP tree individual found for the electromechanical conveying system. Before making the changes (described in section 4.3) to the conveying system, the gearbox ratio was 147.92:1. This gearbox had an average time per cycle of 3.04 seconds with an average distance traveled by the indexing pins of 30.5 cm. To compensate for the 0.54 seconds lost every cycle, the operator could have increased the motor speed; thus the gearbox functioned out of the design specification for prolonged periods. Consequently, the MHMS has detected failures in the gearbox, possibly because at higher pitch line speeds, although there might be enough oil on the gear tooth surfaces for lubrication, it might not be adequate for cooling and the gearbox might be heating up.  The best individual GP tree calculated a value of 106.58:1 for the gearbox ratio. This gearbox ratio produces an average time per cycle of 2.53 seconds which fully satisfies the original design specification of 2.5 seconds per cycle. 83  Figure 5.14 presents the fitness of the best individual found, as well as the evolution median, average, and average +/- standard deviation values of fitness.  Figure 5.22: Fitness plot.  Finally, Figure 5.23 presents the evolution of the tree depth and size during the run. Also the plot shows the values of the best individual found.  Figure 5.23: Complexity plot.  84  5.4 Summary In this chapter, multiple experiments were carried out to validate the developed system framework and specifically, to test the developed Evolutionary Design Optimization System. In this regard, two design examples, a translational mechanical domain system and a mechatronic system (electromechanical conveying system of an industrial fish cutting machine) were evolved in a successful manner to obtain the desired design. The novel evolutionary system (Linear Graph modeling and Genetic Programming) implemented by the modified GPLAB algorithm was capable of automatically evolving designs of the mechatronic system to satisfy the requirements. Furthermore, the experimental results in this chapter showed that the developed Design Evolution framework was quite effective in generating and evaluating design proposals for a complex industrial machine.  85  Chapter 6 Conclusions 6.1 Main Contributions In this thesis, a Design Evolution framework to automate the generation and evaluation of multidomain optimal engineering designs has been developed. Based on an extensive literature review, several systems and tools were integrated into the Optimal Design Evolution scheme. The four main subsystems that constitute the scheme are: a Machine Health Monitoring System (MHMS), a Design Expert System (DES), a Model Generation System (MGS), and an Evolutionary Design Optimization System (EDOS). The Machine Health Monitoring System, while maintaining the engineering system in an operable condition by anticipating possible failures (fault monitoring and diagnosis), will now be responsible of indicating systems or subsystems suitable of design improvement. The novel integration of a Design Expert System to the evolutionary framework will provide automatic control and expert suggestions to improve the system. It will also be able to distinguish between system malfunction (due to maintenance, operational or installation errors) and design weakness. The Evolutionary Design Optimization System in conjunction with the Model generating System is the core of this research and it is a novel methodology for evolving mechatronic engineering systems. It integrates Linear Graph modeling and Evolutionary Computing through Genetic Programming (GP). The two techniques along with their principles and main elements have been described in Chapter 3. Several functions and terminals required by the GP tool to automatically evolve designs have been developed and implemented in a modified GPLAB algorithm. The implemented algorithm integrates GPLAB, a MATLAB toolbox for GP, with the powerful modeling and simulation tool of Simscape. The Appendix provides a demonstration of the main function of the developed algorithm along with a comprehensive operational manual. The developed methodology and algorithm were implemented on a realistic experimental environment: the Iron Butcher—an industrial fish processing machine. The scheme and the 86  design alternatives generated by the algorithm were validated using computer simulation and physical experimentation. Also a state-space model of the electromechanical conveying system of the industrial machine was developed using Linear Graph modeling which provides a realistic representation of the engineering system. In addition, the Mechatronic Design Quotient (MDQ) has been established as the fitness function of the evolutionary process, as it provides an intelligent way to incorporate various design indices and human experience into the automated process in an optimal manner. Also it has proven to be a good approach to meet design constraints and does not violate the feasibility of implementation.  6.2 Future Directions Automated design evolution of engineering systems is a vast and complex area which requires thorough and continuous investigation to provide results which could be applied in today’s industries and complex machinery. The following suggestions may be considered as possible future work for the improvement of the system framework developed in this thesis and to complement the research of design and its possible automation.    The modifiable sites assigned to subsystems within the Iron Butcher’s LG model have been manually identified based on the MHMS information. In this sense, a Design Expert System could be designed and implemented in order to completely automate the process. The DES will select the most appropriate sites to evolve the embryo LG model through the Evolutionary Design Optimization System.    In this work, a mechanical and a mechatronic system were evolved through the developed algorithm. Systems from other domains could be explored to extend the benefits of the automated generation of designs to other domain and research fields.    Computational demand of the developed methodology is relatively high. The algorithm may be further improved to reduce computer resource usage and increase the processing efficiency.  87    A Graphical User Interface (GUI) could be developed to provide a more convenient and efficient interface with common users and researchers.    More detailed design failures may be implemented and more rigorous experimentation and simulation may be carried out using the industrial fish cutting machine.  88  References 1.  Suh, N.P., Axiomatic Design: Advances and Applications. MIT-Pappalardo Series in Mechanical Engineering. 2001, New York Oxford University Press. 503 p.  2.  Hu, J.J., et al., GPBG: A Framework for Evolutionary Design of Multi-domain Engineering Systems Using Genetic Programming and Bond Graphs, in Design by Evolution: Advances in Evolutionary Design, P.F. Hingston, L.C. Barone, and Z. Michalewicz, Editors. 2008. p. 319-345.  3.  Committee on Engineering Design Theory and Methodology, N.R.C.U.S., Improving engineering design: designing for competitive advantage. , ed. M.S.B. Committee on Engineering Design Theory and Methodology, Commission on Engineering and Technical Systems, National Research Council. 1991, Washington, D.C.: National Academy Press. x, 107 p.  4.  de Silva, C.W., Mechatronics: An Integrated Approach. 2005, Boca Raton, FL: CRC Press, Taylor & Francis.  5.  de Silva, C.W., Mechatronics: A Foundation Course. 2010, Boca Raton, FL: CRC Press, Taylor & Francis.  6.  Koenig, H.E., Y. Tokad, and H.K. Kesavan, Analysis of Discrete Physical Systems. McGraw-Hill Electrical and Electronic Engineering Series. 1967, New York: McGrawHill. 447 pages.  7.  Birkett, S., J. Thoma, and P. Roe, A Pedagogical Analysis of Bond Graph and Linear Graph Physical System Models. Mathematical and Computer Modelling of Dynamical Systems, 2006. 12(2-3). p. 107-125.  8.  Roe, P.H., Networks and Systems Addison-Wesley Series in Electrical Engineering. 1966, Reading, Mass.: Addison-Wesley Pub. Co., xiii, 336 p.  9.  Blackwell, W.A., Mathematical Modeling of Physical Networks. Macmillan Series in Electrical Science. 1968, New York, NY: Macmillan Publishing Company.  10.  McPhee, J., C. Schmitke, and S. Redmond, Dynamic modelling of mechatronic multibody systems with symbolic computing and linear graph theory. Mathematical and Computer Modelling of Dynamical Systems, 2004. 10(1). p. 1-23.  11.  de Silva, C.W., Modeling and Control of Engineering Systems. 2009, Boca Raton, FL: CRC Press, Taylor & Francis. 89  12.  Holland, J.H., Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control and Artificial Intelligence. 1975, Ann Arbor, MI: University of Michigan Press.  13.  Koza, J.R., Genetic Programming: On the Programming of Computers by Means of Natural Selection. 1992, The MIT Press.  14.  Riolo, R.L., T. Soule, and U.M. O'Reilly, Genetic Programming Theory and Practice IV, ed. R. Riolo, T. Soule, and B. Worzel. Vol. 4. 2007, New York, NY: Springer. 338.  15.  Koza, J.R., et al., Genetic Programming III: Darwinian Invention and Problem Solving. 1999, San Francisco, CA: Morgan Kaufman Publishers.  16.  Karray, F. and de Silva, C.W., Soft Computing and Intelligent Systems Design. 2004, New York, NY: Addison-Wesley.  17.  Koza, J.R., Genetic Programming II - Automatic Discovery of Reusable Programs. 1994, The MIT Press.  18.  Koza, J.R., et al., Invention and Creativity in Automated Design by Means of Genetic Programming. Ai Edam-Artificial Intelligence for Engineering Design Analysis and Manufacturing, 2004. 18(3). p. 245-269.  19.  Seo, K., et al., Toward a Unified and Automated Design Methodology for Multi-domain Dynamic Systems Using Bond Graphs and Genetic Programming. Mechatronics, 2003. 13(8-9). p. 851-885.  20.  Fan, Z., et al., Bond Graph Representation and GP for Automated Analog Filter Design, in In Proc. of Genetic and Evolutionary Computation Conference Late-Breaking Papers. 2001, Press. p. 81-86.  21.  Behbahani, S., Practical and Analytical Studies on the Development of Formal Evaluation and Design Methodologies for Mechatronic Systems in Mechanical Engineering. 2007, University of British Columbia: Vancouver. p. xx, 164.  22.  de Silva, C.W., Sensory Information Acquisition for Monitoring and Control of Intelligent Mechatronic Systems. International Journal of Information Acquisition, 2004. 1(1). p. 89-99.  23.  Behbahani, S. and C.W. de Silva, "Mechatronic Design Quotient as the Basis of a New Multicriteria Mechatronic Design Methodology." Ieee-Asme Transactions on Mechatronics, 2007. 12(2). p. 227-232.  90  24  Sun, J., Poo, A.N., Ang, M.H., Hong, G.S., de Silva, C.W., and Tan, K.K., Design of Vibration Controllers for Flexible Beams Using the Mechatronic Design Quotient (MDQ) Approach. Journal of Vibration and Control, 2007. 13(1). p. 65-94.  25  Behbahani, S. and de Silva, C.W., System-based and Concurrent Design of a Smart Mechatronic System Using the Concept of Mechatronic Design Quotient (MDQ). IEEE/ASME Transactions on Mechatronics, 2008. 13(1). p. 14-21.  26  Sun, J., Poo, A.N., Chew, C.M., Ang, M.H., Hong, G.S., de Silva, C.W., and Tan, K.K., Optimization of Mechatronic Design Quotient Using Genetic Algorithm in Vibration Controllers for Flexible Beams. Journal of Vibration and Control, 2009. 15(11). p. 16031626.  27.  Lang, H.X., Y. Wang, and C.W. de Silva, An Automated Industrial Fish Cutting Machine: Control, Fault Diagnosis and Remote Monitoring. 2008 IEEE International Conference on Automation and Logistics. 2008. 775-780.  28.  Raman, S. and de Silva, C.W., “Classifier Design for Sensor-Fault Tolerant Condition Monitoring in an Industrial Machine,” Proceedings of the ASME 2009 Dynamic Systems and Control Conference, Hollywood, CA, Paper DSCC2009-2667, CD Proceedings pp. 1-7, October 2009.  29.  Razavi, B. and de Silva, C.W., “Condition Monitoring in a Hydraulic System of an Industrial Machine Using Unscented Kalman Filter,” International Journal of Information Acquisition, August 2010 (Accepted).  30.  de Silva, C.W., Intelligent Control—Fuzzy Logic Applications. 1995, Boca Raton, FL: CRC Press, Taylor & Francis.  31.  Tanaka, H., et al., Research and Development on Expert Systems Applications to Power Systems in Japan. International Journal of Electrical Power & Energy Systems, 1992. 14(2-3). p. 71-85.  32.  Liao, S.H., Expert System Methodologies and Applications - A Decade Review from 1995 to 2004. Expert Systems with Applications, 2005. 28(1). p. 93-103.  33.  Valavanis, K.P., A.I. Kokkinaki, and S.G. Tzafestas, Knowledge-based (Expert) Systems in Engineering Applications - A Survery. Journal of Intelligent & Robotic Systems, 1994. 10(2). p. 113-145.  91  34.  Luke, S. and L. Panait, Lexicographic Parsimony Pressure, in Proceedings of the Genetic and Evolutionary Computation Conference, W.B. Langdon, Editor. 2002, Morgan Kaufman: San Francisco, CA. p. 829 - 836.  35.  Silva, S. and J. Almeida. GPLAB - A Genetic Programming Toolbox for MATLAB. in Proceedings of the Nordic MATLAB Conference (NMC-2003). 2003. Copenhagen, Denmark.  36.  MathWorks, T., Simscape User's Guide. 2008: Natick, MA.  92  Appendix A EDOS Operation Manual A.1 Introduction To perform the automated synthesis and topology design of mechatronic systems, the developed Evolutionary Design Optimization System (EDOS) algorithm has been implemented using MATLAB®2 programming language. As mentioned before, the algorithm integrates the powerful modeling and simulation tool of Simscape™ and an adaptation of GPLAB 3, a Genetic Programming toolbox for MATLAB. Simscape is an extension of Simulink®, where the blocks introduced in the modeling environment directly represent physical components or the physical connections between such components. This causal modeling and simulation software allows the user, just as Linear Graph modeling, to represent multi-domain physical systems. The software provides several modules and blocks that represent a vast majority of mechanical, hydraulic, and electrical components. Moreover, it also allows the user to develop its own components or to define other domains as required (e.g., pneumatic, thermal). On the other hand, GPLAB combines a highly modular and modifiable structure with automatic parameterization techniques, all of which facilitated this research, to build and test new functionalities such as its integration with Simscape. The GPLAB toolbox provided a solid foundation, with all its functions and graphical capabilities, to build the EDOS algorithm. However, several “plug and play” functions and terminals had to be developed. These functions and terminals were described in Chapter 3 of this thesis. The closure property had to be verified in order to correctly generate the tree structures (instructions on how to build the Simscape models). Also a fitness function was implemented, so that every model could be simulated and a fitness measure could be calculated. The fitness measured is obtained as the sum of the absolute  2  The MathWorks http:// www.mathworks.com/products/MATLAB/  3  GPLAB, a Genetic Programming toolbox for MATLAB available at http://gplab.sourceforge.net/download.html  93  differences between the simulated and the expected results. The lower the fitness value, the better the individual. Further information may be found at the developer’s websites. Comprehensive user manuals are found at [35] and [36]. A.2 Procedure The first step in the procedure is to define and prepare the embryo model in the Simscape environment. For this purpose, the user has to develop the model that will be evolved and has to select the modifiable sites where a design enhancement would be possible. Fig A.1 shows the embryo model and test fixture used in Section 5 of this thesis.  Figure A.1: Simscape embryo and test fixture model.  Once the modifiable sites are selected, Port Handles have to be retrieved and stored in the file named Nodelist. The Nodelist file will contain all the information that is required to initialize every model before being simulated and will keep the working parameters available for the GPLAB algorithm.  94  For the model shown in Figure A.1, the instructions to obtain and store the Port Handles, which correspond to the Mechanical Translational Reference and the Ideal Force Source are: Block1PortHandles = get_param([sys '/Mechanical Translational Reference'],'PortHandles'); Nodelist(1).Handle=Block1PortHandles.LConn(1); Block2PortHandles = get_param([sys '/Ideal Force Source'],'PortHandles'); Nodelist(2).Handle=Block2PortHandles.LConn(1);  For every new Port Handle stored in the Nodelist file, an Openhandle status will be assigned. The status could only be changed once the terminal Close_node has been applied to the node and therefore, the modifiable site stops being modifiable. The Simscape model filename has also to be stored in the file NodelistandGPinfo12. This will indicate to the algorithm which system has to be evolved (e.g., if a model name is low-pass filter, then sys = ‘lowpassfilter’;). . It is important that the embryo model includes the inputs (sources) and outputs (sinks or scopes for visualization) that are required to simulate a complete model. The output information will be stored in the MATLAB workspace and will be used to calculate the fitness of every individual. The next step required in the parameterization of the modified GPLAB algorithm, is to store the desired performance data in the input variables: input_yr6.txt and input_xr6.txt. The data stored in these variables will be compared against the simulated responses for every individual in each generation and the lowest calculated fitness value will determine the best individuals. The function M-file desfitness12.m corresponds to the instructions on how to calculate the fitness and may be changed according to the user requirements. NodelistandGPinfo12 and NodelistandGPinfo13 are files that have to be set up depending on the number of modifiable sites and are used to initialize the variables to be used by the algorithm. The following lines correspond to the NodelistandGPinfo13 source code:  open_system(sys) % Open the model %load_system(sys); % Alternate option to load model in background to save %computer resources %Create Nodelist and GP info for example of two modifiable sites Nodelist(1).id=1;  95  Nodelist(2).id=2; Nodelist(1).Status='openhandle'; Nodelist(2).Status='openhandle'; %In case of 3 or more modifiable sites, the fields with * have to be %changed accordingly to the number of modifiable sites GPInfo.Currentnameid=1; GPInfo.Currentnodeid=1; GPInfo.Openstatuscounter=2; %* GPInfo.Maxnodeid=2; %* GPInfo.Fitnesspenalty=0; GPInfo.Componentcounter=0; GPInfo.Nodecounter=2; %* GPInfo.Linecounter=0;  Now that the embryo model has been established, expected response data has been stored, and working variables and files have been generated, the GPLAB algorithm is ready to be initialized. The user has to define certain GP parameters (described in the GPLAB Manual) depending on the level of usage and complexity of the research to be performed. The basic parameters to set up are: g: Generations: Maximum number of generations to run the algorithm. n: Individuals: Population size. All other parameters such as operators, functions and terminals have to be changed according to the domain to be researched. Also the fitness function may be adapted to incorporate several criteria or different fitness cases. Once the GPLAB parameters have been established (or the default values would be used), the algorithm proceeds to generate the initial population of individuals. The program will use the settings defined by the user (number of generations and individuals, parameters, operators, fitness function, etc.) and the tree structures will be originated with one of the three available initialization methods: Full, Grow, Ramped Half-and-Half. The individuals will be built using the functions and terminals previously defined by the user and a fitness function will be applied to determine each individual’s fitness. After the initial generation has been created, the program will apply the genetic operators to a group of parents from the population. The parents will be selected by a sampling method (e.g., Roulette, SUS, Tournament or Lexicographic Parsimony Pressure Tournament). After the parents have chosen, tree crossover and tree mutation are the two available operators for creating 96  the new generation until the population is complete. When the individual fitness has been calculated, a survival module chooses the individuals which will form the next population based on the elitism and survival parameters. A.3 Demo A demonstration function desdemo10 has been developed to illustrate the modified GPLAB algorithm usage. The source code is: function [v,b]=desdemo10 %DESDEMO 10 Demonstration of the Evolutionary Design Optimization System. % % % Copyright (C) 2008-2010 Jesus Campos (jramcam@hotmail.com) NodelistandGPinfo12; fprintf('Running Evolutionary Design Optimization System demo...'); p=resetparams; p.sampling='roulette'; p.elitism='keepbest'; p.survival='fixedpopsize'; p=setoperators(p,'crossover',2,2,'mutation',1,1); p=setfunctions(p,'desprogn2',2,'desprogn3',3); p=setterminals(p,'closenode10','addline12','addspring10','adddamper10','addma ss10'); p.calcfitness='desfitness12'; p.lowerisbetter=1; p.autovars=0; p.datafilex='input_xr6.txt'; p.datafiley='input_yr6.txt'; p.calcdiversity={}; p.calccomplexity=0; p.depthnodes='2'; p.graphics={'plotfitness','plotcomplexity'}; p.hits='[50,10]'; [v,b]=gplab(10,20,p); drawtree(v.state.bestsofar.tree);  The demo runs an automated synthesis and topology design of a Mass-Spring-Damper with 20 individuals for 10 generations. While performing the simulation, the demo will present (and update every generation) the plot showing the evolution of the fitness (See Fig. A.2), the tree depth (See Fig. A.3), and the number of nodes of all the best individuals found during the run. At the end of the run, a plot shows the tree (See Fig. A.4) with the respective node labels of the best individual found. 97  Fitness 7 maximum: 0.0028492 median: 5 average: 3.5389 avg - std: 1.4836 avg + std: 5.5942 best so far: 0.0028492  6  5  fitness  4  3  2  1  0 0  10  20  30  40  50  60  70  generation  Figure A.2: Fitness plot after 70 generations.  Structural complexity 50 maximum size: 28 bestsofar size: 10 bestsofar introns: 7 bestsofar depth: 5  45  40  tree depth*10 / tree size / %introns  35  30  25  20  15  10  5  0  0  10  20  30  40  50  60  70  generation  Figure A.3: Complexity plot after 70 generations.  98  desprogn2  desprogn2  addline12  desprogn3  addspring10  desprogn2  adddamper10  closenode10  closenode10  addline12  Figure A.4: Modified GLAB tree found after 70 generations.  Several other functions are available to visualize different characteristics of every run and its evolution (e.g., Pareto front, operator evolution, etc.). The two functions available to run the demo are: [vars,b]=desdemo10; [vars,b]=gplab(g,vars);  The first function will initialize the default parameters and will run the algorithm for 10 generations of 20 individuals. It will return all the variables of the algorithm (vars) and the best individual found (b). The second function will continue a previously started run for other g generations and requires the variable vars as an input. The desdemo10 operators are the standard crossover and mutation. The crossover operator creates two new individuals by swapping sub-trees of the two parents at random points. The mutation operator creates a new individual originated by substituting a random sub-tree of a parent by a new randomly created tree, with the same depth/size restrictions as the initial random tree. The fitness function will verify the correctness or completion of a model; this means that every 99  node has to have the closed status. This status can only be achieved when the node has a connection to another node (belonging to a component) or to the terminal ground reference. After this verification, it will follow the nodelist instructions and will build the model after which a simulation will take place. If the simulation could not be completed due to an error in the model (missing connections), the individual will receive a punishment in its fitness. Finally, the fitness will calculate the difference between the expected response (design specification) and the simulated response (actual response). sumdif=sum(abs(data.result-data.response));  The operation of the function and terminal set for the desdemo10 is based on the methodology described in Chapter 3. The source code for the function and the terminal set is presented next and it corresponds to the functions specifically required for the Translational Mechanical domain.   addmass10 function source code:  function addmass10 %addmass10 incorporates a mechanical translational mass to the model at %a modifiable site % % % Copyright (C) 2008-2010 Jesus Campos (jramcam@hotmail.com) global global global global  sys; GPInfo; Nodelist; Componentlist;  i=GPInfo.Currentnodeid; %current node's id  %Verify open status of current node in nodelist's, if so save handle if strcmp (Nodelist(i).Status, 'openhandle') x2=Nodelist(i).Handle; %Assign to j component number id to make name unique j=GPInfo.Currentnameid; str=num2str(j); %add Mass to sys add_block('fl_lib/Mechanical/Translational Elements/Mass',[sys '/Mass' str],'Mass', '100'); GPInfo.Componentcounter=GPInfo.Componentcounter+1;  100  n=GPInfo.Componentcounter; Componentlist(n).Component='Mass'; Componentlist(n).Name= ['Mass' str]; Componentlist(n).Id= n; %add 1 to counter (componentnumber) for next name of element to be unique GPInfo.Currentnameid = GPInfo.Currentnameid+1; %obtain port handles of damper created (Lconn & Rconn) BlockHandles = get_param([sys '/Mass' str],'PortHandles'); %connect embryo node (port handle) to left connector (Lconn)of added Mass add_line(sys,BlockHandles.LConn(1), x2,'autorouting','on');  Componentlist(n).Node(1)=i; Componentlist(n).Node(2)=GPInfo.Currentnodeid; else GPInfo.Fitnesspenalty=GPInfo.Fitnesspenalty+1; end    adddamper10 function source code:  function adddamper10 %adddamper10 incorporates a mechanical translational damper to the %model at a modifiable site % % % Copyright (C) 2008-2010 Jesus Campos (jramcam@hotmail.com) global global global global  sys; GPInfo; Nodelist; Componentlist;  i=GPInfo.Currentnodeid; %current node's id  %Verify open status of current node in nodelist's, if so save handle if strcmp (Nodelist(i).Status, 'openhandle') x2=Nodelist(i).Handle; %Assign to j component number id to make name unique j=GPInfo.Currentnameid; str=num2str(j); %add damper to sys add_block('fl_lib/Mechanical/Translational Elements/Translational Damper',[sys '/Damper' str],'D', '100'); GPInfo.Componentcounter=GPInfo.Componentcounter+1; n=GPInfo.Componentcounter; Componentlist(n).Component='Translational Damper'; Componentlist(n).Name= ['Damper' str]; Componentlist(n).Id= n;  101  %add 1 to counter (componentnumber) for next name of element to be unique GPInfo.Currentnameid = GPInfo.Currentnameid+1; %obtain port handles of damper created (Lconn & Rconn) BlockHandles = get_param([sys '/Damper' str],'PortHandles'); %connect embryo node (port handle) to left connector (Lconn)of added Spring add_line(sys,BlockHandles.LConn(1), x2,'autorouting','on'); %add 1 to Currentnodeid counter and save Damper's node (RConn = not connected) information (handle, id and status) to Nodelist GPInfo.Maxnodeid=GPInfo.Maxnodeid+1; Newid=GPInfo.Maxnodeid; Nodelist(Newid).id=Newid; Nodelist(Newid).Handle=BlockHandles.RConn(1); Nodelist(Newid).Status='openhandle'; GPInfo.Openstatuscounter=GPInfo.Openstatuscounter+1; GPInfo.Nodecounter=GPInfo.Nodecounter+1; Componentlist(n).Node(1)=i; Componentlist(n).Node(2)=GPInfo.Nodecounter;  else GPInfo.Fitnesspenalty=GPInfo.Fitnesspenalty+1; end    addspring10 function source code is the same as the adddamper10 function source code but replacing the damper for a translational spring.    add_line12 function source code:  function addline12 %addline12 creates a branch (connection) between two modifiable nodes % % % Copyright (C) 2008-2010 Jesus Campos (jramcam@hotmail.com) global sys; global GPInfo; global Nodelist; global Componentlist; global Linelist;  i=GPInfo.Currentnodeid; if (GPInfo.Openstatuscounter>=2)&&(GPInfo.Linecounter<=2)&& (GPInfo.Componentcounter<=2)&& (GPInfo.Nodecounter>2)  102  if strcmp (Nodelist(i).Status, 'openhandle') xA=Nodelist(i).Handle;  a b c d e  = = = = =  (1:GPInfo.Maxnodeid); zeros(1, 20); zeros(1, 20); zeros(1, 20); zeros(1, 20);  for m=1:GPInfo.Componentcounter if Componentlist(m).Node(1)==i b(m) = Componentlist(m).Node(2); elseif Componentlist(m).Node(2)==i c(m) = Componentlist(m).Node(1); end continue, end for n=1:GPInfo.Linecounter if Linelist(n).Node(1)==i d(n) = Linelist(n).Node(2); elseif Linelist(n).Node(2)==i e(n) = Linelist(n).Node(1); end continue, end Componentnodes=union (b,c); Linenodes=union (d,e); notavailablenodes=union (Componentnodes,Linenodes); availablenodes = setxor(a, notavailablenodes); availablenodes2 = setxor(a, i); availablenodes3=intersect (availablenodes,availablenodes2); if i==1 availablenodes3=setxor (availablenodes3,2); elseif i==2 availablenodes3=setxor (availablenodes3,1); end for o=min(availablenodes3):max(availablenodes3) if ismember(o,availablenodes3) if strcmp (Nodelist(o).Status, 'openhandle') xB=Nodelist(o).Handle; add_line(sys,xA,xB,'autorouting','on'); GPInfo.Linecounter=GPInfo.Linecounter+1; p=GPInfo.Linecounter; Linelist(p).Node(1)=i; Linelist(p).Node(2)=o; GPInfo.Currentnodeid=o; break else GPInfo.Fitnesspenalty=GPInfo.Fitnesspenalty+1; end else continue end end  103  else GPInfo.Fitnesspenalty=GPInfo.Fitnesspenalty+2; end else GPInfo.Fitnesspenalty=GPInfo.Fitnesspenalty+2.5; end    close_node function source code:  function closenode10 %closenode10 assigns close status to a modifiable node % % % Copyright (C) 2008-2010 Jesus Campos (jramcam@hotmail.com) global GPInfo; global Nodelist;  i=GPInfo.Currentnodeid; %Verify open status of current node and change it to close status in nodelist and if strcmp (Nodelist(i).Status, 'openhandle') Nodelist(i).Status='closehandle'; GPInfo.Openstatuscounter=GPInfo.Openstatuscounter-1; if GPInfo.Currentnodeid<GPInfo.Maxnodeid GPInfo.Currentnodeid=GPInfo.Currentnodeid+1; else GPInfo.Fitnesspenalty=GPInfo.Fitnesspenalty+1; end else GPInfo.Fitnesspenalty=GPInfo.Fitnesspenalty+2; end    desprogn2 function source code:  function desprogn2(actions) %desprog2 evaluates two actions sequentially. % % % Copyright (C) 2008-2010 Jesus Campos (jramcam@hotmail.com) global GPInfo; global Nodelist; i=GPInfo.Currentnodeid;  104  if strcmp (Nodelist(i).Status, 'openhandle') deseval(actions[19]); deseval(actions[19]); else GPInfo.Fitnesspenalty=GPInfo.Fitnesspenalty+1; end    desprogn3 function is the same as desprogn2, but instead of performing two actions sequentially it executes three actions.    Ground reference (gnd_ref) connects the node that has not been used so far to a ground reference.    Arithmetic value (ERC) generates an arithmetic value for any added component (parameter) that has not been closed by the end terminal.  105  

Cite

Citation Scheme:

        

Citations by CSL (citeproc-js)

Usage Statistics

Share

Embed

Customize your widget with the following options, then copy and paste the code below into the HTML of your page to embed this item in your website.
                        
                            <div id="ubcOpenCollectionsWidgetDisplay">
                            <script id="ubcOpenCollectionsWidget"
                            src="{[{embed.src}]}"
                            data-item="{[{embed.item}]}"
                            data-collection="{[{embed.collection}]}"
                            data-metadata="{[{embed.showMetadata}]}"
                            data-width="{[{embed.width}]}"
                            async >
                            </script>
                            </div>
                        
                    
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:
http://iiif.library.ubc.ca/presentation/dsp.24.1-0071460/manifest

Comment

Related Items