COMPOSITIONAL DESIGN AND SIMULATION OF ENGINEERED SYSTEMS. Rajarishi Sinha. ICES Technical Report

Size: px
Start display at page:

Download "COMPOSITIONAL DESIGN AND SIMULATION OF ENGINEERED SYSTEMS. Rajarishi Sinha. ICES Technical Report"

Transcription

1 COMPOSITIONAL DESIGN AND SIMULATION OF ENGINEERED SYSTEMS Rajarishi Sinha ICES Technical Report Institute for Complex Engineered Systems Carnegie Mellon University Pittsburgh, PA 15213, USA. January by Rajarishi Sinha. All rights reserved.

2 COMPOSITIONAL DESIGN AND SIMULATION OF ENGINEERED SYSTEMS by Rajarishi Sinha A thesis submitted in partial fulfillment of the requirements for the degree of Doctorate of Philosophy in Electromechanical Systems Design Carnegie Mellon University January 2002 Thesis committee: Professor Pradeep K. Khosla Dr. Christiaan J.J. Paredis Professor Susan Finger Professor Satyandra K. Gupta Program Authorized to Offer Degree College of Engineering ii

3 Extended Abstract Compositional Design And Simulation Of Engineered Systems by Rajarishi Sinha Doctor of Philosophy in Electromechanical Systems Design Carnegie Mellon University Professor Pradeep K. Khosla and Dr. Christiaan J.J. Paredis, Co-chairs The realization of new electromechanical devices is characterized by ever shortening times to market, along with increasing customer demand for improved quality. The design process consumes a significant portion of the total development time, so that a company can achieve a distinct competitive advantage by shortening the design-cycle through virtual prototyping. In this thesis, we propose to support the process of virtual prototyping of multidisciplinary systems. We focus our attention on those aspects of modeling and simulation of the virtual prototype that are particularly important in the context of integration with design. Specifically, we further the current state-of-the-art with respect to representation, ease of use, and integration with design environments. One of the most basic issues is that of representation. We present an attribute grammar based representation that represents the building blocks of our virtual prototype in a uniform fashion. The representation captures both the design data and the simulation models in the prototype. The prototype is represented as a set of attributes that capture its characteristics. We provide a set-theoretic formalism that describes the attributes and formal rules that govern the building blocks of our framework. We provide guidelines that indicate how the designer may extend our formalism. Another important requirement is that simulation models be easy to create. Our virtual prototyping framework is based on the composition of port-based objects. In our framework, the designer does not have to work with equations and algorithms, and instead selects components and composes them into systems via their ports. Our iii

4 algorithms automatically compose the corresponding behavioral models to create a system-level model. In this thesis, we further the evolution towards a seamless integration of design and simulation at the system level by introducing the idea of a component object. They contain their configuration information as well as behavioral models and design data. They are connected to other component objects via ports. In our framework, the virtual prototype is created once all the component objects are interconnected. Connecting component objects via their ports is not sufficient to create a complete system-level model. The behavioral models of each component object must also be connected to each other. However, as we will show in the thesis, merely making a connection between the modeling ports can result in an incorrect model in many cases. For a composition operation over component objects to be successful in generating a system-level virtual prototype, component interaction models are required. We introduce the idea of component interaction models that connect the behavioral models of two interconnected component objects. Interaction models capture the physical dynamics at the interfaces between components. This thesis presents a framework that supports the representation, modeling and organization of interactions between components. Equally important to ease of creation is the requirement that simulation models be accurate. The designer provides the design data of the component object, and sometimes it is possible to automatically extract the type and parameters of the behavioral model. We provide a framework by which consistency is maintained between the design and the mechanics simulation model of the component objects in the virtual prototype. A component interaction model contains no design data, however the model depends on the participating component objects. We provide a framework and algorithms that extract the mechanical interaction model between two mechanically connected component objects. We use the framework to provide feedback to the designer. We apply these ideas to a MEMS-based resonator. We model the resonator with our framework and point out the relative merits of our approach. iv

5 Acknowledgments Utúlie'n aurë! Aiya Eldalie ar Atanatári utúlie'n auré! "The day has come! Behold, people of the Eldar and Fathers of Men, the day has come!" Fingon s cry at the Nirnaeth Anrnoediad, from the Silmarillion Well, here at last, dear friends, on the shores of the Sea comes the end of our fellowship in Middle-earth. Go in peace! I will not say: do not weep; for not all tears are an evil. Gandalf at the Grey Havens, from the Lord of the Rings I would like to thank my advisors, Dr. Christiaan J.J. Paredis and Prof. Pradeep K. Khosla for their guidance and support. Pradeep helped me see the big picture in my research, so that my Ph.D. would have a good theoretical basis and at the same time be relevant to the needs of industry. He was also patient with me, and accommodated my slow learning curve. A very special thanks goes to Chris he is the one who has been with me in the trenches throughout my Ph.D. He encouraged me when I was lost, and enthusiastically supported me when I was on a roll. I greatly enjoyed the brainstorming and modeling sessions that I had with him over the years. I would also like to thank Prof. Satyandra K. Gupta and Prof. Susan Finger, the other members of my thesis committee for guiding my research. S.K. in particular was instrumental in the initial stages of my work, and he gave me very useful professional advice throughout my Ph.D. Thanks go to Prof. Benoit Morel and Prof. Mitchell Small at Carnegie Mellon, Dr. Raju Mattikalli at The Boeing Company, and Prof. Bill Regli at Drexel University for many hours of fruitful discussion. v

6 Murali Seshadri, Sitaraman Iyer and Qi Jing, helped in creating the MEMS-based accelerometer example for the thesis. Without their advice and patient answers to my many questions, I would have made several avoidable errors in my models. Thanks also go to Prof. Gary Fedder and Dr. Tamal Mukherjee for giving me access to their models. I would like to thank the other members of the Composable Simulation group: Antonio Diaz-Calderon, Vei-Chung Liang, Li Han, Peder Andersen, Khaled Al-Ajmi and Boris Kaminsky. The many discussions and that we had have enriched this thesis. You never realize how much you learn in weekly group meetings until you stop attending them! Antonio, Murali and Vei-Chung have also been good friends at Carnegie Mellon. The research that led to this PhD thesis was funded in part by DARPA, the Raytheon Company, DaimlerChrysler Rail Systems (Adtranz), the National Institute of Standards and Technology, the Robotics Institute, the National Science Foundation, the Pennsylvania Infrastructure Technology Alliance, and the Institute for Complex Engineered Systems at Carnegie Mellon University. My stay at Carnegie Mellon would have been dreary if it were not for Srikanth Cheeku Venkatasubramanian, Vipul Mochu Jain, and Venkat Avro Ayyadevara. Here s to the many dinners, and movies, and late nights spent watching Beavis and Butthead! Antonio and Octavio Juarez: I will miss the hours we spent over lunches, discussing everything under the sun. vi

7 I owe my parents Kalyan & Akhila Sinha for bringing me up in an academically challenging environment it is the single most important reason why I have come this far in my education. I also owe my sister Jayanti Sinha a deep debt of gratitude for supporting and encouraging me through these years. To my parents-in-law Jitendra and Sulochana Bhojak: I have never met two kinder people, and I am proud to be a part of your family. To my friend and sister-in-law Nehal Lotta Bhojak: You re still my bestest friend! My friend and companion, sometime neighbor, and now my wife Tejal: I would never have made it without you. Thank you for laughing with me when I was happy, and holding me up when I was sad. This too, as in all other things, I owe to you. Rajarishi Sinha January 11, 2001 Pittsburgh, PA, USA vii

8 Table of Contents Extended Abstract... iii Acknowledgments...v Table of Contents... viii List of Figures... xii 1 Thesis Overview Introduction and Motivation Thesis Objectives and Approach Related Research Simulation-based Design Configuration in Design and Software Engineering Port-Based Modeling Attribute Grammars in Design Multibody Simulation Parameter Extraction from CAD Thesis Contributions Thesis outline Composition in Design and Simulation Introduction Composable Simulations The Port-Based Modeling Paradigm Port-Based Modeling of Mechanical Systems The Composition in Simulation and Design (COINSIDE) Environment Architecture Data Model Modification Modules Design Services Event-Based Synchronization Simulation Engine Summary An Attribute-based Representation for Systems Introduction Attribute Grammars in System-Level Design Formal grammars Attribute grammars Grammatical representations for design A Set-Theoretic Approach to Configuration Design and Simulation Ports Parameters COINSIDE Grammars Port Grammars Interaction Model Grammars Illustrative Example...52 viii

9 3.7.1 Discussion Component Objects Introduction Component Objects Behavioral Models CAD Models Derivation of the Behavioral Model from CAD Data Illustrative Example Configuration Refinement: Configuration Refinement: Modeling Discussion Summary Component Interactions Introduction Behavioral models For interactions Interaction Models and Containers Derivation of the Interaction Model from Component Objects Illustrative Example Initial Interaction Modeling Refinement of the Interaction Model Discussion Limitations of Interaction Models Automatic Extraction of Mechanical Interaction Models Introduction Early Work on Contact Mechanics Extending Contact Mechanics to Curved Surfaces Considering Boundary Points Constant in z Considering Boundary Points Constant in θ Considering Boundary Points Varying in z and θ Generalized Contact Mechanics Articulation in Assemblies Solving the Set of Non-Penetration Conditions for Instantaneous Articulation A CAD Implementation for Instantaneous Articulation Giving Feedback to the Designer Illustrative Examples Example 1 (Arm): Demonstration of the Framework Example 2 (1-DOF 4-Bar Linkage): Global Constraint Resolution Discussion Conclusions and Future Work Case Study: MEMS-Based Resonator Introduction Product Overview Function and Structure Initial System Architecture and Model ix

10 7.4 Initial Design and Modeling Modeling Methodology: COINSIDE with Modelica The COINSIDE MEMS Library The MEMS Connector MEMS Component Objects MEMS Component Interactions Refinement of Design and Model Resonator Model Simulation and Results Design Verification: Finite Element Modeling Discussion Framework Models Modeling Language Summary Summary and Conclusions Summary Review of Contributions Discussion A Vision for Simulation-Based Engineered Device Design Future Work Modeling Integration with design tools Collaborative Modeling Appendix A Formalism A.1 General Definitions A.2 Ports A.3 Component Interaction Models Appendix B XML Representation for a Train-Track Port B.1 Partial Port DTD B.2 Port XML Document Appendix C Modelica Models C.1 MEMS Connector C.2 Base Classes C.2.1 OneMEMSConnector Model C.2.2 TwoMEMSConnectors Model C.3 Component Objects C.3.1 MEMSInertialSystem Model C.3.2 Generic Mass Model C.3.3 Generic Spring Model C.3.4 Generic Damper Model C.3.5 Resistor Model (from Modelica Electrical Library) C.3.6 Electrical Ground Model (from Modelica Electrical Library) C.3.7 Anchor Model C.3.8 Cut Anchor Model C.3.9 Beam Stiffness Model x

11 C.3.10 Beam Model C.3.11 Comb Mass Model C.3.12 Comb Drive Model C.3.13 Rigid Plate Model C.3.14 Uspring-Right Model C.3.15 Uspring-Left Model C.3.16 Resonator Model C.3.17 Resonator Test Case Model C.4 Component Interactions C.4.1 MEMS Transformation Model C.4.2 Electrostatic Gap Model C.5 External Sources C.5.1 DC Voltage Source Model (from Modelica Electrical Library) C.5.2 AC Voltage Source Model (from Modelica Electrical Library) C.5.3 Voltage-Controlled Voltage Source Model (from Modelica Electrical Library) C.5.4 External Force Model C.5.5 Sinusoidal Signal Model (from Modelica Block Library) Bibliography xi

12 List of Figures Figure 1.1. Relationship between form, function and behavior of design representations...5 Figure 1.2. Thesis overview...14 Figure 2.1. A joint constraint captures the contact interaction between two rigid bodies A and B. CA and CB are the positions of the centers of gravity and P1 and P2 are the contact points...23 Figure 2.2. The schematic shown in Figure 2.1 can be mapped into a port-based block diagram that captures the system. Interaction of each block with other blocks is via ports, where energy flow takes place. Each block encapsulates a behavior model for that entity. A...24 Figure 2.3. Java-Based GUI components and services interact with the design data model Figure 2.4. Configuration editor GUI...26 Figure D viewer GUI...27 Figure 2.6. Component repository GUI (left) and structure GUI (right)...28 Figure 2.7. Parameter editor GUI Figure 2.8. Modelica behavioral modeling GUI...31 Figure 2.9. Modelica time-series output Figure 3.1. System-level components are of two types - component objects and component interactions...35 Figure 3.2. Attribute Grammars in System-Level Design...37 Figure 3.3. An attribute grammar to generate Cartesian motion [24]. The subscripts 1 and 2 are used to differentiate between the two path attributes...39 Figure 3.4. XML representation of the attribute grammar in Figure 3.3. The production rules are not represented in the DTD Figure 3.5. Ports on a component object...43 Figure 3.6. Attribute representation of a port...46 Figure 3.7. Important axioms in the port formalism Figure 3.8. Partial port grammar...48 Figure 3.9. Attributes for the partial port grammar in Figure Figure Attribute grammar GUI...49 Figure Required attributes for interaction models...51 Figure Abstraction of a train-track interaction. Each block represents a component in the configuration layer, and a circle represents a port on the component interface...52 Figure Train-track Port...53 Figure Port maps for the train-track interaction model...54 Figure Wheel and Brush Port Figure Wheel-track interaction model for the train...56 Figure 4.1. Design as a process of configuration of components and selection of behavioral models for the components and connections...59 Figure 4.2. Components may encapsulate configurations of sub-components xii

13 Figure 4.3. A behavioral model container containing behavioral models. Behavioral models describe the physical or informational behavior of a component Figure 4.4. CAD model container Figure 4.5. The relation between form and behavior parameters...65 Figure 4.6. High-level component configuration for a single car train interacting with a track. Each block represents a component, and a circle represents a port on the component interface. Lines represent non-causal connections and arrows represent directed connections Figure 5.1. Composition of behavioral models in the electrical and mechanical domains. In (a) the composition occurs via the application of Kirchoff s Laws. However, in (b), applying Kirchoff s Laws results in an incorrect rigid joint...74 Figure 5.2. Interaction model as a container for a set of reconfigurable models. In this example, the container lists two possible behavioral models for this interaction...75 Figure 5.3. Interactions between system components Figure 5.4. Train-track interaction model container that captures all the candidate interaction models that can model the connection between the train and the track...78 Figure 5.5. The train-track interaction model at the early design stage. The mechanical interaction has been disaggregated into the individual ports for the four wheels of the train Figure 5.6. The train-track interaction model in the detailed design stage. The mechanical interaction has been refined to a rolling joint with rolling friction...80 Figure 5.7. In (a), the mechanical interaction between the shaft and the bearing is localized their interfaces the outer curved surface of the shaft and the inner curved surface of the bearing. However, in (b), The gravity interaction between the planet and the satellite is not limited to the surface, and involves the entire mass of both components (image from NASA MAP Science Team) Figure 6.1. Non-penetration condition at a point. Planes 1 and 2 are coplanar but are shown as separated for clarity...89 Figure 6.2. Non-penetration condition along a line. r is the position vector of an arbitrary point along the contact line between P 1 and Q 1. Planes 1 and 2 are coplanar but are shown as separated for clarity...90 Figure 6.3. Non-penetration condition in a polygonal surface. r is the position vector of an arbitrary point within the polygon bounded by P 1, Q 1 and R 1. Planes 1 and 2 are coplanar but are shown as separated for clarity...90 Figure 6.4. Plane containing r also contains the normal vectors to r...99 Figure 6.5. Contact graph for a 4-part assembly. Nodes represent the four parts. Edges represent the contacts. The contact surface that forms the intersection set is shown in each edge Figure part assembly with 3 degrees of freedom Figure 6.7. Formation of the Matrix Representation Figure 6.8. Mapping feasible solutions to assembly joints Figure Bar Linkage Figure 7.1. Resonator mechanical structure Figure 7.2. Fundamental model for the mechanical response of an accelerometer [121] Figure 7.3. Basic MEMS component objects and component interactions xiii

14 Figure 7.4. Compound components Figure 7.5. Material properties of poly-silicon Figure 7.6. Simple cantilever beam configuration, Modelica output and layout verification Figure 7.7. Spring suspensions Figure 7.8. Electrostatic port Figure 7.9. Electrostatic interaction model attribute representation Figure Resonator icon in Modelica. The icon represents the physical layout Figure Resonator configuration in Modelica Figure Resonator test case embedded in a vehicle Figure Resonator test case configuration Figure Resonator FEM model setup in ANSYS DesignSpace Figure Resonating frequencies for the resonator Figure Damping interaction in the U-spring xiv

15 1 Thesis Overview 1 Knowledge, the object of knowledge and the knower are the three factors which motivate action; the senses, the work and the doer comprise the threefold basis of action. The Bhagavad Gita As a man can drink water from any side of a full tank, so the skilled theologian can wrest from any scripture that which will serve his purpose. The Bhagavad Gita The engineer's first problem in any design situation is to discover what the problem really is. Unknown 1.1 Introduction and Motivation Manufacturing companies design and fabricate new products for their respective markets. In an increasingly competitive business environment, the time-to-market is continually decreasing, and customers increasingly demand better quality. It is important for companies to be able to design and test the behavior of their products under these market conditions. Often, physical prototyping is used for this purpose. Physical prototyping, even for relatively simple products, can be an expensive and time-consuming process. Design iterations are lengthened by the manufacturing time and physical analysis time for the prototype. Sometimes, special tools, fixtures and dies are required that are no longer useful once the prototyping stage is complete. 1 This chapter is partly based on the following published paper: Paredis, C.J.J; Diaz-Calderon, A.; Sinha, R.; and Khosla, P.K., "Composable Models for Simulation- Based Design", Engineering with Computers, 17(2): ,

16 Many companies are resorting to simulation tools to improve their design process an activity known as virtual prototyping. A well-publicized example of virtual prototyping is the design of the Boeing 777 airplane [153]. Boeing switched from a paper-based design process to a fully digital representation, allowing them to perform performance analysis (using CFD software) and assemblability analysis without the need for building physical prototypes. This resulted in a significantly shorter design and testing period. A similar alldigital approach is being adopted by car manufacturers. Modeling and simulation enables designers to test whether design specifications are met by using virtual rather than physical experiments. The use of virtual prototypes significantly shortens the design cycle and reduces the cost of design. It further provides the designer with immediate feedback on design decisions which, in turn, promises a more comprehensive exploration of design alternatives and a better performing final design. Simulation is particularly important for the design of multi-disciplinary systems in which components in different disciplines (mechanical, electrical, embedded control, etc.) are tightly coupled to achieve optimal system performance. The exploration of large design spaces to discover optimal designs is also aided by simulation. The goal of this thesis is to present and develop a new framework for virtual prototyping. Our framework is based on composition and closely integrates the product design process with behavioral simulation. We limit the scope of this thesis by concentrating on system-level modeling. At a systems level, components and sub-systems are considered as black boxes that interact with each other through a discrete interface. In general, such systems can be modeled using differential algebraic equations (DAEs) [11] and/or discrete event systems 2

17 specifications (DEVS) [165]. We will not consider the systems that require partial differential equations or finite element models to model system components or component interactions. We further focus our attention on these aspects of modeling and simulation that are particularly important in the context of design. Other researchers have considered aspects related to conceptual design [31]. In this thesis, we evaluate the current state-ofthe-art with respect to ease of model creation, model reuse and integration with design environments. Simulation models should be easy to create and reuse. Creating high-fidelity simulation models is a complex activity that can be quite time-consuming. Object-oriented languages provide clear advantages with respect to model development, maintenance, and reuse. We introduce new constructs that form the building blocks of our framework. When the designer uses these building blocks, he can simultaneously design and simulate electromechanical systems. In addition, to take full advantage of simulation in the context of design, it is necessary to develop a modeling framework that is integrated with the design environment, and that provides a simple and intuitive interface that requires a minimum of analysis expertise. A complete representation of the virtual prototype will incorporate a design aspect and a model aspect. It is important to ensure that these two aspects are consistent with each other. Our building blocks couple these two aspects of the representation. We introduce algorithms that maintain the consistency between the aspects. 3

18 1.2 Thesis Objectives and Approach The objective of this thesis is: Develop a virtual prototyping framework that is integrated with design by which the designer can easily create accurate models of multidisciplinary systems. We achieve this goal by the following approach Define building blocks for the framework that permit a compositional approach to virtual prototyping. Define a representation that captures our building blocks in a uniform fashion, and easily grows in detail as the design process progresses. Develop algorithms that can automatically extract portions of the representation from design data. We restrict our focus in the following ways: 1. We consider devices to be composed of interconnected elements. 2. The elements achieve the function of the device by the exchange of energy and signals. 3. This thesis focuses on mechanical, electrical and signal exchange between the interconnected elements. In particular, our algorithms are written specifically to obtain mechanical models from design data. 4

19 Synthesis Form Modeling Function Behavior Analysis Figure 1.1. Relationship between form, function and behavior of design representations. 4. The exchange of energy is restricted to the interface to the elements. Physical interconnections that have a distributed, field characteristic are not considered in this thesis. 1.3 Related Research In this section, we present the relevant areas of research that significantly impact this thesis. In addition, each subsequent chapter also contains references to other work that is relevant to that chapter Simulation-based Design The success of simulation-based design has already been demonstrated commercially. However, many unresolved research issues remain to be addressed. Ongoing research includes model validation [18], automatic meshing and model creation [161], integration of simulation engines in different domains [150], architectures for collaboration [72], and visualization using virtual reality technology [34]. In this thesis, we focus on simplifying the process of model creation, by integrating form and behavior into component objects. 5

20 Our approach is based on the characterization of a design prototype by its form, function, and behavior [105]. The form is a description of the physical embodiment of an artifact, while function is the purpose of the artifact the behavior that the designer intended to achieve. As is illustrated in Figure 1.1, the actual behavior does not depend on the function, but only on the form. During design or synthesis, we transform function into form, while, during design verification, we derive the behavior from the form and verify whether this behavior matches the function. In the context of virtual prototyping, the behavior is described by mathematical models and design verification is achieved by performing simulation experiments with these models Configuration in Design and Software Engineering Our framework is driven by configuration of components that contain analysis models, with rules imposed by a set-theoretic formalism. At the present time, our framework does not incorporate optimization capabilities; we restrict ourselves to analysis of a single configuration at a time. Configuration has been studied in the context of design specification. Feldkamp et al. [53] use port-based composition to describe hierarchical configurations of complex engineering design specifications. Motta and Zdrahal [91] look at solving parametric design problems using configuration. Gandhi and Robertson [58] describe a conceptual data model for the configuration of design specifications. We extend these ideas in Chapter 4 by incorporating analysis models in the configuration model. Other researchers have looked at the configuration problem from a mathematical and set-theoretic perspective. Some of these results that relate to engineering design and simulation include Wache and Kamp [156] who have recognized that relationships in 6

21 configuration problems can include physical laws in a technical domain, part-whole taxonomies, and procedures in the mechanical engineering domain. Burckert et al. [26] describe the role of formal domain knowledge in configuration problems. Sattler [121] defines a description logic for part-whole relations. In Chapter 3, we define a set-theoretic formalism that imposes rules on ports, and interaction models. Configuration also plays an important role in component-based software engineering. Components are used to describe specific software services, and ports are used to connect components together [5, 50, 84]. Other researchers have used type systems to enforce rules governing software component composition [79]. In Chapter 3, we define type systems that govern ports used in engineering design and simulation Port-Based Modeling The software design methodology of object-oriented programming can be applied to systems modeling as well, with the benefits of simplified model creation and maintenance. In this thesis, we object-oriented principles in defining the building blocks for virtual prototypes. An important principle of object-oriented programming is that of information hiding or encapsulation: an object can only be accessed through its public interface, which is independent of the underlying implementation. The same principle can be applied to modeling by making a clear distinction between the physical interactions of an object with its environment (interface) and its internal behavior (implementation) [30, 42, 164]. The advantage of encapsulation is that a system can be modeled by composing and 7

22 connecting the interfaces of its sub-systems, independently of the future implementations of these subsystems [42, 164]. To achieve encapsulation, we use a port-based modeling paradigm that is based on two concepts: ports and connections [41]. We describe the paradigm in Chapter 2. Ports correspond to the points where a component exchanges energy with the environment - one port for each separate interaction point. The interactions between components are represented by connections between ports. Each connection imposes algebraic constraints on the port variables. These constraints are the equivalents of the Kirchhoff voltage and current laws in electrical circuits. One type of constraint requires that the across variables be equal, the other that the sum of the through variables be zero. As a reflection of the underlying physics, both connections and ports are undirected. In mathematical terms, this requires that the components and connections be modeled as declarative equations rather than assignments. Many recent simulation languages are declarative, including Modelica [49], VHDL-AMS [70], and Dymola [44]; SimuLink [147], on the other hand, is procedural. All the ports combined form the interface of the model. This interface defines how the component can interact with the other components in the system, but does not contain any information about the internal behavior of the component. Instead, the interface encapsulates the implementation of the model, which defines the internal behavior of the component The port-based modeling paradigm cannot be applied to all systems; it is limited to systems with lumped interactions. When an interaction is distributed in nature, as between a boat and the water on which it floats, it must be approximated by a large 8

23 number of lumped interactions. The internal model of a component, however, may still be distributed. Consider, for example, a flexible beam attached to a structure by its two ends. A finite element model may describe the internal behavior of the beam, but the interaction with the structure can still be captured with only two ports. For mechatronic systems, the primary interactions between components tend to be lumped, so that the port-based modeling paradigm is applicable. Only when very detailed models are required, may we have to consider phenomena, such as thermal interactions, that are distributed in nature Attribute Grammars in Design Formal grammars have been the subject of extensive research in the fields of logic programming [32] and design automation [55, 97, 115]. They have been used to formalize conceptual design [9], architectural design [120], shape generation [2, 3, 28, 29] and configuration of heat exchangers [65]. Grammars have been used to model configuration spaces of relative motions between parts [142]. Attribute grammars are extensions to formal grammars that associate attributes and rules to the tokens in the formal grammar. Due to the limitations of using formal grammars to represent semantics, attribute grammars were developed for use in the development of formal languages and software compilers [36-38, 107, 157]. These ideas have been adopted for use in the hardware design field [45, 46, 47, 48, 68, 143, 144], in VLSI design automation [20] as well as for mechanical design automation [152]. We build on these concepts and provide an attribute-based formalism for use in both the configuration and analysis phases of the iterative design process. 9

24 Several researchers have investigated the applicability of formal grammars in mechanical design [9, 28, 55, 97]. However, there has not been a significant effort to formalize the representation of system-level design and simulation. In this thesis, we present attribute grammars for system-level design Multibody Simulation Baraff [21] used algorithmic methods to simulate the mechanical dynamics of multibody systems with constraints. Such an approach involves setting up the ordinary differential equations (ODEs) that govern the dynamics of the multi-body system, and solving them using variable step numerical methods. Our framework extends this approach by allowing for the composition of models, or hierarchical systems, and for the easy definition of joint constraints. Orlandea et al. [102, 103] showed that springs and dampers could be modeled using sparse systems of linear equations. This work was subsequently incorporated in the ADAMS system [90]. However, unlike ADAMS, our framework can automatically derive the behavioral models of the components from the geometry Parameter Extraction from CAD An important feature of this research is the introduction of mathematical models that capture the physical dynamics at the interfaces of components in the design and the automatic extraction of these models from geometry. For a better virtual prototype, our framework can extract a mechanical behavioral description from the design geometry. The algorithms that analyze geometry to obtain insight into its physical behavior are broadly classified as geometric and assembly modeling. 10

25 Work in the area of representing and deriving the articulation behavior of assemblies can be broadly classified into three groups: rule-based methods, algebraic methods, and group-theoretic methods. The earliest works on assembly modeling [6] presented the definitions for part mating constraints. Tilove [149] described a method to define links and joints to support animation of assemblies. Thomas and Torras [148] reported a method to determine the final relative positions of parts in an assembly given the geometry of the parts and the mating constraints. Turner et al. [151] present a method to obtain the degrees of freedom of a part in an assembly from its mating constraints. Mattikalli and Khosla [86] describe a method to obtain degrees of freedom from component mating constraints, wherein they use a unit sphere to represent the space of all available degrees of freedom. Wilson and Latombe [162] introduce the concept of a non-directional blocking graph which describes the allowed degrees of freedom after surface mating constraints have been considered. Anantha et al. [7] describe assembly modelling by the satisfaction of geometric constraints. Ge and McCarthy [59] characterize the space of possible relative positions of two components using the Clifford Algebra. Liu and Popplestone [82] present a method to describe surface contacts in terms of symmetry groups. However, group-theoretic methods do not lend themselves to easy automation. Other researchers have presented work on assembly modelling systems [75, 77, 113, 149] which handle mating conditions and kinematic simulation. Rocheleau [117] described an assembly representation which used connectivity sets to store assembly data hierarchically and including pair-wise topological relationships. 11

26 Our research, presented in Chapter 6, is based on algebraic methods and extends work done on polygonal geometries. Techniques have been developed to predict the instantaneous degrees of freedom from the CAD models of parts composed of polygonal planar faces [88]. These techniques handle only parts with planar faces; most mechatronic devices have curved parts. When curved parts are approximated as piecewise planar parts, erroneous results are likely. In this thesis, we reason about the degrees of freedom at each joint, based on surface mating constraints that are in turn obtained from analyzing the nature of body-to-body contact. We obtain a set of properties that must be satisfied by a general contact surface in order to obtain linear models. We describe a method by which the space of allowable motions in the device can be described concisely. 1.4 Thesis Contributions The contributions of this thesis to the state-of-the-art are: A new framework for virtual prototyping. We define a framework that supports the simultaneous design and behavioral simulation of multidisciplinary systems. Our building blocks for virtual prototypes contain both design data and simulation models. Our framework supports and maintains consistency within and between building blocks (Chapter 2). Building blocks for virtual prototypes. We define the building blocks for rapid virtual prototyping. We use the composable simulation paradigm to compose system-level models using our building blocks (Chapters 2 and 4). 12

27 Representation of virtual prototypes. We define a formal grammar to represent our building blocks in the virtual prototype (Chapter 3). Component Interaction models. When two building blocks are connected together, there are physical phenomena that occur at the interfaces between the blocks that must also be modeled. We capture these phenomena in interaction models (Chapter 5). Algorithms to automatically extract mechanical interaction models from design data. The type and nature of the interaction models depends on the two connected blocks. We present algorithms and a framework that will extract the model from the design data of the building blocks. 1.5 Thesis outline The goal of this thesis is to make virtual prototyping an easier and more accurate task for designers (Figure 1.2). We pursue a two-track approach to realizing these goals: we create virtual prototypes by the composition of building blocks, and we interleave the process of design and simulation. We provide a framework that incorporates a formal representational aspect, and an algorithmic aspect. An introduction to the area of port-based modeling is provided in Chapter 2. We then describe how it relates to mechanical systems modeling. 13

28 Figure 1.2. Thesis overview. The formal aspect is described in Chapter 3. We present a formal theory and a grammar that captures the representation of entities in the design. Specifically, we demonstrate how the grammar can be used to represent ports and physical interactions between device components. We also define a relationship between the composition of components and the composition of behavioral models. We use this relationship in later chapters to demonstrate the utility of models for physical interactions between components. The building blocks of simulation-based design, namely component objects and component interactions are defined and described in Chapters 4 and 5, respectively. The algorithmic aspect is introduced in Chapter 2 as a many-many relationship between form and mechanical behavior. In Chapter 4, we introduce algorithms that extract the behavioral models for component objects from their design data. In Chapter 6, we 14

29 introduce a framework and algorithms that extract the mechanical interaction between component objects. We present a geometric Proposition and a set of Corollaries that lay the mathematical foundation of the algorithms. In Chapter 7, we present an example electromechanical system a MEMS resonator. We use the example to demonstrate the ideas developed in the thesis. 15

30 2 Composition in Design and Simulation 2 Nothing is particularly hard if you divide it into small jobs. Henry Ford The man who removes a mountain begins by carrying away small stones. Chinese Proverb Theories should be as simple as possible, but not simpler. Albert Einstein 2.1 Introduction A design process is a set of activities, steps, procedures, methods, or behaviors employed to carry out the purpose of design. It involves agents that carry out the process, the artifact being designed, and the domain knowledge [160]. The space of possible designs is vast possibly infinite. Rigorous theories and methods are needed to arrive at a satisfactory design given some resource constraints. Researchers have created several design methodologies, including systematic design, case-based design, and multi-domain energetic design [159]. 2 This chapter is based on the following published papers: Sinha, R.; Paredis, C.J.J.; Liang, V.; and Khosla, P.K., Modeling and Simulation to Support Virtual Prototyping of Mechatronic Systems, ASME Journal of Computing & Information Science in Engineering, 1(1):84-91, March Paredis, C.J.J; Diaz-Calderon, A.; Sinha, R.; and Khosla, P.K., Composable Models for Simulation- Based Design, Engineering with Computers, 17(2): , Sinha, R.; Paredis, C.J.J.; and Khosla, P.K., "Kinematics Support for Design and Simulation of Mechatronic Systems, Proceedings of the 4 th IFIP Workshop on Knowledge-Intensive CAD, May 22-24, 2000, Parma, Italy. 16

31 Systematic design was first formalized by Pahl and Beitz [105]. They created a methodology for identifying the required functions of an engineering system and then reducing the requirements to smaller and smaller elements of a complete design. They have developed a software system that supports each of the individual steps in this process, but it is up to the designer to make the intellectual connections between each of the steps. The method seems most applicable to discrete systems made of identifiable elements such as "motor" or "gearbox". Design of these individual elements is usually impossible by a similar reduction unless compromises are admitted in weight, size, or energy consumption. Case-based theories create new designs by selecting elements from a database of old designs, and then modifying them for the current design requirements. Modification proceeds by the application of rules that map differences in functional specification to differences in structure. Sycara and Navinchandra [140] apply this paradigm to the design of fluid-mechanical devices such as faucets. Rivard and Fenves [116] apply case-based reasoning to the conceptual design of buildings. Watson and Perera [158] present a review of case-based design and its application to building design. Hua et al. [69] describe a case-based geometric design system. Maher and de Silva [85] describe a case-based design system for structural synthesis. In all of these methodologies, however, the number of rules grows very rapidly for even moderately complex designs, making the design of real-world systems difficult. Paynter [109] was one of the early proponents of modern energetic design methodology. He showed that systems composed of discrete mechanical, electrical, electro-magnetic, acoustic, and thermal elements can be modeled by a unified set of 17

32 dynamic equations that capture power or energy transactions between the elements. He unified these with the bond graph notational modeling system. This method works well for discrete systems made of connected elements but is awkward for distributed systems such as vibrating elements with thousands of natural modes. More important, the models capture power relationships but not the geometry. From this discussion is it evident that there exists a need for a design methodology that is applicable to general multidisciplinary systems, accounts for energy transfer between elements, and is closely integrated with analysis models. In addition, the quality of the models must be such that they can replace physical prototyping in several stages of the design. Such virtual prototyping will shorten the design cycle [63]. A virtual prototype enables the designers to test initially whether the design specifications are met by performing simulations rather than physical experiments. Not only does virtual prototyping make design verification faster and less expensive, it provides the designer with immediate feedback on design decisions. This in turn promises a more comprehensive exploration of design alternatives and a better performing final design. To fully exploit the advantages of virtual prototyping, however, simulation models have to be accurate and easy to create. Virtual prototypes need to model the behavior of the equivalent physical prototype adequately accurately; otherwise, the predicted behavior does not match the actual behavior resulting in poor design decisions. But creating accurate models is a hard problem. Only recently has computing performance reached a level where high fidelity simulation models are economically viable. For instance, it is now feasible to evaluate dynamic simulations of finite element models for crack propagation [100, 139]. However, 18

33 not always are the most detailed and accurate simulation models also the most appropriate; sometimes it is more important to evaluate many different alternatives quickly with only coarse, high-level models. For instance, at the early stages of the design process, detailed models are often unnecessary because many of the design details still have to be decided and accurate parameter values are still unknown. At this stage, the accuracy of the simulation result depends more on the accuracy of the parameter values than on the model equations; simple equations that describe the high-level behavior of the system are then most appropriate. Equally important to accuracy is the requirement that simulation models be easy to create. Creating high-fidelity simulation models is a complex activity that can be quite time-consuming. To take full advantage of virtual prototyping, it is necessary to develop a modeling paradigm that supports model reuse, that is integrated with the design environment, and that provides a simple and intuitive interface which requires a minimum of analysis expertise. This chapter introduces such a paradigm, composable simulation and design, which is based on model composition from system components. 2.2 Composable Simulations To provide better support for simulation-based design of mechatronic systems, we have developed a modeling and design paradigm based on composition [106]. A wide variety of products, ranging from consumer electronics to cars, contain mostly off-theshelve components and components reused from previous design generations; for instance, in cars, the portion of completely new components is often less than twenty percent. Some other products have a modular product architecture allowing them to be 19

34 customized for a particular application or mass-produced at low cost [19]. As a result, the design of such systems consists primarily of the configuration or assembly of existing components. The modeling of such systems can also be viewed as composition. We can obtain a system level simulation model, by combining the component models with the models that define the interactions between the components. Assuming that the models for individual components already exist in a component library, and that the physics of the interactions between the components have been modeled in a library of interaction models, a system level simulation model can be generated through the composition of existing component and interaction models. To take advantage of the parallelism between the design and modeling activities both consist of the composition of system components we have developed a modeling and design framework in which the form and the behavior of a component are combined into a single component object. By composing component objects into systems, a designer simultaneously designs and models new artifacts. This is already common practice in electrical CAD software; when creating a chip layout, the instantiation of a transistor or logic gate creates the geometry for the silicon layers as well as the corresponding simulation model. In mechanical CAD, the integration between design and simulation is not as common. For purely mechanical systems, most commercial CAD packages do provide an optional module for multi-body simulation, but these modules lack sufficient support for multidisciplinary systems. 20

35 Our goal is to extend this design paradigm to multidisciplinary systems, specifically mechatronic systems [130]. The traditional design approach for multidisciplinary systems has been a sequential design-by-discipline approach: First design the mechanical system, than the sensors and actuators, and finally the control system [126]. This approach imposes artificial constraints by fixing the design at various points in the design sequence. In mechatronic design, on the other hand, synergy between the different disciplines is achieved by designing all disciplines concurrently. To evaluate whether a mechatronic design prototype meets the design specifications, the designer must consider the component interactions in all energy domains. This would be prohibitively expensive without the intensive use of simulation. Existing simulation tools for multidisciplinary systems are very general, stand-alone tools that are not integrated with the design environment. The main goal of the simulation and design framework that we have developed is to support multidisciplinary simulationbased design within an integrated software environment. Specifically, the framework has the following characteristics: A port-based modeling paradigm: To take advantage of the compositional nature of both design and modeling of mechatronic systems, we use a port-based modeling paradigm in which the user can compose system-level simulations from component models [41]. By connecting the ports of the subcomponents, the user defines the interactions between them. In subsequent sections, we will describe the port-based modeling paradigm in more detail. 21

36 Simulation integrated with CAD: The building blocks in our simulation and design environment are component objects; they describe both the form and the behavior of system components. In subsequent chapters, we describe how the CAD description of the form may be used to extract the lumped parameters of the behavioral models. In addition, we have developed algorithms that instantiate models of mechanical interactions based on the form of the interacting components. 2.3 The Port-Based Modeling Paradigm We view systems as structures of inter-connected elements interacting with the environment. Elements in the system interact with each other through ports [41]. Ports are points on the boundary of the system where energy is exchanged between the system and the environment. Each interaction point has a port, and each port belongs to a particular energy domain. Energy flow through a port is described by an across variable and a through variable. An across variable represents a value measured between a global reference and the port, such as a velocity, while a through variable represents a value measured through the element, such as a force. An across and through variable pair is usually chosen such that their product has units of power ([M] 1 [L] 2 [T] -3 ). However, across variables may be replaced by their derivatives or integrals. For instance, position can be used instead of velocity. A connection between ports results in algebraic constraints between the port variables. The constraints are described by the Kirchhoffian network laws: 22

37 Figure 2.1. A joint constraint captures the contact interaction between two rigid bodies A and B. CA and CB are the positions of the centers of gravity and P1 and P2 are the contact points. and across variable A = across variable (2.1) B through variable A + through variable = 0 (2.2) where A and B are the two components being connected. These interactions have no predefined direction, and are therefore non-causal. B Because each interaction point requires a separate port, our modeling framework is limited to interactions that can be modeled as being localized at a finite number of points on the boundary of the system. The framework further supports hierarchical model structure with any number of levels in the hierarchy [41]. The hierarchy must be terminated by primitive components that are described by declarative equations. These equations establish differential-algebraic relationships between the variables of the ports of the component. 23

38 Model for for A Model for for Joint N 1 N 2 P 1 J 1 J 2 P 2 Model for for B Figure 2.2. The schematic shown in Figure 2.1 can be mapped into a port-based block diagram that captures the system. Interaction of each block with other blocks is via ports, where energy flow takes place. Each block encapsulates a behavior model for that entity. A 2.4 Port-Based Modeling of Mechanical Systems Rigid bodies in contact with each other are constrained in their motion by the nature of the contact (Figure 2.1). The mechanical behavior of each rigid body is completely described by the position and orientation of the body (across variables), and the forces and torques acting on the body (through variables). Since a rigid mass has only one set of across and through variables, it has a single port. The constraint between a pair of rigid masses is captured in a joint component that has two ports. Two rigid body models are never connected directly to each other; they are connected through a joint component. When the port on a mass component is connected to a port on a joint component, a node is implicitly created, and the two ports in question are connected to this node (Figure 2.2). Applied to the mechanical domain, node Equations (2.1) and (2.2) become: and p = p, R = R (2.3) A B A B 24

39 Param. Extraction Simulation Engine Data Data Translator Design Database: Functional Model Model Behavioral Model Model Product Product Structure CAD CAD data data CAD CAD GUI GUI Behavior GUI GUI Function GUI GUI Structure GUI GUI Figure 2.3. Java-Based GUI components and services interact with the design data model. F A + F B A B = 0, τ + τ = 0 (2.4) where pi, Ri, { Fi, τ 21 3 i are the port variables for body i = A, B. p i is the position vector of across through body i, R i is the homogeneous transform describing the orientation of body i, F i is the external force acting on body i, and τ i is the external torque acting on the body i. In general, the internals of a component can be a behavioral model, or a sub-system consisting of interconnected components, allowing for composable and hierarchical models. The behavioral model of a component establishes relationships among the port variables in the form of ODEs or algebraic equations (AEs). 2.5 The Composition in Simulation and Design (COINSIDE) Environment Architecture The implementation architecture of COINSIDE is similar to the Open Assembly Design Environment (OpenADE) developed at NIST [74]. As is shown in Figure 2.3, the 25

40 Figure 2.4. Configuration editor GUI. core of our system is a central design data model in which the representations for the current design are stored: function, behavior, product structure, and CAD data. Furthermore, the data model contains the relationships between these representations; for instance, if a system component implements a particular function, the data model will contain a has_function relation pointing from the object to its functional model, and an implemented_by relation from the model to the object. During the design process, the information in the central data model is continually transformed by autonomous software modules or by the designer through graphical user interfaces Data Model Modification Modules 26

41 Figure D viewer GUI. The main interaction between the designer and the data model occurs through the 3D CAD GUI and the configuration editor GUI. The 3D CAD GUI is implemented using the Java3D toolkit. It allows the user to view and manipulate the geometry associated with the system components, and to define mechanical interactions between components. It does not allow the geometry of individual components to be modified; we provide that functionality by integrating our framework with Pro/Engineer. The Java-based 3D GUI is still useful for system-level interactions that do not require the design of new components. The configuration editor (Figure 2.4) provides a view of the system-level configuration. Each of the system components appears in this view as a port-based block. The designer connects the blocks to each other via ports. Some blocks can be hierarchical, and can be expanded to view the subcomponents within the block. Such blocks have a + symbol in the top left corner (Figure 2.4). A connection between two components also connects their respective behavioral models via an interaction model that captures the physical 27

42 interactions at the component interfaces. For example, Figure 2.4 shows the system-level configuration for a train system [4]. Figure 2.6. Component repository GUI (left) and structure GUI (right). The 3D viewer GUI (Figure 2.5) is a Java-based GUI that displays VRML models of the components that are present in the configuration GUI. The viewpoint and geometry can be manipulated using the mouse. In Figure 2.5, the geometry for the train system is displayed. The structure GUI (Figure 2.6) displays the assembly tree of the current system. Subcomponents can be nested to arbitrarily deep levels. The designer can focus on particular components by collapsing or expanding the appropriate portions of the tree. Selecting a component in the tree also selects the component in the configuration GUI 28

43 Figure 2.7. Parameter editor GUI. and the 3D viewer GUI. In Figure 2.6, the tree structure for the train assembly is displayed. The repository GUI (Figure 2.6) displays the available components classified by function or project. The repository is displayed as a tree, and nodes in the tree can be collapsed or expanded to focus on a particular class of components. A component is selected and added to the configuration GUI by selecting the component name in the tree and pressing the Add button. The parameter editor GUI (Figure 2.7) allows the designer to swap behavioral models for each component, as well as assign parameters to the currently selected behavioral model. Each component can contain multiple behavioral models at different levels of detail, and one is chosen for simulation. For example, in Figure 2.7, the PID controller sub-component of the power control system component of the train has been assigned the ideal behavioral model and the corresponding parameters have been set Design Services 29

44 In addition to the user interfaces, software modules interact with the design repository. These modules can act as design assistants, working in the background. The tasks performed by such modules include the following: the translation of CAD data to VRML format for rendering the compilation of behavioral models in XML format to Modelica and VHDL-AMS simulation models. the extraction and verification of mechanical component interactions is a planned addition to our software system. The framework is implemented in a distributed fashion using Java and C++. The coordination between the distributed software components is event-based [134]. When a user or a software module modifies a portion of the design representation, the design data model broadcasts an event to all the subscribing modules and GUIs. If necessary, these components will then update their local cache to reflect the changes in the design data model. This allows us to maintain consistency between the internal design data and its presentation to the user. Because of its distributed implementation, our framework can also serve as a tool for collaboration. Multiple users can interact with the same design simultaneously, and design modifications introduced by one user can be propagated immediately to all other users. 30

45 Figure 2.8. Modelica behavioral modeling GUI Event-Based Synchronization A change introduced in one aspect of the system-level data model can impact other aspects. For example, a change in the geometry of the body of the train will alter the parameters of the mechanical behavioral model of the train, as well as the VRML representation of the train. As described in Section 2.5.1, the data model maintains the relationships between these aspects. We use event-based synchronization to communicate these changes across the GUIs. COINSIDE registers all relationships between the GUIs. An event in a GUI is synchronized with all other impacted GUIs. 31

46 Figure 2.9. Modelica time-series output Simulation Engine At simulation time, the XML representation of the configured components is translated into the target simulation language Modelica [89] or VHDL-AMS [70]. In this thesis, we will use Modelica in all the examples and in the case study. The behavioral modeling GUI in Modelica is very similar to the COINSIDE configuration GUI, with icons for behavioral models and lines connecting model ports (Figure 2.8). The Modelica representation is optimized and then converted into C procedures by the Dymola Modelica solver [44]. The coupled differential-algebraic system is solved over time. The designer can view a time series plot of any of the model variables (Figure 2.9). Based on this feedback it is possible to refine the system-level model within COINSIDE. 2.6 Summary To support virtual prototyping, we have developed a simulation and design environment in which design and modeling are tightly integrated. This integration is based on 32

47 composition of system-level components via ports. By composing components into systems, the design team simultaneously designs and models new artifacts. To enable this composition we use a modular port-based modeling paradigm that also facilitates the reconfiguration of models. The ports capture energy exchange between the interfaces of the connected components. The research presented in this chapter is only an initial step towards an integrated framework for simulation-based design. Our current implementation is called COINSIDE and is limited to component models with lumped interactions and fixed interfaces. We have successfully applied it to applications in the mechatronics area. However, to carefully evaluate its expected benefits in terms of component reuse and a faster, less expensive design cycle will require significant further research. Additional research is also needed to expand the functionality of the framework. The selection of an adequate level of detail for simulation models requires further expansion of the capabilities of our framework. We currently provide the capability to include models at different levels of detail in reconfigurable models, but have not yet addressed the issue of aiding the user in selecting the most appropriate model for a particular simulation experiment the model that has adequate accuracy and requires minimum computational resources. Finally, to allow very detailed analyses, finite-element models need to be included in our framework. Future research should focus on the interfacing between finite element models and lumped models so that we can includes models of distributed physical phenomena such as mechanical flexure, or complex electromagnetic and thermal behavior in system-level models. 33

48 3 An Attribute-based Representation for Systems 3 All parts should go together without forcing. You must remember that the parts you are reassembling were disassembled by you. Therefore, if you can't get them together again, there must be a reason. By all means, do not use a hammer IBM maintenance manual, 1925 Grammar and logic free language from being at the mercy of the tone of voice. Grammar protects us against misunderstanding the sound of an uttered name; logic protects us against what we say have double meaning. Rosenstock-Huessy 3.1 Introduction The system-level design process is usually top-down. The designer begins with a highlevel functional description that is decomposed into sub-functions. Sub-functions are either decomposed further into other functions, or are assigned to components. The component contains design data and simulation models. When further decomposition or component assignment is not desired, the designer composes the components to realize the highlevel virtual prototype. In this process, there are three recurring themes: composition, or combining subcomponents to create a compound component; reuse, or replacing a component with another of similar or identical function; and iteration, or extending the definition of a component to select or create a more specific component. 3 This chapter is partly based on the paper: Sinha, R.; Paredis, C.J.J.; and Khosla, P.K., Automatic Behavioral Model Composition in Simulation-Based Design, Proceedings of the 35 th Annual Simulation Symposium, April , San Diego, California, USA, to be presented. 34

49 Components Physical Objects Interactions Between Physical Objects Screws, Motors, Pumps, Pistons etc. Component Objects Joints, Joints, Springs, Dampers, Contact Contact Resistances, Junctions etc. etc. Component Interactions Figure 3.1. System-level components are of two types - component objects and component interactions In this chapter, we posit that the components, functional models, CAD models and behavioral models can be represented using a common framework, namely hierarchical attributes that represent a complete description of these entities. We define attribute grammars that govern how physical interactions between components can be composed, reused or refined during the design process. We show that our approach overcomes many of the limitations of taxonomies and product hierarchies. We do not attempt a complete attribute-based description of all design entities. We focus on the ports and interaction models in the design. Interactions are the physical phenomena that occur at the interfaces between connected components (Figure 3.1). Most of the research in systems design has focused on modeling components and their use in configurations. To automatically convert the configuration information to a simulation model, the interaction dynamics must also be captured in behavioral models. Researchers have not paid much attention to capturing the dynamics of the interaction phenomena. In our framework, all interactions between components are mediated by ports. To represent these ports, we introduce port attribute grammars that form the basis for other attribute grammars for components, interaction models and functional models (Figure 3.2). 35

50 In this thesis, we focus on attribute grammars for ports and interaction models. Our formalism supports automatic instantiation of interaction models given the types of the connected ports, as well as the ability to replace one interaction model for another depending on the required accuracy of the desired simulation experiment. Our attribute-based framework supports the following aspects of the design process: Composition. In our framework, design and system-level simulations are created by composition of component objects [106]. Using the attribute grammars, we compose component objects by composing their constituent attributes. Organization. The entities used in the design are ports, component objects, component interactions, and CAD models [106], as well as functional models. They should be classified and organized so that the designer is not inundated with choices. We provide a set-theoretic formalism to organize these design entities. Reuse through standardized representation. A library of design entities can be indexed by their attributes. Candidate entities can be selected by searching the library for particular attribute-value pairs. Design iteration. In our framework, the design process iterates between selection and composition of components, and evaluation of their behavioral models in simulation. During each iteration, the designer uses components and models that are different in topology and/or complexity from the previous iteration. Our attributes-based framework supports transitions between design iterations by the addition or subtyping of attributes. In this thesis, the focus is on laying the foundation for representing designs and models using attributes. We characterize, model and organize the interactions between components using attributes and attribute grammars for ports and interaction models 36

51 (Figure 3.2), and we leave the attribute representations for component objects and functional models for future research. We have implemented the grammars using Java and XML, and we illustrate our framework with a simple example. 3.2 Attribute Grammars in System-Level Design Several researchers have investigated the applicability of formal grammars in mechanical design [9, 28, 55, 97]. Design can be viewed as a sequence of transformations, beginning from a functional requirement and culminating in a physical device. The space of possible designs is very large possibly infinite. Formal grammars offer a very compact representation of a very large space such as the design space. Every point in the space is represented as a string in a language. Formal grammars are computational procedures that generate and parse the strings in the language. However, there has not been a significant effort to formalize the representation of system-level design and simulation. We have developed attribute grammars for ports and interaction models in system-level designs. In this section, we discuss the important System-Level Design XML Document Interaction Functional Component Model Model Grammar Grammar Grammar Port Grammar Port Production Attribute Attributes Rules Constraints XML DTDs XML Attribute Formalism Set theory, OO Figure 3.2. Attribute Grammars in System-Level Design 37

52 properties of grammars and attribute grammars, the applicability of attribute grammars to design, and their extension to system-level design and simulation Formal grammars Strings represent a point in the design space and consist of a finite sequence of symbols from the alphabet of the formal grammar. The alphabet consists of terminal symbols. Production rules operate on the symbols to generate strings. The language also permits empty strings. A grammar defines a language. It consists of an alphabet, a set of production rules and a starting symbol. Chomsky [32] defnied a hierarchy of grammars that impose different restrictions on the production rules [68]: Type 0: Such grammars have no restrictions on the production rules. These grammars are the most powerful for string generation. However, it is not possible to use a type-0 grammar to determine whether a particular string can be transformed into another. Such grammars are also known as unrestricted grammars. Type 1: These grammars contain only rules of the form a b. The lengths of a and b are constrained such that a b Type 2:These grammars contain only rules of the form a. They are known as context-sensitive grammars (CSG). single non-terminal. They are known as context-free grammars (CFG). Type 3: These grammars contain only rules of the form a b where a b and a is a b where a b and a is a single non-terminal and b is a terminal, non-terminal or a terminal followed by a nonterminal. They are also known as regular grammars. 38

53 Grammar path ε path step path step N step S step E step W Attributes Production Rules pathex. = 0 pathey. = 0 path. Ex= step. x+ path. Ex step. y+ path. Ey step. x= 0 step. y = 1 step. x= 0 step. y = 1 step. x= 1 step. y = 0 step. x= 1 step. y = 0 pathex. pathey. step. x step. y Figure 3.3. An attribute grammar to generate Cartesian motion [24]. The subscripts 1 and 2 are used to differentiate between the two path attributes. Applications of grammars are grouped based on two major properties: verification (membership) and synthesis (generation). In this thesis, we are primarily concerned with the verification problem: we must ensure that a new port or interaction model conforms to certain rules that we define in the grammar. The membership problem is of order O( e n ) for CSGs, O( n 3 ) for CFGs and O( n ) for regular grammars [97]. See Revesz [114] for a more detailed description of formal grammars Attribute grammars In attribute grammars [76], a context-free grammar is augmented with attributes, and the production rules can specify constraints over the attribute values. The attributes are used to establish the meaning or semantics of a string in the language. In Figure 3.3, the grammar specifies the north, south, east and west Cartesian motions that are possible in a plane. The terminals are N, S, E and W. The non-terminals are path and step. The path non-terminal has two attributes associated with it, namely Ex and Ey. They capture 39

54 Equivalent DTD Example XML for string EEN <?xml version="1.0" encoding="utf-8"?> <!-- Cartesian movement grammar Possible movements are: N, S, E, W--> <!ELEMENT path (step, path)* > <!ELEMENT step (N S E W) > <!ELEMENT N EMPTY > <!ELEMENT S EMPTY > <!ELEMENT E EMPTY > <!ELEMENT W EMPTY > <!ATTLIST path Ex CDATA #REQUIRED > <!ATTLIST path Ey CDATA #REQUIRED > <!ATTLIST step Dx CDATA #REQUIRED > <!ATTLIST step Dy CDATA #REQUIRED > the (x,y) coordinate of the point in the Cartesian plane. Similarly, step has two attributes: x and y, that capture the current displacement associated with the step in the plane. The attributes are related via the production rules. The equivalent DTD and the XML to generate a motion string of EEN (two steps East and then 1 step North) is shown in Figure 3.4. Attribute grammars facilitate the interpretation of formal languages and have been used extensively in this application domain [36-38, 51]. They have been used to automatically synthesize electronics hardware [45], for product configuration [65], and shape generation [125]. We represent our attribute grammars using XML and Java. An XML DTD [155] is a representation of an attribute grammar. XML tags correspond to symbols. A tag that is not composed of other tags is a terminal symbol. XML attributes associated with a tag are equivalent to attributes in the grammar. Constraints between attributes are captured as attributes and interpreted in our Java-based software. <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE path SYSTEM "example-grammar.dtd"> <!-- Instance "EEN" of the Cartesian movement grammar --> <path Ex="2" Ey="1"> <step Dx ="1" Dy="0"> <E/> </step> <path Ex="1" Ey="1"> <step Dx ="1" Dy="0"> <E/> </step> <path Ex="0" Ey="1"> <step Dx ="0" Dy="1"> <N/> </step> <path Ex="0" Ey="0"> </path> </path> </path> </path> Figure 3.4. XML representation of the attribute grammar in Figure 3.3. The production rules are not represented in the DTD. 40

55 3.2.3 Grammatical representations for design Applications of grammars in engineering design fall into two categories: verification and synthesis. The purpose of the grammar determines the relative importance of a property [97]. Grammars that are used for verification of the correctness of a design need to parse a string efficiently. On the other hand, grammars that are used to synthesize design alternatives need to be unambiguous. Another layer of complexity can be added in associating the symbols of the grammar to their design counterparts [97]. It is possible to obscure the original design specification by rewriting the grammar to make it more efficient. We address this issue as well as the problem of ambiguity in our formalism (Appendix A). Our grammars formalize system-level design. We use the grammars to verify that the design conforms to our rules throughout the iteration of the design. We also use them to select components and models that match library searches. Searching of our component and model libraries is supported by retrieving all entities that match user-specified attribute-value pairs. 3.3 A Set-Theoretic Approach to Configuration Design and Simulation The building blocks within our composable simulation and design environment are component objects and component interactions [106]. These objects consist of a configuration interface (a list of ports), CAD model(s), behavioral model(s), and relationships between them. In set-theoretic terms, we can define a design D as a set of unique attributes. This definition allows us to represent components and models as collections of attributes, such that composition of components results in a system-level 41

56 design represented by the composition of the individual attribute representations. Two component objects C 1 and C 2 are composed given their connectivity information {p} by concatenating their attribute representations. To achieve the interleaving of design and simulation, the behavioral models of the component objects must also be composed when their components are composed. As explained in the subsequent sections, a direct application of Kirchhoff s Law to the ports of the behavioral models results in incorrect models. We solve this problem by introducing the concept of interaction models that capture the dynamics of the physical interaction between the component objects. When components C 1 and C 2 are composed via their ports, their corresponding behavioral models M 1 and M 2 are also composed via an interaction model I. I is chosen within our framework based on the attributes of the connected component objects. A very useful aspect of set theory is the Separation Theorem [119]. The theorem defines the partitioning of sets based on a boolean-valued criterion, called a predicate. In the context of simulation-based design, this amounts to identifying those design entities from a space (or set) of design entities that possess some property. A succession of such identification operations is equivalent to evolving the design from a simple to a more complex representation. We apply this theorem to support iteration of ports and component interaction models. An attribute-based approach to models and design entities for simulation-based design is better than a traditional taxonomy-based approach. Firstly, instead of explicitly relating models to each other via a tree structure, we are able to describe a model by its characteristics. Secondly, taxonomies are not able to capture multiple-inheritance very 42

57 1 Widget Widget 2 3 Figure 3.5. Ports on a component object. well. In our framework, a model that is a child of two or more parents is defined as possessing at least all the attributes of all its parents. Finally, when creating new models, the designer does not have to worry about placing the models in the framework. He merely defines its inheritance relationships and any additional attributes that it may have, and the framework handles the storage and retrieval of the new model. Our framework uses several design entities, namely ports and interaction models, and we introduce these entities before describing their grammars. 3.4 Ports A port is a descriptor for a location on the boundary of a component where the component interacts with its environment. In Figure 3.5, ports 1 and 3 represent point interactions, whereas port 2 represents a distributed interaction that is lumped at the port. There are two types of ports used in COINSIDE: configuration ports and modeling ports. We describe each type here. 43

58 Configuration ports capture connection semantics between a component and its environment. For example, a DC motor component has four ports, two electrical ports, a shaft port and a stator port. The electrical ports correspond to the electrical connectors of the motor, the shaft port to the rotor and the stator port to the stator. A gear component has ports for its teeth and shaft. The gear shaft port is connected to the motor shaft port and is related to a mechanical modeling port that provides a transform for the rotational axis of the gear. The gear teeth port connects to another gear teeth port to form a gear pair, and provides information like the number of teeth and the gear pitch radius via a feature port. Configuration ports can be aggregated to form more complex ports at higher levels of abstraction. Modeling ports capture the energy exchange between behavioral models. Each connection between two behavioral models imposes some constraints on the variables of the modeling port. For a connection between simple energy or mass ports (such as mechanical, electrical, thermal and hydraulic ports), these constraints are the equivalents of the Kirchhoff voltage and current laws in electrical circuits. For signal ports, the constraint equates the value of the signal at each end of the connection. There is a 1-many relationship between a particular configuration port and its corresponding modeling ports. For example, a gear configuration port is related to its corresponding 3D mechanical modeling port. This relationship is captured within the component object. 44

59 3.5 Parameters A parameter is a quantity whose value characterizes a member of family of components or behavioral models. Parameters, along with ports, form the configuration interface for a component or behavioral model. The component or behavioral model is completely specified when all its parameters are provided. Some parameters the instantiation parameters are provided by the designer when a component is used in a system-level model. For example, consider a family of resistor components that is parameterized by the resistance parameter. The value of the resistance parameter must be provided before the resistance component can be instantiated and used in a configuration. Another type of parameter is the behavioral model parameter. The instantiation parameters are related to parameters that are used in the behavioral models [130]. Particular CAD features from the CAD specification of a component can be used as parametric input to the behavioral model. For example, a family of gear components can contain a parametric CAD model specification of the gear, and a parametric behavioral model. The CAD model has parametric teeth features (such as number of teeth and pressure angle) that are used to parameterize the behavioral model. Parameters are either provided by the designer or extracted from other parameters. For example, in subsequent chapters we will describe how mechanics behavioral model and interaction model parameters can be extracted from CAD models. 45

60 Port Location Material CAD Feature Name Intended Use Properties Young's Modulus Density Figure 3.6. Attribute representation of a port. 3.6 COINSIDE Grammars Port Grammars Ports form the basis of our framework. They are a part of the interfaces for component objects, component interactions, and behavioral models. In previous sections, we defined a port as a discrete point of interaction between a component and its environment. By this definition, a port is the spatial quantum of interaction in our framework. At a specific, physical location on the interface, there can be exactly one port. Therefore location becomes the organizing principle of a port. The geometry and material properties at the location become required attributes of every port. We model the location using a CAD feature, and material properties by a set of defining attributes such as name and physical properties (Figure 3.6). Another required attribute is the Intended Use attribute. This attribute captures all the intended functions for the port as defined by the designer. The energy and informational domains of the port are also contained within this attribute. In addition, any special compatibility constraints on any connections to this port are specified here. 46

61 Axiom 1: Axiom 2: Axiom 3: Axiom 4: Axiom 5: Axiom 6: All interactions occur through ports. (Universality Axiom) The ports in the interface are ordered (Uniqueness Axiom) All attributes are independent of each other (Orthogonality Axiom) An attribute is modeled as a finite set of non-terminals (Finiteness Axiom). Every configuration port type has at least one compatible port type (Compatibility Axiom) If the set of attributes of two ports are identical, then the two ports are identical (Identity Axiom) Figure 3.7. Important axioms in the port formalism. We formalize these ideas through axioms in the port formalism (Appendix A). Here we discuss some of the important axioms (Figure 3.7) and their effect on the representation and use of design entities. A partial grammar for ports is illustrated in Figure 3.8. The corresponding attributes and their meaning is presented in Figure 3.9. The production rules that constrain the values of the attributes are captured within COINSIDE as Java methods. The Universality Axiom requires all interactions between components to occur through ports. This allows us to define the interface of a component as consisting of a set of ports. The Uniqueness Axiom requires the ports of a component or model to be uniquely identifiable using an identifier. The Orthogonality Axiom requires that attributes be independent of each other. This reduces the ambiguity in the grammar by not allowing an attribute to be expressed as a combination of other attributes. Therefore, a design specified using the grammar has a unique representation string. The Finiteness Axiom states that a port consists of a finite number of attributes. Infinite attribute ports are difficult to capture using an attribute grammar. Currently, our framework permits only ports with a finite number of attributes. We leave the modeling of field interactions with potentially infinite ports to future research. 47

62 port location material intended- use other-attributes material property-list property-list volume-density? resistivity? intended-use function-list function-list roll-- on surface? provide-rolling- surface? transmit-power? roll-- on surface energy-domain + provide-rolling-surface energy-domain + transmit-power energy-domain + energy-domain mechanicalelectricalthermalfluidicsignalsoftware Figure 3.8. Partial port grammar. The Compatibility Axiom states that when a connection is made between two ports, the ports must be compatible with each other. For example, the tire-road port on a tire component of a car is compatible with the running surface port of the road. Port compatibility is established as a constraint relation over the Intended Use attributes of the two ports. The Identity Axiom establishes the equality relation over ports. Ports are equal when their constituent attributes are identical. Attributes Description Location.name Name of the location of the port Location.CAD_model The CAD model/feature associated with the location Material.name The name of the material at the location Material.description A description of the material volume-density.symbol The symbol for volume density volume-density.units The units of volume density Resistivity.symbol The symbol for resistivity Resistivity.units The units of resistivity roll-on-surface.name The name of the non-terminal roll-on-surface.description A description of the non-terminal Provide-rolling-surface.name The name of the non-terminal Provide-rolling-surface.description A description of the non-terminal Transmit-power.name The name of the non-terminal Transmit-power.description A description of the non-terminal Transmit-power.constraints Constraints on the transmission of power Figure 3.9. Attributes for the partial port grammar in Figure

63 Figure Attribute grammar GUI Using these axioms and other definitions stated in our formalism, the designer can select, instantiate, iterate and connect ports (Figure 3.10). The connection between ports has dynamics that are captured in the grammars for the component interaction models Interaction Model Grammars Component interaction models capture the dynamics at the interfaces between component objects. As described in subsequent chapters, we represent the interaction as a collection of behavioral models aggregated into the interaction model container. The container and the behavioral models within map to a set of sets of attributes. Operations on the models, such as instantiation, subtyping and iteration, are performed by production rules in the grammar. We do not present the entire grammar here. Instead, we highlight its important features and their applicability in the design process. 49

64 One important feature is our adaptation of the Separation Theorem. Using Theorem 1 (Appendix A), we can iterate interaction models from simple to more complex models. This is accomplished using the REPLACE() predicate (Appendix A). This predicate constrains the replacement model to have ports that are supertypes of the original ports. For example, a train-track interaction model with a purely mechanical interaction can be refined to another model with a mechanical and an electrical interaction. The designer can extend the grammar by following a few simple rules. When adding a new interaction model, the designer must consider three important characteristics of interaction models: domains of applicability, number and nature of phenomena, and times of interaction (Figure 3.11). The new interaction model captures the dynamics of physical phenomena in a single domain, or across domains. Some interactions like a kinematic joint are single-domain interactions, because they represent a single domain interaction, namely the mechanical domain. Others are cross-domain interactions, like the electromechanical energy conversion in a motor. 50

65 Time Does the Interaction occur at specific times, or continuously? Single-domain Domains Does the interaction occur in a single domain or across multiple domains? Continuous Kinematics Mechanical Collision Most others Electromechanical Discrete Cross-domain Electrothermal Electromagnetic Interaction Single How many different physical and informational phenomena participate in this interaction? Mechanical only Mechanical+ Electrical Multiple Phenomena Electrical+ Signal Figure Required attributes for interaction models. One or more physical phenomena can occur in an interaction. Simple interactions like a kinematic joint capture only a mechanical interaction. More complex interactions like that between an electrical train and its running track include several physical phenomena such as mechanical, electrical and signal interactions. Another important aspect of an interaction model is its time characteristics. Some phenomena occur continuously over time, such as a kinematic interaction. Others are events at discrete points in time, such as mechanical collisions. The former can be modeled with differential and algebraic equations. The latter can be modeled using finite 51

66 Train Train Mech port Elec port signal port Aggregate Port Track Track Figure Abstraction of a train-track interaction. Each block represents a component in the configuration layer, and a circle represents a port on the component interface. state machines or software algorithms. All these aspects are captured as attributes in our grammar. Other attributes that are used in our grammar include the parameters for the model, the equations of the model, any assumptions made, etc. Some of the attributes represent constraints over other attributes, such as the assumptions attribute. 3.7 Illustrative Example To illustrate the concepts developed in the previous sections, we use an example of a complex electromechanical system a train system. We will use this simple example to illustrate concepts developed in this chapter and in the next two chapters. In the interest of brevity, and given that the focus of this chapter is on ports and interactions, we will focus on the interaction between the train and its track (Figure 3.12). We will use the port and interaction model grammars to demonstrate automatic selection, abstraction and design refinement of ports and interaction models. In a real-world train-track interaction, there may be hundreds of physical and informational interactions between the train and the track, such as mechanical interactions between the train and the track, electrical power flows, command signals, and sensor signals, as shown in Figure

67 Train-track Port Brushes Port Wheels Port Figure Train-track Port The train-track port is an aggregation of two ports a wheel port and a brush port. This captures the mechanical, and electrical and control interaction, respectively, between the train and the track. At this early stage of the design process, the port is described as shown in Figure This is a high-level description that is augmented with attributes later on in the design process. The train-track interaction port has two sub-ports, but in this example we only consider interaction models for the mechanical behavior of the train along the track. Ports on the interaction model are related to ports in the configuration using the formalism (Figure 3.14). To obtain a more realistic virtual prototype, further refinement is necessary in the traintrack port. This requires elaborating the train-track port and interaction model by adding attributes. 53

68 Train Track IM Container Mechanical only Mechanical only Electrical only Signal only Electrical only Mechanical only Electrical only Primitive IM Signal only Aggregate IM Electrical only Signal only Figure Port maps for the train-track interaction model. The train-track port is also iterated to a semantically richer definition. By following the rules of our formalism, the iterated train-track port of Figure 3.13 now is changed to the port of Figure The new port now has location and material attributes for the wheel that define the running surface of the wheel as the interaction point. In addition, the brush port has location and material attributes for the brush-central rail contact surface. Both the wheel and brush port have intended use attributes that are compatible with the corresponding intended use attributes on the track. 54

69 Using the formalism, the train-track interaction port is refined to two sub-ports that are connected together on either high-level component. These ports are the wheel port (mechanical port), and the brush port (control and DC electrical port). With the train being modeled in CAD as a detailed solid object, a train-track interaction model can be automatically derived from the geometry. The parameter extraction algorithms examine the current CAD model for the train and track components, obtains the material properties and wheel geometry and uses a look-up table to obtain the friction coefficient for a coulomb friction model. This completes the attribute-based specification of the interaction model (Figure 3.16). Wheels Port Brushes Port Wheel Port (Front Left) Location Material Intended Use Active Domains Electrical Mechanical Signal Thermal Hydraulic Tire Width = 0.3 m Pressure = 3 atm Wheel Port (Front Right) Wheel Port (Back Left) Wheel Port (Back Right) Brush Port (Left) Location Material Intended Use Active Domains Electrical Mechanical Signal Thermal Hydraulic Brush Contact Width = 0.1 m Side = Left Brush Port (Right) Figure Wheel and Brush Port. 55

70 Wheel-Track Interaction Model Modeling Ports Port Map 1 = Wheel Port :: Mechanical Port Port Map 2 = Track Port :: Mechanical Port Intended Uses roll-on-surface absorb-shock magnify-torque transmit-dc-power Parents = NIL Assumptions Active Domains Electrical Mechanical Signal Thermal Hydraulic Location Geometry Material Physical Phenomena Friction Invariant = TRUE Wheel Width = 0 Invariant = TRUE Reactive = FALSE Parameters Coulomb friction coefficient = 0.2 Equations Kinematic constraint equations r 1 rr vc = ( k1+ k2) ( ωr+ kv 1 s ) rrrrrrrr r&& 1+ ω1 c1+ ω1 ( vc+ ω1 c1 vs ) = rrrrrrrr a + r&& + ω c + ω v + ω c s ( ) c 2 2 Dynamic constraint equations rr F1= F2 τ rr = τ 1 2 Figure Wheel-track interaction model for the train. 56

71 3.7.1 Discussion In this example, we have used our attribute-formalism to select and iterate ports and interaction models. Attribute-based representations allow us to define ports and models by their characteristics, rather that by their position in a taxonomy. In the design iteration, we have used abstraction, both port and for interaction models. Abstraction serves an important purpose: to reduce the amount of detail presented to the designer so that he or she can focus on high-level modeling decisions without dealing with small details. Our framework supports automatic interaction model selection and instantiation. The automation allows the designer to focus on the more important tasks of configuration and CAD and behavioral model parameter assignment, while accurately capturing the intended interactions between components in the configuration. The automation also maintains consistency between the CAD parameters and behavioral representations. Separation of the interfaces from the content of models (whether behavior or configuration) has the added advantage of encouraging standardization and reuse of these models in later design projects. 57

72 4 Component Objects 4 The first rule to tinkering is to save all the parts. Paul Erlich Every contrivance of man, every tool, every instrument, every utensil, every article designed for use, of each and every kind, evolved from a very simple beginning. Robert Collier 4.1 Introduction Creating high-fidelity simulation models is a complex activity that can be quite timeconsuming. To take full advantage of virtual prototyping, it is necessary to develop a modeling paradigm that supports model reuse, that is integrated with the design environment, and that provides a simple and intuitive interface which requires a minimum of analysis expertise. This chapter introduces such a paradigm, composable simulation and design, which is based on model composition from system components [106]. Many products have a modular architecture that is based on the selection and composition of off-the-shelf components and components reused from older designs. When the new design is created, components are selected and then connected together in a configuration (Figure 4.1). 4 This chapter is based on the following published papers: Paredis, C.J.J; Diaz-Calderon, A.; Sinha, R.; and Khosla, P.K., Composable Models for Simulation- Based Design, Engineering with Computers, 17(2): , Sinha, R.; Paredis, C.J.J.; and Khosla, P.K., Integration of Mechanical CAD and VHDL-AMS Behavioral Modeling, Proceedings of IEEE/ACM BMAS 2000, Orlando, FL, USA. 58

73 Configuration Component A Interface Component Port Connection Component B Interface Modeling Contained-in Behavioral Model Behavior Port Contained-in Behavioral Model Behavior Port Interface Interface Figure 4.1. Design as a process of configuration of components and selection of behavioral models for the components and connections. We call these building blocks component objects. Component objects are composed into systems by connecting the ports in their configuration interfaces. Our framework supports the use of component objects in the following ways: Composition. In our framework, design and system-level simulations are created by composition of component objects. Component objects are composed through their ports, as described in the previous chapter. Organization. The entities within a component object are ports and parameters, behavioral models, and CAD models, as well as functional models. They should be classified and organized so that the designer is not inundated with choices. We provide a set-theoretic formalism to organize these design entities. Design iteration. In our framework, the design process iterates between selection and composition of components, and evaluation of their behavioral models in simulation. During each iteration, the designer uses components and models that are different in topology and/or complexity from the previous iteration. Our attributes-based framework supports transitions between design iterations by the addition or subtyping of attributes. 59

74 Component Configuration Interface Configuration Instantiation Parameters CAD Specification CAD Model Container Behavioral Model Container Figure 4.2. Components may encapsulate configurations of sub-components. 4.2 Component Objects A component is a modular design entity with a complete specification describing how it may be connected to other components in a configuration. For example, a DC motor component has a shaft to connect it to a drive-train, and bolts that fasten it to a platform. The shaft and the bolts collectively form the ports or interface of this component. As shown in Figure 4.2, a component is instantiated in the design by specifying instantiation parameters that describe its specification. Once instantiated, it is connected to other instantiated components via its ports. Before simulating the design, the designer selects behavioral models from the behavioral model container that describe its physical behavior, and CAD models from the CAD model container that specify how it may be manufactured and visualized. A configuration is created when two or more components are connected to each other via their interfaces. A component can itself encapsulate a configuration of components, thus allowing for the hierarchical description of systems (Figure 4.2). We use the configuration information to automatically generate system-level simulation models. 60

75 The components are connected to other components via configuration ports. For example, consider the configuration where a DC motor component is connected to a gear component. The DC motor component has ports for the rotor shaft and the stator, and the gear component has ports for the gear teeth and the gear shaft hole. The connection is established by connecting the rotor shaft port on the motor to the gear shaft hole port on the gear. The configuration ports used in this example are defined in abstract terms, and no information is available about the semantics of the connection that they establish. The configuration ports are related to modeling ports in the modeling layer. These modeling ports make up the interface of the behavioral models related to the component Behavioral Models Behavioral models capture the mathematical description of the physical and informational behavior of a component. For the scope of this research, we consider these models to consist of either differential-algebraic equations (DAEs) for continuous time phenomena, or discrete event systems specifications (DEVS) [165]. Behavioral models can also be composed out of other behavioral models through the port-based modeling paradigm [42]. 61

76 Behavioral Model Container Interface Implementation Default Interface-Content Maps Figure 4.3. A behavioral model container containing behavioral models. Behavioral models describe the physical or informational behavior of a component. A component object can contain multiple behavioral models with different levels of detail. For example, a DC motor component can contain a family of mechanical behavioral models. One model could only capture the kinematic constraints between the rotor and the stator, while another could include non-linear friction models. All of these behavioral models are stored in a behavioral model container. The container is separated into three parts: a family of interfaces, a family of implementations of particular models per interface, and a set of 2-tuples that enumerate the correspondences between the interfaces and implementations (Figure 4.3). One of these 2-tuples is the default map, and determines the default interface and implementation for the behavioral model. The implementation is typically a mathematical description of the DAEs and DEVS that make up the behavior of the component. Behavioral models in our framework are represented using the Modelica simulation language [89] CAD Models A CAD model describes the geometry, relative positions and material properties of the parts that make up the design. Depending on the simulation experiment, the geometric 62

77 CAD Model Container Interface CAD Data Figure 4.4. CAD model container. representation may be simple (for bounding-box experiments), or complex (for detailed design or manufacturing). Our framework provides the ability to use a CAD model container that contains CAD models at multiple levels of detail. The CAD model container (Figure 4.4) captures all the necessary CAD-related information in the design. It contains an interface and several CAD models. The ports of the interface correspond to geometric or material features that are exported to other parts of the design representation, such as behavioral models. For example, the mass of the CAD model could be one such feature that is used in a Newtonian mechanics behavioral model. Modern CAD modeling systems like Pro/ENGINEER [110] represent a CAD model using feature trees that capture all the relevant characteristics of the design. By including evaluation procedures as features in the feature tree, one can automatically perform behavioral analysis whenever a part or assembly is modified [43]. For example, a mass computation procedure would use the CAD model and the material density to compute the mass of the design. Given the maturity of this capability, we do not develop attribute grammars for CAD models. Instead we connect our framework with Pro/ENGINEER so 63

78 that we can use the feature modeling capability. In this research, we focus on developing attribute grammars for ports and interaction models. 4.3 Derivation of the Behavioral Model from CAD Data Composable simulations are based on the concept of component objects that combine form and behavior. By composing component objects into systems, a designer simultaneously designs and models new artifacts. The previous section introduced a modular modeling paradigm that supports such composition. In this section, we focus on checking that these behavioral models are consistent with the corresponding form descriptions as represented by a CAD model. A component object contains a description of the form of the component as well as a model describing its behavior. Ideally, behavioral models are generated from the form automatically. This requires combining information about geometry and materials with knowledge of the physical phenomena occurring in the component. Creating such models automatically is difficult in the general case, but can be achieved for certain classes or families of components. For example, the mechanical behavior of the set of rigid bodies with homogeneous material properties is completely defined by the mass and inertial parameters, as is shown in Figure 4.5. These rigid bodies are so common in mechatronic systems, that it makes sense to develop a procedure that computes the inertial parameters from the density and the geometry of the component, as defined in a CAD model. As a result, the behavior models of homogeneous rigid bodies can be derived automatically for any material and arbitrary geometry. 64

79 Mass, Center of Gravity Inertia Tensor Component Model F = mx & M = Iα + ω I ω L R1 R2 D Pipe diameter Pipe shape Pipe Model Flow Resistance = F(L, R1, R2, D, ) MicroMo XYZ DC-Motor Parameters = Lookup(XYZ) Figure 4.5. The relation between form and behavior parameters. Besides rigid bodies, we can automatically generate behavioral models for parametric CAD models. In a parametric CAD model, the designer establishes relationships between certain geometric dimensions or parameters. As a result, the form is completely defined by a limited set of characteristic parameters or features. Behavioral models also contain parameters, which, in turn, can be related to the CAD parameters. These relations can be simple, as in the rigid body example, or can be quite complicated, as for a hydraulic pipe. As is illustrated in Figure 4.5, the flow resistance of the pipe depends on its length, diameter, and bending radii. Although these dimensions may not be defined explicitly in the CAD model, they can be extracted through parametric relations captured as procedures [23, 124]. Finally, one can consider the case in which both geometric and behavioral parameters are determined through a lookup table. For instance, given the model type of a DC motor, a lookup table provides all the parameters for a detailed behavioral model. Similarly, a 65

80 parametric CAD model is instantiated from parameter values in the lookup table. What makes this example significantly different from the previous example is that there may not be any direct relation between the geometric parameters and the behavioral parameters. The geometry may simply be a high-level abstraction of the DC-motor, capturing only the external geometry through which the motor can interact with other components. These simplified geometric representations of the form no longer contain any relevant information from which an internal behavioral model can be extracted. This idea of encapsulation of form and behavior can be extended by allowing a component object to contain design rules or expert knowledge that allow it to adapt its form to meet the design specifications. Such intelligent components are introduced in [138]. Multiple intelligent components can be organized into libraries. By searching through the components in these libraries, the designer can locate the appropriate component (or system of components) for a particular desired function. Such an intelligent synthesis assistant may search the component library based on queries regarding the component s behavior and form. 4.4 Illustrative Example To illustrate the concepts developed in the previous sections, we will elaborate the train system example from Chapter 3. Given that the focus of this work is on ports and interactions, we will focus on the interaction between the train and its track. In a real-world train-track interaction, there may be hundreds of physical and informational interactions between the train and the track, such as mechanical interactions 66

81 between the train and the track, electrical power flows, command signals, and sensor signals, as shown in Figure Configuration Our framework supports the configuration of components in the virtual prototype by instantiating and connecting them. So the first step is to select the components that will constitute the virtual prototype. At the highest level of abstraction, we model the train-track interaction with the train component interacting with the track component. We select a train and a track component. In early design, no CAD models are available and the designer provides the parameter values for mass, moment of inertia, etc. The designer connects the train component to the track component via the train-track interaction aggregate port. Once the configuration is complete and all component interfaces are connected, the designer proceeds to the modeling layer to select behavioral models Refinement: Configuration Further along the design process, the designer decides that further refinement is necessary in the train component. This requires elaborating the train component in the configuration layer and selecting refined models in the modeling layer. Attributes are added to the train component attribute tree. Refined behavioral models are selected by refining the model search criteria with more attribute-value pairs. For example, a new motor component could be selected by choosing to use a DC motor (with appropriate attributes) instead of a generic electromechanical transducer. 67

82 A new configuration is developed for the train component. The train is instantiated with a CAD model as a parameter. The track component is also instantiated with a CAD model parameter. The train component is now configured as a composition of subcomponents: a DC motor, a drive train, a body component, and a control system component (Figure 4.6) Refinement: Modeling When developing the corresponding behavioral model, models are chosen for each sub-component in the train component from each behavioral model container, as well as for the track component. In this stage of detailed conceptual design, the mechanical model of the body of the train is still a simple translational Newton-Euler model, but a DC motor model is added to convert electrical to mechanical energy, and a drive train model increases the torque output of the motor using a simple gear interaction model Discussion In this example, we have used our attribute-formalism to select and iterate ports and Motor Train Control System Drive Train Train Body Train-Track Interaction Mechanical Port DC Electrical Port Train control Port Track Figure 4.6. High-level component configuration for a single car train interacting with a track. Each block represents a component, and a circle represents a port on the component interface. Lines represent noncausal connections and arrows represent directed connections. 68

83 interaction models. Attribute-based representations allow us to define ports and models by their characteristics, rather that by their position in a taxonomy. In the design iteration, we have used abstraction, both in the configuration and in the modeling layer. Abstraction serves an important purpose: to reduce the amount of detail presented to the designer so that he or she can focus on high-level modeling decisions without dealing with small details. Separation of the interfaces from the content of models (whether behavior or configuration) has the added advantage of encouraging standardization and reuse of these models in later design projects. 4.5 Summary We presented a framework where designers can create virtual prototypes of electromechanical systems by configuring components, while simultaneously selecting and assigning CAD parameters and behavioral (simulation) models. To generate system-level behavioral models from component configurations, the behavioral models of the individual components need to be combined with behavioral models of the interactions between the components. We introduced a mechanism to extract such interaction models automatically based on the matching between component ports and an attribute grammar of interaction models. Our framework supports the designer throughout the design process by providing mechanisms for abstraction, automatic model selection and model reuse. 69

84 5 Component Interactions 5 Connector Conspiracy, n: [probably came into prominence with the appearance of the KL-10, none of whose connectors match anything else] The tendency of manufacturers (or, by extension, programmers or purveyors of anything) to come up with new products which don't fit together with the old stuff, thereby making you buy either all new stuff or expensive interface devices. The New Hackers Dictionary The ability to relate and to connect, sometimes in odd and yet striking fashion, lies at the very heart of any creative use of the mind, no matter in what field or discipline. George J. Seidel 5.1 Introduction The mathematical modeling of virtual prototypes has evolved over time. Many early simulation languages were based on the Continuous System Simulation Language (CSSL) [137]. Models were written as sequential procedures, which implied a fixed mathematical causality. They were implemented as monolithic pieces of software with no separation between model and solver. Subsequently, object-oriented principles have been applied to systems modeling [8, 30, 54], with the result that models are easier to create, reuse and share. Causality assignment is performed automatically, and the solver is independent of the model. However, the product design methodology is still not closely coupled with the modeling methodology. 5 This chapter is based on the following published papers: Sinha, R.; Paredis, C.J.J.; and Khosla, P.K., Interaction Modeling in Configuration Design, Proceedings of the ASME Design Engineering Technical Conferences, September 9-12, 2001, Pittsburgh, Pennsylvania, USA. Sinha, R.; Paredis, C.J.J.; and Khosla, P.K., "Kinematics Support for Design and Simulation of Mechatronic Systems, Proceedings of the 4 th IFIP Workshop on Knowledge-Intensive CAD, May 22-24, 2000, Parma, Italy. 70

85 As described in the previous chapter, we further the evolution towards a seamless integration of design and simulation by introducing the idea of a component object. They contain their configuration information as well as behavioral models and design data. They are connected to other component objects via ports. In our framework, the virtual prototype is created once all the component objects are interconnected. Connecting component objects via their ports is not sufficient to create a complete system-level model [133]. The behavioral models of each component object must also be connected to each other. However, as we will show in subsequent sections, merely making a connection between the modeling ports can result in an incorrect model in many cases. We introduce the idea of component interaction models that connect the behavioral models of two interconnected component objects. For a composition operation over component objects to be successful in generating a system-level virtual prototype, component interaction models are required. Interaction models capture the physical dynamics at the interfaces between components. This chapter presents a framework that supports the following aspects of interaction modeling: Model organization. Several models can represent a particular physical phenomenon. These models should be classified and organized so that the designer is not inundated with choices. We define an interaction model container to organize interaction models. Reuse through standardized representation. All interactions between the component and its environment occur through the component s interface. Therefore, a library of interaction models can be indexed by their interfaces. Candidate interaction models can be selected by searching the library for models with interfaces compatible with 71

86 the interfaces of the connected components. We standardize interfaces by utilizing two concepts: ports and instantiation parameters. A port represents an intended interaction between a component and its environment. An instantiation parameter represents information that must be provided to define a component unambiguously. Interfaces are also represented using attributes. Capturing component interaction dynamics. When two components are connected via their interfaces, the connection implies that there is an intended physical interaction between the two components. This interaction must be captured in a behavioral model. The interaction can be as simple as applying Kirchhoff s Laws to an electrical connection. Or it can be more complex such as applying a kinematic joint model to a mechanical connection. In this chapter, the focus is on characterizing, modeling and organizing the interactions between components. With this objective in mind, we model interactions as containers for a family of interfaces. We describe the port-based representation of interfaces and how the interface mediates interactions between components. We apply our insights to generating a system-level virtual prototype for the train example introduced in previous chapters. 5.2 Behavioral models For interactions Component interactions are modeled as behavioral models that capture the mathematical description of the physical interaction. As for the behavioral models associated with component objects, we consider these models to consist of either differential-algebraic equations (DAEs) for continuous time phenomena, or discrete event 72

87 systems specifications (DEVS) [165], or composed out of other behavioral models through the port-based modeling paradigm [42]. Behavioral models for interactions are different from those for component objects. They are not associated with geometry, but they may be instantiated with parameters that are computed from the geometry of the connected component objects. 5.3 Interaction Models and Containers When a designer composes a system from components, he connects the configuration ports of components. By doing this, the designer explicitly indicates that there is an intended interaction between the connected components. The connections represent physical or information-exchange phenomena that occur at the component interfaces. In Figure 5.1(a), the resistor, capacitor and AC source have 2 pins each that are connected at A, B and C to form the circuit. There is a one-to-one correspondence between the circuit connections and the connections between the behavioral models. The correspondence is modeled using Kirchhoff s current and voltage network laws, resulting in a correct systemlevel model. In the mechanical and other domains, a connection between components cannot be correctly modeled by merely connecting the corresponding behavioral models. In Figure 5.1(b), the shaft is connected to the bearing. Applying Kirchhoff s network laws at the connection point A results in the positions P r being equal and the generalized forces F r summing to zero. This implies a rigid joint between the shaft and the bearing, which is incorrect. 73

88 (a) A B Resistor AC Source Capacitor C B R A V AC C C Kirchoff Laws At A, B and C V = V = K = V 1 2 N k = 1 I = 0 k n Correct Model (b) Shaft A Bearing Shaft A Bearing Kirchhoff Laws At A rr P 1 = P 2 rr F 1 + F 2 = 0 Rigid Joint Incorrect Model Figure 5.1. Composition of behavioral models in the electrical and mechanical domains. In (a) the composition occurs via the application of Kirchoff s Laws. However, in (b), applying Kirchoff s Laws results in an incorrect rigid joint. Introducing an interaction model at A that captures the dynamics at the interface between the shaft and bearing solves this problem. Depending on the type of configuration ports that are connected, candidate interaction models are chosen automatically. There are a finite number of possible interaction model interfaces that can represent the connection between the configuration ports. In general, if there are m and n candidate behavioral ports for configuration ports 1 and 2 respectively, then the space of behavioral model interfaces representing the component interaction has an upper bound of m n. The interaction model then becomes a container for this set [131]. For example, consider the two gear components in Figure 5.2. When the designer makes a connection between the two gear ports in the configuration level, a container interaction model is instantiated in the modeling layer. The container holds all the possible behavioral models that can be used to represent this interaction. Searching a library of interaction models populates the 74

89 container. In this example, the possible models are two gear interaction models. The parameters of the interaction can be inferred by geometric reasoning on the CAD data in each component [128]. Potentially, a very large number of behavioral models can be present in the interaction model container, and two or more of these models may be closely related. In Figure 5.2, both the gear interaction models are closely related in that they have the same interface, but slightly different dynamics. In the previous chapter, to organize and maintain the space of all possible interaction models, and to support evolution of the design, we presented an attribute grammar for ports. The choice of a particular model from the container depends on the nature of the simulation experiment that is being performed. In Figure 5.2, there are two gear interaction models in the gear interaction container. One is a simple kinematic gear interaction model with two 3D mechanical ports. Another is a complex gear interaction model with kinematics and frictional dynamics. The first model may be used in preliminary design, when a high-level simulation is needed. The second model would be used later in the design process, when a detailed simulation is performed. Both models are valid choices, and are presented as possible alternatives in the interaction model container for this R 1 α 2 N N 2 1 R 2 α 1 R 2 α 1 Gear Radii Number of teeth, Pressure angle etc. Gear Configuration Port Gear Interaction 1 N=R2/R1 Gear Interaction Gear Interaction 2 N=R2/R1 F1=f(N,N1,N2,α1, α2) Mechanical Modeling Port Figure 5.2. Interaction model as a container for a set of reconfigurable models. In this example, the container lists two possible behavioral models for this interaction. 75

90 Physical Object A Interaction Model Physical Object B Electrical Domain (default interaction) Component Node Component A B across A = across B through i = 0 Mechanical Domain (complex interaction) Component Interaction Component A Component B Joint Model, Gear Model, Friction. Figure 5.3. Interactions between system components. connection. The ports on the models in the container are related via our port formalism and our port attribute grammar. A port on the one interaction model can be a supertype of a port on another model. This capability allows the designer to encapsulate ports within ports, and create multiple levels of abstraction for the interaction models in the design. At each level, he can work with ports and interaction models whose information richness is sufficient for the current abstraction level. This allows the designer to create and simulate virtual prototypes for complex, hierarchical devices by selecting and connecting components via their interfaces. 5.4 Derivation of the Interaction Model from Component Objects In addition to the behavioral models of component objects, systems include models describing the interactions between component objects. For each pair of interacting component objects, there is an interaction model that relates the port variables of the two objects to each other. 76

91 Any interaction in any energy domain requires an interaction model. However, for the electrical domain, the interaction model is usually very simple. An electrical connection between two components is modeled sufficiently accurately by constraining the voltage at the two connecting ports to be equal and the current through them to sum to zero. Because this interaction model is so common, we allow it to be omitted in our modeling framework, as is shown in Figure 5.3. In the mechanical domain, the equivalent default model is rarely appropriate. Even when connecting two components rigidly, their reference frame is usually in a different location so that a model representing the coordinate transformation is needed [129]. Besides rigid connections, other common mechanical interaction models are the lower pair kinematic constraints. Algorithms have been developed to predict the instantaneous degrees of freedom from the CAD models of parts composed of polygonal planar faces [87]. However, these algorithms handle only parts with planar faces while most engineering devices have curved parts. When curved parts are approximated as piecewise planar parts, it is possible to overlook degrees of freedom in the device, due to erroneous collisions. In the next chapter, we describe the algorithms to obtain lower pair mechanical interaction models automatically from the geometry of the connected component objects. 5.5 Illustrative Example 77

92 Train-Track Interaction 2 Control Wheel Interaction Model rolling w/friction rolling w/friction rolling w/friction rolling w/friction Electrical-positive Electrical-Negative Train-Track Interaction 1 Translation Model Figure 5.4. Train-track interaction model container that captures all the candidate interaction models that can model the connection between the train and the track. To illustrate the concepts developed in this chapter, we elaborate the train system example introduced in the previous chapter. Given that the focus of this chapter is on interactions, we will focus on the interaction between the train and its track. We will demonstrate automatic selection, abstraction and design refinement of interaction models Initial Interaction Modeling In the previous chapter, we selected a train and a track component. The designer connects the train component to the track component via a train-track interaction aggregate port. In the modeling layer, a high-level train-track interaction model is automatically selected and instantiated, based on the nature of the connected ports. This interaction model is a container for every behavioral model that can be used to describe the interaction between the train and the track (Figure 5.4). 78

93 Train-Track Interaction 1 Translation Model Figure 5.5. The train-track interaction model at the early design stage. The mechanical interaction has been disaggregated into the individual ports for the four wheels of the train. The choice of behavioral model depends on the design stage and the requirements of the simulation. In this stage of early conceptual design, the particular behavioral model chosen is a simple Newton-Euler mechanical model; the train-track interaction port has only one sub-port (a 3D mechanical port), and the interaction model only considers mechanical translation of the train along the track (Figure 5.5). When modeling is complete, it is possible to simulate the virtual prototype by translating the behavioral models into Modelica and evaluating them in a commercial Modelica simulator Refinement of the Interaction Model Using the grammar, the train-track interaction port is refined to three sub-ports that are connected together on either high-level component. These ports are the control port, the mechanical port, and the DC electrical port. With the train being modeled in CAD as a detailed solid object, the train-track interaction model in Figure 5.6 can be automatically derived from the geometry. The parameter extraction engine examines the current CAD model for the train and track components, obtains the material properties and wheel 79

94 Train-Track Interaction 2 Control Wheel Interaction Model rolling w/friction rolling w/friction rolling w/friction rolling w/friction Electrical-positive Electrical-Negative geometry and uses a look-up table to obtain the friction coefficient for a coulomb friction model. Figure 5.6. The train-track interaction model in the detailed design stage. The mechanical interaction has been refined to a rolling joint with rolling friction. This provides all the necessary information to complete the system model and evaluate it in a Modelica solver Discussion To generate system-level behavioral models from component configurations, the behavioral models of the individual components need to be combined with behavioral models of the interactions between the components. We introduced a mechanism to create an interaction model container automatically based on the matching between component ports. Our framework supports the designer throughout the design process by providing mechanisms for abstraction, automatic model selection and model reuse. Our framework supports automatic interaction model selection and instantiation. The automation allows the designer to focus on the more important tasks of configuration and CAD and behavioral model parameter assignment, while accurately capturing the 80

95 intended interactions between components in the configuration. The automation also maintains consistency between the CAD parameters and behavioral representations. 5.6 Limitations of Interaction Models Our interaction modeling framework allows us to model the physical interactions that occur at component interfaces using port-based composition. Our models are objectoriented, hierarchical and acausal. In some cases, they can also be derived automatically from the design data of the connected component objects. We assume that the interaction phenomena occurs at the component interface, and that the physical interaction is present for the duration of the simulation. In this section, we discuss the conditions when these assumptions are violated. The port-based modeling paradigm imposes constraints on the types of models that can be defined. In particular, all interactions between component objects are limited to discrete locations on their interfaces. This works well when the energy exchange can be accurately modeled as being restricted to the interfaces. Our framework supports this type of interaction model. Distributed interactions can also be captured within our framework. Instead of a discrete location, a surface on the interface is involved in the interaction. 81

96 (a) Shaft Bearing (b) Figure 5.7. In (a), the mechanical interaction between the shaft and the bearing is localized their interfaces the outer curved surface of the shaft and the inner curved surface of the bearing. However, in (b), The gravity interaction between the planet and the satellite is not limited to the surface, and involves the entire mass of both components (image from NASA MAP Science Team). Field interactions like the gravity interaction (Figure 5.7) involve every physical location within one component object interacting with every physical location within the other component object. In this case, the interface extends to the entire mass of the component object. When there are only two components interacting in a field interaction, one way of solving this problem is to incorporate the gravity interaction model directly into the behavioral model of each component object. Certain interaction phenomena appear and disappear dynamically during the course of a simulation. Mechanical collisions or wireless broadcasts are two examples. The portbased modeling paradigm restricts configurations to be static (i.e. unchanging for the duration of the experiment), and allows connections between a single pair of component objects at a time. In the dynamic cases, it is inconvenient to capture every possible connection between the component objects (i.e. create a maximal configuration), and turn on and off only those connections that are active at each time step of the simulation. 82

97 It is also important to bear in mind that the space of possible interaction models is bounded by the set of attributes in the attribute grammar. This implies that physical phenomena that are not defined via attributes in the grammar will not be available as possible interaction models in the interaction model container. The set of attributes only captures the set of interaction phenomena that are of current interest to the designer and have been modeled by the designer; un-modeled interactions will not be considered. New phenomena are added by extending the grammar. Certain phenomena that occur in complex systems cannot be described by the sum of the interactions of the constituent components. Such phenomena are called emergent phenomena [35]. Our framework cannot capture such interactions. The formal grammar approach implies that a higher-level construct such as an emergent interaction must be expressible in the grammar as an aggregation of lower-level interactions. 83

98 6 Automatic Extraction of Mechanical Interaction Models 6 Equations are just the boring part of mathematics. I attempt to see things in terms of geometry Stephen Hawking Any impatient student of mathematics or science or engineering who is irked by having algebraic symbolism thrust upon him should try to get along without it for a week Eric Temple Bell 6.1 Introduction Mechanical interaction models are an important class of interaction models that are instantiated while making mechanical connections between two component objects. When two component objects are connected mechanically, there is a physical contact between the CAD features of each component. For example, when a shaft is connected to a bearing, the outer cylindrical surface CAD feature of the shaft is in contact with the inner cylindrical surface CAD feature of the bearing. The type and attributes of these CAD features determines the interaction model. In this chapter, we provide a set of algorithms that determine the interaction model when the contacting CAD features are surfacesurface contacts. 6 This chapter is based on the following published papers: Sinha, R.; Gupta, S.K.; Paredis, C.J.J.; and Khosla, P.K., "Extracting Articulation Models from CAD Models of Parts with Curved Surfaces", ASME Journal of Mechanical Design, 124, in press. Sinha, R.; Paredis, C.J.J.; Gupta, S.K.; and Khosla, P.K., "Capturing Articulation in Assemblies from Component Geometry", Proceedings of the ASME Design Engineering Technical Conferences, September 1998, Atlanta, Georgia, USA. 84

99 In current design practice, when a device that contains parts with curved surfaces is considered, reasoning about its behavior is usually done by analytical methods that are difficult to implement [59, 82], or by approximating all the curves as piecewise planar surfaces [88]. The approximation is usually based on past experience or on heuristics. However, such approximations may invalidate the analysis by unintentionally constraining the degrees of freedom in the device. These erroneous results propagate throughout the design process, influencing the decisions of part and assembly designers, device analysts, process engineers, and operators. Another consideration is the reuse of the derived device models. Even in a collaborative setting, when a part or assembly from a previous design project is reused, sometimes all that is known a priori is the geometry of the part or assembly. Only the CAD model of the part or assembly persists across designs. Behavioral models of the part or assembly are not reused. In addition, feature-based design of complex devices requires verification of the fact that actual kinematic behavior matches the required behavior. If component models that capture the geometry as well as the physical behavior of the device can be created, it should be possible to construct system-level simulation models merely by configuring the component models [106]. The above discussion indicates a need for three capabilities that will support all aspects of the design process - creation of the ability to exactly reason with a broad class of curved surfaces; the ability to obtain kinematic models from assembly geometry; and the ability to encapsulate kinematic behavior models and CAD models in the representation of a part or an assembly. Our research supports the first two aspects, and 85

100 we have implemented these ideas in COINSIDE, our modular simulation-based design framework [106]. Frameworks for the detection and representation of articulation behavior in assemblies can be restrictive. In order to generate assembly or disassembly plans for such assemblies, the designer needs to take articulation information into consideration. However, current methods of representing articulation are restricted to systems that require complete specification by the user [1] or are based on feature recognition [112]. The former are open to incorrect input by the user resulting in illegal articulation behavior. The latter do not account for incomplete geometry and incidental contacts. Other methods exist to obtain articulation models by reasoning on the geometric representation of the artifact. Techniques have been developed to predict the instantaneous degrees of freedom from the CAD models of parts with only polygonal planar faces [66, 88]. However, when the curved parts that exist in most engineering devices are approximated as piecewise planar parts, erroneous results are possible. In this chapter, we present a methodology that generalizes our earlier work on contact surfaces [128]. Previously, the instantaneous degrees of freedom at each joint were based on surface mating constraints that were in turn obtained from analyzing body to body contacts. We imposed non-penetration constraints along the boundary of each contact surface in the form of algebraic inequalities. One can show that a finite number of nonpenetration conditions are representative of the entire surface in contact. Using linear programming methods, we computed instantaneous velocities and accelerations for each pair of bodies. In this article, we obtain a set of properties that must be satisfied by a general contact surface in order to preserve the linearity of the model. We describe a 86

101 method by which the space of allowable motions in the assembly can be described concisely. We then describe a heuristic that can find feasible joints from the space of allowable motions. Such a methodology can provide useful feedback to the designer. He or she can determine which components are free to move in the assembly. The procedure can be completely automated, so that there are no errors induced by user interaction. This eliminates the possibility of input errors. In addition, since the method is algebraic and uses linear programming, it is relatively fast and is valid for all possible surface contacts, unlike rule-based systems that operate on a feature level. This method will also account for contact surfaces with incomplete geometry (such as portions of planes, cylinders, or spheres). Our method is subject to the following restrictions. Since our algorithms extract only lower-pair mechanical interaction models, the CAD models used in the analysis are assumed to model surface contacts at the joints. The joint contacts induce the instantaneous degrees of freedom. Since the algorithms detect the instantaneous degrees of freedom, they are applicable for a single configuration of a mechanism, and cannot be used to predict all possible configurations of the mechanism. 6.2 Early Work on Contact Mechanics Previous work on planar contact mechanics and screw theory prepared the foundation for this work. Ohwovoriole and Roth [101] showed that unidirectional constraints can be modeled as screws. Hirai and Asada [66] described the allowable motions of a part using polyhedral convex cones to represent the space of movement. Mattikalli and Khosla [86] 87

102 described a method to obtain degrees of freedom from component mating constraints, wherein they use a unit sphere to represent the space of all available degrees of freedom. Some issues have not yet been addressed satisfactorily in these frameworks. Current shortcomings in articulation research include: 1. Only bodies described (or approximated) by planar surfaces are considered. 2. Current techniques are local; global interaction (propagation of constraints beyond the point where they are induced) is not satisfactory. 3. Current simulation techniques do not detect incorrect/incomplete inputs; there is no verification for correctness of the articulation representation and for the compound effect of geometric interactions and physics-based interactions. A part in an assembly is in physical contact with one or more other parts. The nature of these contacts can provide useful information about the types of the degrees of freedom at these contact points. Some of these contacts induce surface mating constraints, leading to the formation of a joint. Other contacts are incidental, in that they may bound the values of the degrees of freedom of the joint [112, 113]. Reasoning about these constraints provides the designer with valuable insight into the instantaneous degrees of freedom of the assembly. Other researchers [86, 88] have worked with polygonal bodies and polygonal surfaces of contact. They approximate curved planar boundaries using straight lines, and use linear programming techniques to solve the contact problem. When a pair of parts are in contact with each other, it implies that there is no interpenetration between the parts at the contact surfaces. Penetration of one part into the other requires that the relative velocity at one of the points of contact between the parts 88

103 1 n r v rrr + ω r P 1,2 P 1 O have a component that is directed opposite to the surface normal at that point. This nonpenetration condition at a point can be written as [88]: r r r r ( v + ω ) n 0 (6.1) where v r is the relative translational velocity between two parts, ω r is the relative angular velocity between two parts, r r is the position of the point and n r is the normal at a point of contact on the surface of contact. This equation is linear in v r and ω r. We define the generalized velocity vector as [ v r ω r ]. In Figure 6.1, we show the operation of the non-penetration condition at a point of contact between two planar surfaces 1 and 2, that are part of body 1 and body 2, respectively. Point P 1 is on surface 1, and is in contact with point P 2 on surface 2. n r is the surface normal at P 1, v r and ω r are the relative translational and rotational velocities of the body pair. r r is the position vector of the contact point P 1 (or P 2 ). Figure 6.2 shows the non-penetration condition along a line segment from P 1 to Q 1. For non-penetration at every point on this line segment, it is sufficient that Equation (2.1) be satisfied at P 1 and Q 1. r P 1,2 Figure 6.1. Non-penetration condition at a point. Planes 1 and 2 are coplanar but are shown as separated for clarity. P

104 O n r v rrr + ω r P 1,2 To prevent the penetration of one part into the other, Equation (2.1) must be satisfied at every point on the surface of contact and on the boundary of the surface of contact. Such a method of expressing planar contact between two bodies has been used before. For example, Mattikalli et al. [88] use non-penetration conditions to determine the impending motion direction of polyhedral rigid bodies in contact. P 1 1 r r We define a primitive contact patch to be a contact surface that is part of a single type of surface. A compound contact patch is an aggregation of two or more primitive patches. A closed planar patch is bounded by a finite set of curves; these curves may be straight line segments (Figure 6.3) or curved line segments. Any point in the interior of the patch Q 1 P2 Q2 Figure 6.2. Non-penetration condition along a line. r r is the position vector of an arbitrary point along the contact line between P 1 and Q 1. Planes 1 and 2 are coplanar but are shown as separated for clarity. 2 n r rrr v+ ω r P 1,2 P 1 1 r R 1 Q 1 O P2 Q2 Figure 6.3. Non-penetration condition in a polygonal surface. r r is the position vector of an arbitrary point within the polygon bounded by P 1, Q 1 and R 1. Planes 1 and 2 are coplanar but are shown as separated for clarity. R

105 can be expressed as a linear combination of points at the vertices of the boundary of the convex hull of the patch. Therefore, the non-penetration condition at any point in the interior can be expressed as a linear combination of the non-penetration conditions at the vertices of the convex hull. As long as the convex hull has a finite number of vertices, there will be a finite number of non-penetration conditions, all of which are linear in v r and ω r. When extending to curved surface contacts, it is desirable to preserve the linearity of the formulation for reasons of computational efficiency; linearity allows for easier search and boundary enumeration. 6.3 Extending Contact Mechanics to Curved Surfaces We extend the results obtained for planar surface contacts by showing that similar results can also be obtained for spherical and cylindrical surfaces defined by edges that are great arcs (for spherical surfaces) or straight lines and circular arcs (for cylindrical surfaces) [128]. Spherical surfaces that share a common center always result in unconstrained rotations when in contact. As before, the non-penetration conditions must be written at the vertices of the convex hull for the given spherical contact surface. However, since the cost of computing the convex hull is high, we chose to generate the non-penetration condition at the vertices of the spherical patch. This will not influence the final result. The non-penetration conditions at two points on a sphere are written (in a fashion similar to Equation (2.1) as: 91

106 rrrrr ( ω ( ) ω ( ) v+ p+ Rn1 n1 0 (6.2) rrrrr ( ) v+ p+ Rn n Using techniques similar to those used for planar patches, i.e. multiplying the first inequality by x 1 and the second by x 2, and then adding, we get: rrrrr + + ( v ω p) ( xn xn ) (6.3) where the left hand side term is an expression of n r as a linear combination of n r 1 and n r for x > 0 i = 1K 2. The n rrr ω n r term is always 0 for all n, and drops out of the 2 i expression. Therefore, inter-penetration does not occur at any point within the spherical patch. Boundary segments of the spherical patch must be discretized into a finite number of great arcs so that non-penetration conditions can be imposed at each end-point of the arcs. When the angle subtended by a great arc at the center is greater than π, then a third point should be picked in between the end points such that the angle between the first and third points as well as the angle between the second and third points are both less than π. This will ensure that the normals at the first and third points span the circular arc between the first and third points. Similarly, the normals at the second and third points span the circular arc between the second and third points. The non-penetration condition for the third point should be added to the set of non-penetration conditions for this patch. Cylindrical surface contacts, by virtue of the fact that the contact surface is curved, do not have a normal vector that is constant over the entire patch. Thus, we define a normal with the following property: 92

107 n rr = o 0 (6.4) with the origin of the cylinder at p r and o r along the axis of the cylinder of which the patch is a part. Now, the non-penetration conditions at two points 1 and 2 on the patch becomes: rrrrrr ( ω ( ) ω ( ) v+ p+ zo 1 + Rn1 n1 0 (6.5) rrrrrr ( ) v+ p+ zo+ Rn n where p r is the origin of the cylinder, z i is the distance from the origin to the point in question, along o r and R is the radius of the cylinder of which the patch is a part. Equation (6.5) should hold at every point on the cylindrical patch for the nonpenetration condition to be valid. Multiplying each inequality by x 1, x 2 and so on, and then adding results in: rrrrr r + rrr ( v ω p) ( xn xn ) ( xzn xzn ) ( ω o) (6.6) During the consideration of each patch boundary segment, it is necessary to show that there exist n rrr = xn 1 1+ xn and 2 2 zn rr = xzn + xzn r rr with n = o 0 for the segment Considering Boundary Points Constant in z To show that for a boundary segment with constant z, the θ coordinate of a point on the boundary can be expressed as a linear combination of the θ coordinates of the end points, we set z 1 = z 2 = z in Equation (6.6) to get: 93

108 rr xn + xn n r = rr xn 1 1+ xn 2 2 (6.7) Points that subtend an angle at the axis greater than π are resolved by considering an additional point at the middle of the circular contact arc between these two points. Then the angle between each of the original points and the newly added point will be less than π. The normal vectors at two points with the same z and different θ span the possible normals between the two points. Therefore the non-penetration condition at any point on a boundary segment with constant z is satisfied if non-penetration is satisfied at the end points of the segment Considering Boundary Points Constant in q To show that for a boundary segment with constant θ, the z coordinate of a point on the boundary can be expressed as a linear combination of the z coordinates of the end points, we set n rrr 1= n2 = n in Equation (6.6) to get: z= xz + xz x2 = 1 x (6.8) The normal vectors at two points with the same θ and different z have normals that are equal. Thus, these two points are very similar to the end-points of a straight line in a plane. Therefore the non-penetration condition at any point on a boundary segment with constant θ is satisfied if non-penetration is satisfied at the end points of the segment Considering Boundary Points Varying in z and q. For situations when the points on the boundary of the patch vary both in z and in θ, it is impossible to find an n rrr rr r = xn 1 1+ xn such that 2 2 zn= xzn + xzn. So, we discretize the

109 boundary using segments of constant z and constant θ. This ensures that along each discretized segment, the linear relationship between the end points holds. Therefore to summarize, for cylindrical surfaces, non-penetration at every point in a contact patch with boundary segments that are exclusively straight line (constant-z) and circular (constant-θ) segments can be represented entirely by non-penetration at the vertices of these segments. 6.4 Generalized Contact Mechanics In the previous section, we indicated that the linear properties of planar contact mechanics models can be preserved when curved surface contacts are modeled. This is possible if the contact surface boundary can be described by a finite number of segments such that satisfying the non-penetration condition the end points of the segments is necessary and sufficient to satisfy the condition at any point on the curved surface. This section defines and proves the necessary conditions. The nature of the physical contact between a pair of parts in an assembly provides useful information about the types of the degrees of freedom. Some of these contacts induce surface mating constraints, leading to the formation of a joint. Other contacts are incidental, in that they bound the values of the degrees of freedom of the joint. A contact implies that non-penetration between the parts at every point on the contact surface. Nonpenetration conditions can be written as inequalities that are linear in the instantaneous velocity, which when taken together, describe a linear subspace. The following Proposition will be used to establish a theoretical basis for the linear treatment of curved surfaces in assembly modeling [132]. 95

110 Proposition 1. Given: 1. A continuous curve 3 C( λ): λ [0,1] R. 2. C(0) = P and C(1) = P; P, P R C lies on a parametrizable, differentiable contact surface S formed between two bodies A and B. Then non-penetration (by Equation (2.1)) at P 1 and P 2 implies non-penetration at any point on C, if and only if: 1. C is a circular arc, possibly with infinite radius (limiting case of a straight line) 2. The unit normal to C at any point along C is equal to the unit normal to S at that point. Proof. We prove Proposition 1 by showing that given Equation (2.1) written at P 1 and P 2, Equation (2.1) holds along a set of points between P 1 and P 2. Equation (2.1) written at P 1 is: and at P 2 is: r r r r v + ω ) n 0 (6.9) ( 1 1 r r r r v + ω ) n 0 (6.10) ( 2 2 where v r is the relative translational velocity between the bodies A and B, ω r is the relative angular velocity between the two bodies, r 1 and r 2 are the position vectors of P 1 and P 2, 96

111 respectively. n r 1 and n r 2 are the normals to S at P 1 and P 2 respectively. Forming a linear combination of Equation (6.9) and Equation (6.10), we get: r r r r r r r r λ( v + ω 1) n1 + (1 λ)( v + ω 2 ) n2 0 with λ [ 0,1] (6.11) Rearranging terms in Equation (6.11), we get: r r r r r r r r r λ n + (1 λ) n ) v + λn ω + (1 λ) n ω 0 (6.12) ( For Equation (6.12) to be true and of the form of Equation (2.1), the following would have to be true v r, ω r : and r r r n = λn ( n (6.13) λ) 2 r r r r r r r r r n ω + ( 1 λ n ω = n ω (6.14) λ 1 1 ) 2 2 Equation (6.13) is an expression that indicates that n r only spans the normals from n r 1 to n r 2. By substituting Equation (6.13) in Equation (6.14) and using the vector identity rr r r rr A B C= B C A to rearrange terms, we get: rrrr rrrr r ω λ + λ = ω λ + λ (6.15) { } ( r n r (1 ) n ) r ( n (1 ) n ) r Equation (6.15) is true if ω = 0 r (the trivial case for no rotational motion). For Equation (8) r to be also true for ω 0 r, it is sufficient to show that: 97

112 r r r r r r r λ n + ( 1 λ) n = λ (6.16) { λn + (1 n } r ) 2 Equation (6.16) is an expression for the generatrix or trace [61] r r of C that generates a locus of points where Equation (2.1) is satisfied, given that it is satisfied at P 1 and P 2. Taking the dot product of Equation (6.16) with n r 1 and n r 2 and rearranging terms, we get: r r { r r1 } ( n1 n2 ) = 0 r r r r { } ( n n ) = 0 2 r 1 r 2 (6.17) Thus, for non-planar contacts, r r lies in the plane containing both P 1 and P 2 and normal to the vector 2 reduces to: n r r 1 n. For planar contacts (the trivial case), n = n = n 1 2 ( ω ( λ1 λ 2 ) rrr and Equation (6.12) v rrr + r + (1 ) r rr n 0 (6.18) Which is of the same form as Equation (2.1). Properties 1 and 2 are then satisfied, and Proposition 1 is proved. r r For the nontrivial case, assuming that n 1 n2 is a non-zero vector, we can then parameterize r as (see Figure 6.4): 98

113 n r 1 P 1 r n r n r 2 O P 2 Figure 6.4. Plane containing r r also contains the normal vectors to r r. r r = o + α n r r r r and n = β n n 1 + (1 β ) r n 2 (6.19) Where o r is an arbitrary origin. Using Equation (6.19) to substitute for r, r 1 and r 2 in Equation (6.16) and expanding, we get: r r n 1 n r (6.20) 2 α [ λ β ] = 0 n r r From Equation (6.20), it follows that since n 1 n2 cannot be zero (as per our assumption), λ is equal to β. In all of the subsequent analysis, we will use β, with the understanding that the parameterizations by λ and βare equivalent. The curve described in Equation (6.19) must lie on the specified surface S. This is equivalent to saying that the tangent vector to the curve at every point on the curve must be perpendicular to the normal to the surface and the normal vector to the curve must be parallel to the normal vector to the surface. We enforce this by the following constraint on C: 99

114 r d r n( s) = 0 ds (6.21) where s is the arc length, and n r (s) is the normal vector field. Substituting from Equation (6.19): r d dα = ds ds r n + r n r r dn n dβ α r r 1 r dn n r n n dβ dβ r 2 n ds (6.22) or, upon simplification and substitution of Equation (6.22) in Equation (6.21): r d r dα r (6.23) n( s) = n = 0 ds ds which implies that: ( s) = constant α (6.24) With Equation (6.24), Equation (6.19) reduces to that of a circular arc in the plane. The unit normal vector to any point on this arc is equal to the unit normal vector to the surface S at that point. This established properties 1 and 2. To prove the converse, i.e. given a circular arc lying on the surface S with the unit normal vector field to the arc equal to the unit normal vector field of the surface, we write Equations (6.9) and (6.10) for a circular arc. Thus Equation (6.9) becomes: and Equation (6.10) becomes: r r r r r v + ω ( o + Rn )) n 0 (6.25) (

115 r r r r r v + ω ( o + Rn )) n 0 (6.26) ( 2 2 where R is the radius of the circular arc. Expanding Equations (6.25) and (6.26) and forming a linear combination: r r r r r v + ω o) ( λn 1 + (1 λ) n ) ( 2 0 (6.27) which is of the same form as Equation (2.1). Therefore, non-penetration at the points P 1 and P 2 implies non-penetration all along C. Note that this is similar to the proof of nonpenetration along a circular arc on a right circular cylinder, presented in Sinha et al. [128]. This completes the proof of Proposition 1. Lemma 1.1. The curve C exists on surface S when: r r r r 1. ( r r ) ( n n ) = 2. The intersection of S with the above plane is a circular arc. Proof. The above two conditions follow from Proposition 1. Curve C lies in a plane containing the points P 1 and P 2, as defined in Equation (6.17). C is also a circular arc on S, as shown in Equation (6.24). r r Corollary 1.1. The straight line l( λ ) : λ [0,1] λ 1 + (1 λ ) 2 on a plane surface S satisfies Proposition

116 Corollary 1.2. The great arc on a spherical surface S subtending an angle less than π satisfies Proposition 1. Corollary 1.3. The straight vertical line parallel to the axis and the circular arc subtending an angle less than π on a right circular cylindrical surface S satisfies Proposition 1. Proof. Corollaries 1.1 through 1.3 are discussed and proved individually in Sinha et al. [128]. Here, we show that they emerge as special cases of Proposition 1. As per the Proposition, the only possible segment on a planar surface (Corollary 1.1), with n r 1 equal to n r 2, is the circular arc with infinite radius, i.e. the straight line joining the points P 1 and P 2. The great arc on a spherical surface also satisfies Proposition 1. The possible segments on a right circular cylindrical surface are the vertical straight line and the circular arc. The subtended angle is required to be less than π to prevent n r 1 being parallel to n r 2. Corollary 1.4. The straight vertical line starting at the apex of a right conical surface S satisfies Proposition 1. Proof. Upon examination of a right circular conical surface, we see the straight line (or meridian lines) of the cone has its unit normal vector equal to the unit normal vector of the surface of the cone. Therefore, Proposition 1 is satisfied. Note that circular arcs can be present on the cone, but do not satisfy Proposition 1 because the unit normals along the arc do not point in the same direction as the normal vectors of the cone. 102

117 6.5 Articulation in Assemblies This section describes how the space of allowed motion is computed from the nonpenetration conditions, and how the model of the space can be queried to provide designer feedback. When an unconstrained degree of freedom exists, the space of allowed instantaneous motion generated from the non-penetration conditions will be nonempty. The space can be analyzed to provide feedback to the designer Solving the Set of Non-Penetration Conditions for Instantaneous Articulation Each primitive patch induces a non-penetration condition at each of its (finite) vertices. Since penetration must not occur at any point at any time, the inequalities for all the nonpenetration conditions for the all the patches of a pair of bodies considered simultaneously form the linear program: r r n ( r i v + ω ri ) 0 i = 1KTotal numer of vertices in all patches (6.28) where v r and ω r are the relative velocities between the two parts, n r i is the normal at each vertex and r i is the position of each vertex. Since at any time, all the non-penetration conditions for all the parts must be satisfied, it is possible to solve all the inequalities for all the vertices of all the parts in the same linear program. This will result in a solution that is globally valid. Using a single linear program, it is possible to obtain all the instantaneous degrees of freedom for the assembly. If we write the non-penetration condition for a patch concisely as: 103

118 104 0 r r r r r B A B A patch v v ω ω J (6.29) where J patch is the non-penetration inequality coefficient matrix for that particular patch. Then the non-penetration conditions for all the patches in a body-body contact pair formed between bodies A and B can be written as: r r r r r M r r r r = B A B A patch patch patch B A B A AB v v v v p ω ω ω ω J J J J (6.30) where p is the number of patches in which this body-body pair participates. Writing Equation (6.30) for all the body-body contact pairs in an assembly, we get: 0 r M r r r r M O M M M L L M r r r r = B B A A BC BC AB AB B B A A assembly v v v v ω ω ω ω 0 J J J J J (6.31) where J assembly is a complete representation of the assembly with instantaneous articulation. Solving this global simplex provides all the translational and angular velocities for all the body-body pairs simultaneously. The simplex is (6N-6)-dimensional (3 variables for translational velocity and 3 variables for angular velocity for each of N-1 ungrounded bodies in the assembly). Since the origin is a vertex of this high-dimensional space, this structure is also called a Polyhedral Convex Cone. Such structures have been studied extensively by Goldman and

119 Base Arm Rotor Slider Figure 6.5. Contact graph for a 4-part assembly. Nodes represent the four parts. Edges represent the contacts. The contact surface that forms the intersection set is shown in each edge Tucker [60] and others. Hirai and Asada [66] used cones to describe the possible contactpreserving and contact-breaking motions between two polyhedral bodies A CAD Implementation for Instantaneous Articulation Having established a theoretical framework for treating curved surface contacts in the previous sections, we now describe the system that extracts non-penetration conditions from the CAD models of parts in an assembly. A contact graph structure G can be used to represent the assembly (Figure 6.5). In the contact graph, parts are represented as nodes, and contacts between parts are represented as edges between the corresponding nodes. Edges between nodes are automatically derived by performing intersections between the corresponding parts. {( A, B, I ): A, B Set of parts; A B; = Result of intersection between A and B} G = I (6.32) where G is the contact graph that contains a finite number of 3-tuples. Each 3-tuple contains two parts and an intersection set. The intersection information in each edge is examined for features that could indicate the presence of surface mating constraints. Each element of I can be thought of as a constraint patch on the mating surface between A and B. For a particular element, all 105

120 boundary segments that do not satisfy Proposition 1 are discretized into primitive segments (straight lines on planes, circular arcs and straight lines on a cylinder for constant z and constant θ respectively, and great arcs on a sphere), each of which satisfy Proposition 1. The set I can be partitioned as: I = S1U S2U S3UKU S n (6.33) finite n where S 1 through S n are a finite number of primitive surfaces (or patches). On each S, there exists a finite set of boundary segments Ω: Ω = { σ : σ Set of boundary segments of S} s.t. σ σˆ = α1uα 2UKUα m finite m (6.34) where σ is either a primitive segment, or can be approximated as σˆ which is a union of a finite number of primitive segments α. Thus, the intersection set I is composed of a finite number of primitive boundary segments. The non-penetration condition for each end-point or vertex of each primitive boundary segment α is written as a constraint in the linear program. The linear space can now be described (or enumerated) using standard boundary enumeration techniques. Note that this technique will work only for those surfaces that satisfy Proposition 1. On other surfaces such as splines, non-penetration conditions would have to be written for every point on the surface. Finding one solution to the simplex is easy; finding all solutions is a more difficult proposition. However, useful information can still be obtained by projecting the simplex on either the v r, or the ω r space. Such linear programming methods have previously been used by Mattikalli et al. [88] to obtain solutions to the stability problem for assemblies. 106

121 Solutions are returned in the form of allowable instantaneous translational and angular velocities. Translational velocities of zero indicate that translation is constrained for that body-body pair. Angular velocities of zero indicate that rotation is constrained for that body-body pair Giving Feedback to the Designer In order to completely describe all the possible relative motions of the assembly, it is necessary to completely describe the boundary of the polyhedral convex cone in 6N-6- dimensional space. Useful feedback can be provided to the designer in the form of questions such as: What degrees of freedom exist when the rotations of a particular part are constrained? This question can be answered by adding r 0 r ω = for the body in question, to the set of constraints and evaluating the linear program. Other possible what-if analyses include grounding a part (i.e. setting degrees of freedom for all the other parts. r 0 r r r v = and ω = 0 for that part) and obtaining the instantaneous The space of allowed motions can be represented by the set-theoretic sum of the space of motions that preserve the contact ( J assembly r = V 0 r ), and the space of motions that break the contact ( J assembly r > V 0 r ), where V r is the vector of generalized velocities: S allowed = S S (6.35) contact preserving + contact breaking S contact-preserving is the space of possible generalized velocity vectors that cause all contacts to be maintained, or: 107

122 S contact preserving = Nullspace( J assembly ) (6.36) The basis vectors of the nullspace completely describe the possible contactpreserving motions. A singular value decomposition of J assembly is used to compute the nullspace. Computing the boundary of the space of contact-breaking motions is a much harder problem. Avis [13], Avis and Fukuda [12, 14], Motzkin et al. [92], Bremner et al. [25], and Fukuda and Prodon [57] have all proposed methods to enumerate the boundary of a polyhedral convex cone. However, time requirements for these methods quickly explode when confronted with cones of increasing dimensionality. Nemhauser and Wolsey [98] show that the extreme ray membership problem for a cone is in NP. Similar conclusions are drawn by Avis [15]. For a discussion of the complexity class of enumeration problems see Fukuda [56]. Given a cone, it is possible to verify the feasibility of a given solution in polynomial time [98]. Therefore, we propose the following heuristic to construct a finite set of feasible solutions from the geometry of the assembly: 1. For every primitive contact patch, pick the axis and a position on the axis - for planes, the normal to the plane; for cylinders and cones, the principal axis; for spheres, any axis; in addition, pick a second axis tangent to the direction of curve parameterization for planes, an axis lying in the plane, for cylinders and cones, the axis of the base; for spheres, any axis perpendicular to the first axis. 2. See if a translational velocity along and/or a rotational velocity about these axes are feasible solutions to the set of non-penetration conditions. 108

123 Figure part assembly with 3 degrees of freedom. 3. Since there are a finite number of patches, therefore a finite number of axes, the number of possible feasible solutions will be finite. Note that this heuristic will fail to detect degrees of freedom that are not along axes of symmetry. Introduction of domain-specific knowledge (geometric information, in this case), enables us to draw useful inferences about the space of allowed motions. The feasible solutions that emerge from this test, along with the nullspace of the cone, form a representation of the cone. Feasible solutions for a particular pair of parts can be combined to form joints between parts. 109

124 6.6 Illustrative Examples Example 1 (Arm): Demonstration of the Framework In order to illustrate the framework defined in the previous sections, we present an example assembly. The assembly in Figure 6.6 is a 4-part assembly, with three functional degrees of freedom. We choose to render the base immobile (i.e. we ground it), by constraining all the six degrees of freedom. The system is implemented in C++, using ACIS as a solid modeller, and with Open Inventor for 3-D visualization [62]. This example problem was solved on a SUN Ultra-2 computer running Solaris 7, using 16 seconds of CPU time, from input of the CAD models to output of the joint information for the assembly. Contact analysis indicates that this is an open-chain assembly, with 9 linear-boundary planar contacts (base-to-arm, arm-to-slider and slider-to-rotor), 1 curved-boundary planar contact (base-to-arm), 8 partial cylindrical contacts (base-to-arm, arm-to-slider and sliderto-rotor). This generates a total of 81 inequalities, linear in 18 variables forming the relative translational and rotational velocities (assuming the base is grounded). The 81 constraints define a polyhedral convex cone in 18-dimensional space (see Figure 6.7). The matrix representation can be partitioned into two: the nullspace and the interior boundary enumeration representation. Singular value decomposition returns a rank of 15, indicating that there are three completely unconstrained degrees of freedom (and as a result, the nullspace is 3-dimensional). The nullspace basis [N 1, N 2, N 3 ] is shown in Equation (6.37). 110

125 N N N = [ ] [ ] [ ] = = where Ni = vx vy vz ωx ωy ωz vx vy vz ωx ωy ωz vx vy vz ωx ωy ω z Arm Slider Rotor (6.37) Nullspace basis vector N 1 indicates the presence of a translational degree of freedom for the slider and rotor with respect to the base. This freedom is at a 45 angle to the horizontal plane, indicated by the equal infinitesimal relative translational motions in the x and z directions. Basis vector N 2 indicates that there is a relative instantaneous rotation of the rotor with respect to the base at a 45 angle to the horizontal plane. The [0 17 0] translational component stems from the fact that the instantaneous rotation is not about the origin, but instead about the axis [1 0 1] through the point [18 0 1]. For the instantaneous velocity of the body to be zero at the point [18 0 1], r r r r v = v + p = r total ω 0 (6.38) or: v = p r ω r = (6.39) [ ] where v is the translational component, namely [0 17 0]; ω r is the instantaneous angular velocity component, namely [1 0 1]; and p r is the locus of positions that satisfies Equation (6.39). Thus, we get an axis [1 0 1] passing through [18 0 1]. Thus, nullspace analysis describes the boundary of the cone. 111

126 Figure 6.7. Formation of the Matrix Representation. Feasible solutions are constructed from the contact patches. The 18 primitive patches result in 216 candidate feasible solutions. Each candidate is tested to determine if it is within the space of allowed instantaneous motion. Four candidates are found to be valid solutions. Of the four valid solutions, three are identical to the nullspace basis vectors. The fourth is [ ], corresponding to the contact-breaking motion (vertical translation along the z-axis) between the base and the other 3 parts. Once valid feasible solutions are available, it is possible to group them together to define joints between parts in the assembly. One of the feasible solutions in this example results in a revolute joint being formed between the base and the arm (see Figure 6.8). This joint information is added to the representation of the assembly. Once joints are 112

127 Figure 6.8. Mapping feasible solutions to assembly joints. detected automatically, information about the material properties can be combined with kinematic information to perform motion simulations Example 2 (1-DOF 4-Bar Linkage): Global Constraint Resolution To verify the correctness of our implementation, we compared the results of our system to the analytical formulation for a 4-bar linkage. The example in this subsection is a 4-bar assembly with 1 degree of freedom (see Figure 6.9) with each bar having a joint axis-to-joint axis distance of 39 units. Computing the contact surfaces from the CAD model indicates that there are 4 contacts between the bars, each shaped like a top hat. Each top hat contact has 2 113

128 Bar 3 Bar Bar Bar Figure Bar Linkage planar contact surfaces bounded by a curved boundary and 1 complete cylindrical contact surface. The two planar contact surfaces constitute the top and the rim of the hat. The cylindrical contact surface constitutes the side of the hat. The non-penetration condition is satisfied everywhere on the cylindrical contact surface if it is satisfied at 6 points at the top and bottom boundary of the surface. On the two planar contact surfaces, we select 109 points that approximate the boundaries of the surfaces, and impose the non-penetration condition at these points. This results in a total of 114 inequalities per pair of bars, for a grand total of 460 inequalities in 18 relative translational and rotational velocity variables (assuming that Bar 1 is grounded). The inequalities are used to construct the inequality coefficient matrix A (similar to the one in Figure 6.7). Each inequality becomes a row in the matrix, resulting in a matrix of size The matrix has a rank of 17. Therefore, the nullspace N is 1-dimensional, indicating the presence of 1 completely unconstrained degree of freedom. A basis vector for the nullspace of A is: 114

129 N1 = where N 1 [ ] = v x v y vz ω x ω y ω z Bar 2 vx v y vz ω x ω y ω z Bar3 v x v y vz ω x ω y ω z Bar 4 (6.40) Breaking one of the bar-bar contacts would have resulted in an open-chain assembly, with 3 more degrees of freedom. The closed-loop eliminates these extra degrees of freedom, and this is reflected in the 1-dimensional nullspace. Examining the nullspace, we see that for an unit instantaneous rotation of Bar 4 with respect to Bar 1 about the z-axis, Bar 2 undergoes a unit instantaneous rotation about the z-axis, but at a position of [39 0 0] (using Equation (6.39)). Bar 3 undergoes an instantaneous pure translation along the x- axis of a magnitude 39 times that of the rotation. The 4-bar linkage has been extensively studied by mechanism theorists. Its behavior is well known. From [108] (see pp ), we see that the velocity-loop equation written for our 4-bar linkage is: r r r L ω 4 Lω 2 = 0 (6.41) r r Lω = 0 3 where L is the length of the bar, ω r 2 is the angular velocity of Bar 2 with respect to Bar 1, ω r 3 is the angular velocity of Bar 3 with respect to Bar 1, and ω r 4 is the angular velocity of Bar 4 with respect to Bar 1. Thus, ω r 2 is equal to ω r 4 and ω r 3 is zero. Since the links are rigid, for every δθ rotation of Bar 2 and Bar 4, there must be a L δθ x-axis displacement of Bar 3. This is identical to the previous result. This validates our implementation of degree of freedom extraction. 115

130 6.7 Discussion The geometry of the parts in an assembly restricts how they can be assembled, and how they move relative to one another. This in turn influences their static stability, kinematic behavior, and dynamic performance characteristics. However, models for these phenomena do not exist initially. The designer provides joint information at the conceptual design stage to meet certain functional requirements of the assembly. This information is provided either by specifying kinematic constraints between parts as annotations to the assembly CAD model, or by specifying mating conditions between specific features on the parts. It can also be derived from the CAD models of the individual parts, and from the relative positions of these parts in the final assembly. Or the information could be obtained by some combination of designer input and automatic derivation. Therefore, there can be two types of constraints between parts, namely, constraints introduced by the designer to satisfy functional requirements of the assembly, and constraints induced by the geometry of parts in the assembly. Both these types of constraints interact to produce a resultant behavior of a joint. It is important to be able to derive the joint behavior from the CAD model, as well as to verify that designer input is consistent with the CAD model. Our method reasons on the CAD model of the assembly to obtain the instantaneous degrees of freedom. It is able to handle incomplete curved geometry, while at the same time resolving global (i.e. multi-part) constraint interactions. Linear algebra-based constraint models are derived directly from CAD models, and then converted into articulation representations suitable for assembly planning and motion simulation. A proposition and other supporting theorems enumerate the properties of the contact 116

131 surfaces between the parts that must be satisfied to construct a linear algebraic constraint model. The linear algebra-based constraint model can be used to provide designer feedback. The model describes the space of allowable instantaneous motion in the assembly. Although solving for the complete boundary of this space is thought to be in NP, whether a particular instantaneous degree of freedom is within the space can be verified in polynomial time. Therefore, our framework also supports the ability to query the model with the designer specified joint information to verify that the information is correct. We validated our method by applying it to the 4-bar linkage, and comparing the results with those obtained from mechanism theory. Under certain circumstances, our method breaks down: contact surfaces that are represented by polynomial or transcendental functions have to be approximated as piecewise planar, cylindrical or spherical contacts this approximation may remove a degree of freedom. A valid candidate degree of freedom may not be detected if the freedom does not lie along an axis of symmetry. Our method is applicable only to assembly geometry that is modeled by exact CAD models without fit tolerances. The method is also only applicable to the particular mechanism configuration that is captured in the CAD model. 6.8 Conclusions and Future Work This section forwards the state-of-the-art in the following ways: Exact Treatment of Curved Geometry. Previous work on the application of linear programming techniques to the contact mechanics between two surfaces was restricted to 117

132 handling planar surfaces only [86, 88]. Curved surfaces were handled by approximating them as planar facets, or by using graphical methods. This result was extended to curved surfaces whose boundaries possess certain properties. The vast majority of manufactured parts have contacts that possess such boundaries. Therefore, the work presented here allows a designer to analyze and design devices that contain parts (or components) that in turn contain a broad class of curved surfaces. Modeling Support For Kinematics Behavior. Solving the contact conditions at the boundary will enable the designer to obtain the instantaneous degrees of freedom of the device. Using generate-and-test methods and reasoning about the geometry of the artifact will reveal the bounds on the values of the degrees of freedom. Such information, when combined with information about the mass distribution and with friction models, will allow the designer to determine the stability of the device, handle articulation during assembly planning, during synthesis of part geometry, as well as during the operation of the device. Accurate and Automatic Simulation Synthesis. Simulation of the operation of the electromechanical device requires kinematic and dynamic information. Since the CAD model of each component incorporates such information, high-fidelity simulation can be created and executed with minimal user interaction. Interesting research issues remain with regard to the handling of model uncertainty and in the quantification of the effect of model approximations, such as the discretization of curved planar contact boundaries, on the final result of the articulation analysis. 118

133 7 Case Study: MEMS-Based Resonator Few things are harder to put up with than the annoyance of a good example. Mark Twain When we get to the very, very small world ( ) we have a lot of new things that would happen that represent completely new opportunities for design. Richard P. Feynman, from his famous talk titled There's Plenty of Room at the Bottom on December 29th 1959 at the annual meeting of the American Physical Society. 7.1 Introduction Microelectromechanical systems (MEMS) have become popular in recent years as they provide low-cost, high-performance and reliable alternatives for traditional electromechanical systems. MEMS devices are manufactured using semiconductor manufacturing processes. They combine electrical and micro-scale mechanical components on the same silicon die. This allows them to enjoy the economies of scale prevalent in the semiconductor industry. The modeling and design of MEMS devices has proceeded along the lines of VLSI CAD [146]. Both electrical and mechanical components are modeled as port-based objects and are connected together in a configuration. In many cases, the mechanical components exhibit behavior only in the plane of the chip, and therefore the model equations are greatly simplified. In the previous chapters, we introduced the paradigm of simultaneously designing and simulating electromechanical systems. In this chapter, we will describe the virtual 119

134 Figure 7.1. Resonator mechanical structure. prototyping process for a MEMS-based accelerometer. We will apply our virtual prototyping framework to the design and simulation of this device. We will illustrate the merits of the COINSIDE methodology. We will only consider the mechanical and electromechanical design of the virtual prototype, and will not address the analog and digital electronics design aspects. 7.2 Product Overview Function and Structure The measurement of acceleration has a wide variety of applications in the industrial world [22]. Acceleration sensors are used in crash detection for air bag deployment in cars, vibration analysis in industrial machinery, etc. Recently, traditional accelerometers are being replaced in a few applications by MEMS-based accelerometers because of performance, weight and power consumption considerations. MEMS-based resonant accelerometers (sometimes referred to as vibrating beam accelerometers) have a proof mass that loads two vibrating suspensions on opposite sides of the proof mass [163]. When the accelerometer proof mass is loaded, one 120

135 Damper model Spring model x& Force Mass Source model Figure 7.2. Fundamental model for the mechanical response of an accelerometer [123]. suspension is put into tension and the other into compression. These suspensions are continually excited at frequencies of tens to hundreds of kilohertz range when unloaded. As a result, when "g" loaded, one suspension s frequency increases while the other suspension's frequency decreases. This difference in frequency is a measure of the device's acceleration. This form of accelerometer is an open-loop device, in that the proof mass is not rebalanced to its center position when force is applied. For accuracy, it relies on the scale-factor stability inherent in the material properties. Fabrication techniques result in low-cost, highly reliable accelerometers with a measurement accuracy of better than 100-µg bias error. Quartz and silicon micromechanical resonator accelerometers are being developed in the industry. They have proliferated widely into several commercial (e.g., factory automation) applications. Consider the resonator structure in Figure 7.1. It is a device constructed out of silicon. It contains a central proof mass that is mechanically rigid. The proof mass is attached at either end to electrostatic drives. The movement of the proof mass is restricted by four spring suspensions symmetrically placed about the mass. The springs and the stators of the drives are anchored to the substrate. The springs themselves are constructed out of 121

136 Mass Spring Actuator Wafer Signal Generator Figure 7.3. Resonator system architecture. flexible beams of silicon. For the purposes of this example, the anchors are considered to be rigid. The electrostatics in the resonator are confined to the comb drives at either end of the resonator. Each drive has fingers that overlap with each other. The drive has two parts the rotor attached to the proof mass and the stator attached to the anchor, with an air gap between them [145]. When a voltage is applied across the rotor and the stator, a capacitance is created that results in an electrostatic force. The drive can also be operated as a sensor. A relative movement between the rotor and the stator results in a change in the capacitance between them. As a result, the voltage between the rotor and stator also changes. The voltage is measured and converted to the position of the proof mass using analog and digital electronics. 7.3 Initial System Architecture and Model The high-level function of the resonator can be mapped to multiple sub-functions. The sub-functions correspond to provide inertia, provide flexural stiffness, actuation, and fix to wafer. They are then mapped to one or more system architectures. The framework 122

137 for this mapping is the subject of current research [80], and is not within the scope of this thesis. We will assume that a system architecture has been generated from the functional description. The system architecture under consideration is shown in Figure 7.3. It consists of a mass attached to the wafer substrate through a spring suspension, and actuated by an actuator. The actuator is driven by a signal, and acts as a damper across the spring. The physical behavior of the resonator structure occurs in three domains mechanical, electrical and electrostatic. A high-level model for each of these domains captures the overall behavior of the resonator. The mechanical behavior of the accelerometer can be modeled as an inertial mass attached to a spring suspension, and the motion damped by a linear damper. The behavioral model is shown in Figure 7.2. The spring model provides a restoring force with a stiffness of k. The force in the damping model is found by multiplying the velocity of the mass by the damping constant b. These two forces oppose the motion of the inertial mass, which is represented by an mass model of mass m. The input to this system is the external force on the inertial mass. Electrically, the proof mass behaves like a resistor. Since silicon is an electrically conductive material, the structure can be modeled as a network of resistors. Applying a voltage difference between two points on the structure results in a current flow through the resistor network. 123

138 Mass Spring Actuator Wafer Signal Generator Figure 7.4. Design with expanded ports. The electrostatics behavior of the resonator is confined to the comb drives. The rotor and stator are separated by an air gap. A voltage difference applied across the gap results in a translational motion. Conversely, a translation will give rise to a measurable voltage difference between the rotor and the stator of the drives. The mechanical and electromechanical modeling of the resonator involves modeling the geometry of the proof mass and the spring suspensions, as well as the comb drives. We will approach this by applying our modeling methodology to the design shown in Figure 7.1. The Modelica models are presented in Appendix C. 7.4 Initial Design and Modeling Our framework supports the configuration of components in the virtual prototype by instantiating and connecting them. So the first step is to select the components that will constitute the virtual prototype. The initial design is a configuration as shown in Figure 7.3. The designer decides that the springs will be placed symmetrically about the mass, and that there will be two 124

139 actuators. The design is refined by adding attributes to the ports so that they become aggregate ports. The iterated design is shown in Figure. Once the configuration is complete and all component interfaces are connected, the designer proceeds to the modeling layer to select behavioral models. The choice of behavioral model depends on the design stage and the requirements of the simulation. The physical behavior of the resonator structure occurs in three domains mechanical, electrical and electrostatic. A high-level model for each of these domains captures the overall behavior of the resonator. At this early stage of design, geometric information about the resonator is not available. The mechanical behavior of the accelerometer can be modeled as an inertial mass attached to a spring suspension. The spring model provides a restoring force with a stiffness of k. The input to this system is the external force on the inertial mass. The designer considers a 1D model for the spring one with flexibility along 1 axis. A model for the spring is a stiffness coefficient that defines the spring force as a linear function of the displacement: F = Kx (7.1) where F is the generalized restoring force, x is the displacement, and K is the stiffness coefficient. At this stage some simulation of the fundamental model of Figure 7.2 is possible. The designer elaborates the spring into a 2D model. The cross-axis behavior of the spring can be described using an ideal model. The stiffness coefficient of Equation (7.1) now becomes a stiffness matrix. The force response of the spring is now modeled along two orthogonal directions: 125

140 r r F = Kx (7.2) where F r is the generalized restoring force vector, x r is the state vector, and K is now a 2 2 stiffness matrix.. Electrically, the proof mass and the springs behave like a resistor. Since silicon is an electrically conductive material, the structure can be modeled as a network of resistors. Applying a voltage difference between two points on the structure results in a current flow through the resistor network. The electrostatics behavior of the resonator is confined to the comb drives. The rotor and stator are separated by an air gap. A voltage difference applied across the gap results in a translational motion. Conversely, a translation will give rise to a measurable voltage difference between the rotor and the stator of the drives. When modeling is complete, it is possible to simulate the virtual prototype by translating the behavioral models into Modelica and evaluating them in Dymola. Further refinement of the design and system-level model requires a suite of component objects that contain CAD data and behavioral models. Till this stage in the design, geometry was not available to the designer. To proceed further in the design process, he defines a library of commonly used MEMS component objects, based on our methodology. 7.5 Modeling Methodology: COINSIDE with Modelica In previous chapters, we presented our framework for virtual prototyping. We use Modelica [89] to represent the behavioral models in the virtual prototype. In this section, we will briefly describe Modelica and some of the characteristics of our Modelica models. 126

141 Modelica is an important effort to define advanced simulation languages capable of modeling complex multi-disciplinary systems. It has been developed primarily by the continuous systems community in Europe. It supports continuous time and discrete time modeling in multiple energy domains, and declarative modeling and hierarchical encapsulation. In addition, Modelica has the advantage that it is truly object-oriented with support for model inheritance and sub-typing. It further allows the definition of aggregate ports in which multiple across, through, and signal variables from different energy domains can be combined. Modelica is currently only supported by Dynasim [44]. Through symbolic index reduction, their solver is capable of handling index-3 problems that are common in mechanical models. (The index of a system of DAEs is the minimum number of differentiations required to obtain an equivalent explicit system of ordinary differential equations [11]). Modeling with Modelica is different from modeling with NODAS in several ways. Differences are in how Modelica models can be used to hierarchically model systems, the nature of ports, and in 6 DOF mechanical modeling. Modelica system models can be embedded easily in larger system models. A component, called the MEMSInertialSystem, is always present in all system configurations. This component has one connector and assigns the positions and linear velocities at the connector to be zero. Accelerations and angular velocity can be set as parameters. All other components are placed relative to this component. Such a construct 127

142 allows the designer to design a MEMS system and then place the entire system within a larger system, such as that of a car or a satellite. Modelica ports, called connectors, contain the positions and force vectors, as well as the velocity and acceleration vectors at the port location. Positions are defined in global coordinates, while velocities, accelerations and forces are defined in a local coordinate frame attached to the port. The Modelica multibody systems library is designed for 3D geometries. However, in this thesis we implement a 2D MEMS library that is similar to the NODAS methodology. NODAS (Nodal Design of Actuators and Sensors) [52, 95] is a MEMS modeling methodology that is based on composition via ports. Components are connected to each other via the ports in their interface. Components are called cells that contain multiple cellviews, one for layout (or geometry), one for the schematic (or configuration), and one for the behavioral model. Additional cellviews can exist that are specific to a particular modeling language or solver. Models capture the mechanical and electrostatic behavior of MEMS components in the same representation as that used for the electrical and electronics components in the design. Models are based on physical laws and are calibrated and verified against finite element simulations. The models can be at multiple levels of detail, and depending on the experiment, appropriate models are selected for the system-level configuration. NODAS contains models for substrate anchors, Euler beams, rigid plates, electrostatic gaps [83], viscous, squeeze film [154] and Couette damping, and comb drives. These models are configured in the schematic to create system-level models for MEMS devices. 128

143 Other design tools like layout extraction tools and optimization tools are also provided. Some integration between layout (form) and model (behavior) parameters is present. Feature recognition is used to recognise and extract some parameters from the layout into the schematic in Cadence [16, 17]. The inverse problem, namely to create a layout given a system-level schematic is also addressed. Optimization tools have been used to select optimal parameters for MEMS systems such as comb drives [73, 93, 96]. The models are implemented as Verilog-A models in Cadence [27]. Discipline-specific physical constants are collected into a single file. Manufacturing process-specific information is collected into another file. These files are read into those models that require process or discipline-specific constants. A 2D version of NODAS has been released, and a 3D version is in development. 7.6 The COINSIDE MEMS Library The MEMS Connector The MEMS connector (Figure 7.5(a)) captures the mechanical interaction between components in the prototype. It is a 2D port and captures only mechanical motion in the plane. Modelica mechanical connectors are vectors they encapsulate the linear and angular positions, velocities, accelerations, forces and torques at the location of the connection point. When a connection is made between two connectors A and B, the following equations hold: 129

144 (a) (b) (c) MEMS Connector MEMS Substrate Inertial Mass (d) (e) (f) MEMS Anchor Beam Element Electrostatic Gap (g) (h) (i) Cut anchor External Force Transformation Figure 7.5. Basic MEMS component objects and component interactions. vv pa = pb, RA = RB vvvv va = vb, ω A = ω B vvvv a = a, α = α A B A B (7.3) where p vvvvv, R, v, ω, a, α are the translational and rotational positions, velocities, and i i i i i i accelerations, respectively, of connector i, and rrv F + F = 0 τ A A B + τ = 0 B (7.4) vvv where {,,,, v, v pi Ri vi ωi Fi τ i across through are the mechanical connector variables for port i. 130

145 The port has an orientation. The right vertex of the triangle points towards the x-axis, with the y-axis pointing upwards. This results in a right-handed coordinate frame at the port. When connections are made between MEMS connectors, it is assumed that the two connected ports are in the same orientation. To change orientations between ports, a MEMS Transformation interaction (Figure 7.5(i)) is necessary so that a relative rotation and/or translation can be established between the connectors. We have designed our components so that, in general, it is not necessary to use the Transformation interaction to change the orientation of the connector MEMS Component Objects Our component objects are modeling representations of the MEMS structures used to construct the resonator hierarchically. They include the substrate (Figure 7.5(b)), the beam component (Figure 7.5(e)), the anchor component (Figure 7.5(d)), a generic mass component (Figure 7.5(c)), the rigid plate component (Figure 7.6) and the comb drive component (Figure 7.6). 131

146 Rigid Plate Comb Mass Comb Drive Configuration Component Figure 7.6. Compound components. The components represent distinct physical portions of the resonator structure. They encapsulate a simple geometrical description and a behavioral model. The geometrical description is limited to the dimensions of the bounding box of the component this is sufficient for our limited purposes since the MEMS fabrication process usually creates rectangular structures. We take advantage of the object-oriented capabilities of Modelica in defining components. We define two base classes of components, those with a single MEMS connector (such as the substrate and the mass), and those with two MEMS connectors (such as anchors and beams and transforms). We inherit these base classes and specialize their behavior to represent each specific child component. We also use the 132

147 encapsulation capability to separate the component into an interface section and a model section. The MEMSInertialSystem component models the substrate of the chip. This acts as the chip frame of reference. The entire structure is connected to this component via the anchors. The interface for this component contains one MEMS connector and is inherited from the corresponding base class. The model for this component assigns the positions and velocities to be zero. We allow accelerations to be user-defined, so that the entire chip along with the MEMS structure and electronics can be placed in an accelerating reference frame such as a car or a satellite and simulated. The anchor component models the locations of fixed silicon on the substrate. The MEMS structure is attached via anchors to the substrate. The anchor is a two-mems connector component one connector is connected to the substrate (MEMSInertialSystem) component and the other is connected to the structure. The anchor model merely defines the relative velocities, accelerations and linear positions between the two MEMS connectors to be zero. It also requires that the forces and torques on the anchor sum to zero, since the anchor has no inertial properties. The anchor is parameterized so that the user can assign a relative z-axis rotation between the connectors. This is important for the correct orientation and placement of the structure on the substrate. The use of fixed locations in a mechanical system-level model can result in kinematic loops. Our resonator design (Figure 7.1) has 6 anchors. To solve this problem, we follow the Modelica methodology and introduce the concept of a cut-anchor (Figure 7.5(g)) that 133

148 establishes the same relationships between the velocities and accelerations and forces and torques as the regular anchor component. We also use a special Modelica function that tells the solver to constrain the relative positions to be as close to zero as possible. This function also communicates to the solver that the velocities and accelerations are the first and second time derivatives, respectively, of the positions. This breaks the kinematic loop and creates a correct simulation model. The generic mass component models a lumped mass attached to the environment at its center of mass. Damping is modeled as linear viscous damping that is anisotropic in the x and y directions. The damping force along each direction is linearly related to the velocity in that direction through a damping coefficient in each direction. The damping coefficient B has the general form: B xy, = η Lw d (7.5) where η is the viscosity of air at room temperature, L and w are the dimensions of the mass (assumed to be rectangular) and d is the air gap between the structure and the substrate. Newton-Euler equations are applied at the center of mass: Property Density in kg 3 m Value 2330 Young s Modulus E in Pa z-axis thickness in m Sheet resistance in ohm 10 Figure 7.7. Material properties of poly-silicon. 134

149 r rrrr F = ma+ Bv, τ = Iα (7.6) where F r is the force vector, τ r is the torque vector, a r is the linear acceleration vector, v r is the linear velocity vector, α is the angular velocity about the z-axis (out of the plane of the substrate). m and I are the mass and moment of inertia parameters, respectively, and B is the diagonal damping matrix with B xy, as the terms along the diagonal. The beam component represents long and slim Eulerian beams that are flexible, and is parameterized by its length and width. The component is a configuration of a stiffness model and a lumped mass model attached to the center of the beam. The stiffness model is linear in the displacements: r r F = Kx (7.7) where F r is the generalized force vector, x r is the state vector, and K is the stiffness matrix chosen appropriately for the selected state variables. We chose our state variables to be the linear displacement in the local y direction with respect to one end, and the rotational displacement. The stiffness matrix is: 12EI 6 3 EI L L 2 K = 6EI 2 4 EI L L (7.8) where E is the Young s Modulus for silicon (Figure 7.7), I is the second moment of area and L is the length of the beam. The complete beam model can be expressed as: r rrr F = Kx+ Bx&& + Mx (7.9) 135

150 Where x r is the state vector of the beam. The Electrical behavior of the beam is like a resistor with the resistance computed from the dimensions of the beam. We performed some simple tests on our beam model to verify that the behavior was similar to the NODAS beam model. We anchored the beam at one end and forced the other end with a sinusoidally varying force of frequency 1 Hz and amplitude 1 µn. The results are shown in Figure 7.8, and correlate well with the corresponding NODAS simulation. The animation viewer is also shown on the extreme right of the figure, with the beam displayed as the thick horizontal line. This viewer is used as a primitive layout verification tool. The plate component represents large, rigid, conducting plates and is parameterized by its length and width. It has twelve attachment points, each represented by a connector. Four of the connectors are located at the center of each of the sides of the plate. The other 8 connectors are symmetrically placed at an offset from each corner of the plate. We model the behavior of the plate with a Mass component at the center of the plate attached by Transform components to the twelve MEMS connectors on the boundary of the plate (Figure 7.6). The electrical behavior of a plate is the same as a network of resistors, Figure 7.8. Simple cantilever beam configuration, Modelica output and layout verification. 136

151 attached at the twelve connections points along the boundary. The comb mass component (Figure 7.6) is a child of the OneMEMSConnector component that represents the fingers of the rotor (or stator) of the comb drive along with the truss to which all the fingers are attached. It is parameterized by the truss thickness, number and length of fingers and the gap between fingers. From these parameters, the mass and inertia properties are calculated. A Mass component is instantiated with these parameter values. Comb mass components are used only in the comb drive configuration. The comb drive component (Figure 7.6) is a child of the TwoMEMSConnectors component. It represents the electrostatic comb drives in the resonator and is parameterized by the number and size of the fingers, the gap between fingers and the overlap between fingers, along with parameters representing the truss that supports the fingers. We model it as a configuration of two Comb mass components and an electrostatic gap interaction model. The two comb masses are not kinematically constrained with respect to each other. Their only physical relationship is through the electrostatic force exerted on them from the gap interaction model. 137

152 Right U-Spring Left U-Spring Configuration Component Figure 7.9. Spring suspensions The damping phenomena in MEMS systems can be classified into 3 types: Stokes flow above the structure, linear Couette damping between the structure and the substrate, and squeeze film damping when the air film is squeezed between two moving structures. These models are used in detailed comb drive configurations where there is relative motion between the rotor and stator portions of the drive. For simplicity, in this thesis we do not model Couette and squeeze film damping in the drives. The spring suspension components represent the U-spring suspensions on either side of the proof mass of the resonator. They are modeled as configurations of beam and plate components (Figure 7.9). The long beam in the spring allows flexure in the y-direction. The small plates act as rigid joints that allow for moment and force transfer from one beam to another. We do not model rigid joints as mechanical interactions, since this is the default interaction model that is created when two MEMS connectors are connected with each other. 138

153 We use several standard components from the Modelica electrical library voltage sources and resistors. Their design and modeling is not the focus of this thesis, therefore we do not elaborate on their models. See Appendix C for the corresponding Modelica models MEMS Component Interactions Component interactions capture the physical phenomena at the interfaces between connected component objects. They do not represent any physical entity in the device, but depend on the interfaces of the connected component objects. In the resonator, the interaction phenomena are mechanical interactions between components, electrical connections between components, and the electrostatic interaction within the comb drives. The mechanical interactions in the structure are the rigid joints between components and the transforms between MEMS connectors. As stated previously, we do not instantiate interaction models for the rigid joints since the default interaction model is that of a rigid joint, represented by Kirchhoff s laws. We define a Transformation interaction that captures the relative transform between two MEMS connectors. The interaction is r parameterized by the displacement vector = rx ry in the plane and the relative rotation θ rel about the z-axis. The interaction model is used to model the mechanical interaction between the mass of the plate and the boundary of the plate. Damping is an important mechanical interaction that occurs when there is relative motion between mechanical components in the presence of a viscous medium like air. However, in this example we do not treat is as a separate interaction model, and instead 139

154 lump it into the behavioral model for the mass component. We will discuss damping in the Discussion section. Electrostatic Configuration Port Mechanical Modeling Port Electrical Modeling Port Location Material Intended Use CAD Feature = Fingers Name = Silicon Properties Comb-drive Convert-energy Figure Electrostatic port. Young's Modulus = Density=2330 The electrical interactions in the structure are the default electrical connections between conducting components. The interaction model is merely Kirchhoff s laws and is automatically instantiated by Modelica. The electrostatic interactions are localized to the comb drive, and occur between the stator and the rotor. We capture the interaction using an electrostatic configuration port (Figure 7.10). This port contains a mechanical and an electrical modeling port. The location attribute points to the CAD feature that represents the fingers of the drive. The material at the location is silicon. The intended use for this port is in a comb drive for the purpose of energy conversion, and is captured in the Intended Use attribute. 140

155 Electrostatic gap Interaction Model Modeling Ports Port Map 1 = Port 1:: Electrostatic Port Port Map 2 = Port 2:: Electrostatic Port Intended Uses convert-energy translational forces constrain-motion Active Domains Electrical Mechanical Signal Thermal Hydraulic Parents = NIL Assumptions Location Geometry Material Invariant... Physical Phenomena Invariant Non-reactive Electrostatic energy conversion Parameters Gap fringing Equations Initial gap = 2µm Initial overlap=6µm Fringing parameters Parallel Plate equations A C = ε z Fringing factor = 0.0 C A = ε 2 z z The electrostatic interaction model is represented in our attribute grammar in Figure When two electrically conducting parts that are separated in space have a voltage difference across them, a force is generated. As shown below, the force is directly F = Figure Electrostatic interaction model attribute representation. 1 2 C v z 2 141

156 proportional to the spatial rate of change of capacitance between the parts. The simplest electrostatic gap model is the parallel plate model. We use this model with a scaling factor to account for fringing effects. Electrostatic gap models capture the energy conversion between two electrically conducting parts that have a voltage difference across them and are separated in space. The simplest electrostatic gap model is the parallel plate model. The capacitance between two parallel plates at a specified voltage is inversely proportional to the distance between the plates: C = ε A z (7.10) Where ε is the permittivity of air, A is the area of the overlapping plates, z is the distance between the plates and C is the capacitance. The electrostatic force generated between the plates is given by: F = 1 2 C v z 2 (7.11) Where v is the voltage difference between the plates, C is the space derivative of the z capacitance along the direction of movement and F is the electrostatic force. C is z computed from Equation (7.10) as: 142

157 Mass Spring Actuator Wafer Mass Spring Actuator Wafer (a) Signal Generator (b) Signal Generator U-spring Folded flexure spring Figure Two design alternatives for the spring suspension. C A = ε 2 z z (7.12) Equation (7.12) is one possible model for the rate of change of capacitance in Equation (7.11), and we use this model in our electrostatic gap formulation. 7.7 Refinement of Design and Model To obtain a more realistic simulation, the designer decides that further refinement is necessary in the components. In this scenario, the designer elaborates the mass and 143

158 spring components in the configuration layer and selects refined models in the modeling layer. The designer considers two design alternatives: a U-spring design and a folded flexure spring design for the suspensions. For each case, he elaborates the spring component. The elaborated configurations are shown in Figure (a) for the U-spring and Figure (b) for the folded flexure spring. He creates embodiments for each candidate spring component and connects them together in the configuration. COINSIDE automatically connects together the corresponding CAD models and behavioral models. The geometry for case (a) and (b) is shown in Figure and Figure, respectively. Once the configuration is complete, the designer selects behavioral models. The suspensions are now modeled as flexible beams. The mass is modeled as a combination of rigid plate models, and the comb drives are modeled as a rotor mass and a stator mass interacting through an electrostatic port. This provides all the necessary information to complete the system model and evaluate it in a Modelica solver. Both design alternatives (a) and (b) are evaluated and compared by the designer. Figure Resonator mechanical structure for case (a). 144

159 Figure Resonator mechanical structure for case(b). 7.8 Resonator Model At the system-level, creating the model involves defining an external interface for the model. Then one selects, instantiates and connects component interfaces from a library of component objects. Once this is done, behavioral models are selected for each component. Behavioral models are composed automatically within our framework to create a system-level behavioral model. In this case, the resonator interface consists of three electrical pins that connect to the two comb drives and the main structure. We have the library of component objects and Figure Resonator icon in Modelica. The icon represents the physical layout. 145

160 Figure Resonator configuration in Modelica. component interactions to assemble the MEMS resonator system-level model (Figure 7.15). We select components from the library and connect them together in a configuration that closely mimics the physical geometry of the resonator. This configuration is shown in Figure The configuration contains five plate components to represent the main proof mass, four spring suspension components, one anchor and three cut-anchors for the suspensions, and two comb drives each with an anchor. There is also a MEMSInertialSystem component to which all the other mechanical components are connected. The components are connected via the MEMS connectors and the electrical connectors to create the system-level configuration. 146

161 Figure Resonator test case embedded in a vehicle. As a component is instantiated in the configuration, a corresponding physical layout component is added to represent the geometry of the component. After simulation, it is possible to watch the motion of the structure in the animation window of Dymola. 7.9 Simulation and Results The resonator structure shares the same die as the electronics for the MEMS component (Figure 7.17). The entire chip is mounted within the overall electromechanical system, such as a car. To simulate the effect of the motion of the car on the resonator, we can apply an acceleration to the MEMSInertialSystem component which will be transmitted to all the other components in the resonator. In this chapter, however, we choose to test the resonator in isolation. To test the resonator virtual prototype, we embed it in a system-level configuration along with two DC voltage sources and a voltage-controlled voltage source (Figure 7.18). Then we select voltages for the sources and simulate the virtual prototype. 147

162 7.10 Design Verification: Finite Element Modeling MEMS are small, intricate devices that must perform accurately and reliably, often in the hostile environments of vehicles and industrial machines. As a result, engineers developing MEMS using port-based modeling methods must rely on finite element analysis (FEA) software to verify the behavior of these microstructures in determining stress, de-formation, frequency response, temperature distribution, electromagnetic interference, and electrical properties. Figure Resonator test case configuration. 148

163 Resonator geometry Fixed supports Fixed contacts Mesh Figure Resonator FEM model setup in ANSYS DesignSpace. Another complication in MEMS design is that many physical phenomena interact to affect the operation of the devices, including mechanical driving forces as well as resonant behaviors, thermal levels, piezoelectric effects, and electro-magnetic interference. The way in which MEMS are packaged also can affect the operation, reliability, and accuracy of the units, compounding the difficulty of MEMS design. Because many of these effects are interdependent, predicting output and performance of a MEMS device is a complex problem that defies the intuitive approaches often used in the development of larger assemblies. To meet these challenges, MEMS engineers rely almost universally on finite element simulation to verify their designs. FEM structural analyses determine parameters such as stress, strain, displacement, and natural frequency vibrations in mechanical parts as a result of applied loads. Available computational fluid dynamics capabilities handle problems ranging from laminar, turbulent, and compressible flow to the simulation of pressure drops, velocities, and thermal distributions. Heat transfer problems involving both solids and fluids are common in MEMS, since heat buildup is so destructive to electronic 149

164 ω θx = KHz ω z = KHz ω y = KHz ω θz = KHz higher plate modes ω θy = KHz ω x = KHz ω plate = KHz Figure Resonating frequencies for the resonator. circuits. Electromagnetic analyses are used in cases of devices with electrically or magnetically generated forces to calculate force, torque, inductance, impedance, Joule losses, field leakage, and field saturation. Developers of MEMS also have obstacles to overcome in prototype testing. While physical mock-ups of conventional electromechanical devices may undergo several test and redesign cycles, the initial semiconductor fabrication setup for MEMS is very costly and so time-intensive that prototype testing is almost always performed to validate the design rather than to identify design flaws. 150

Behavioral Model Composition in Simulation-Based Design

Behavioral Model Composition in Simulation-Based Design Behavioral Model Composition in Simulation-Based Design Rajarishi Sinha 1, Student Member, IEEE, Christiaan J.J. Paredis 1,2, Member, IEEE, and Pradeep K. Khosla 1,2, Fellow, IEEE 1 Institute for Complex

More information

INTERACTION MODELING IN SYSTEMS DESIGN

INTERACTION MODELING IN SYSTEMS DESIGN Proceedings of DETC 01 2001 ASME Design Engineering Technical Conferences September 9-12, 2001, Pittsburgh, PA, USA DETC2001/CIE-21285 INTERACTION MODELING IN SYSTEMS DESIGN Rajarishi Sinha, Student Member,

More information

On the Synthesis of the System Graph for 3D Mechanics

On the Synthesis of the System Graph for 3D Mechanics On the Synthesis of the System Graph for 3D Mechanics Antonio Diaz-Calderon 1, Christiaan J. J. Paredis, Pradeep K. Khosla Institute for Complex Engineered Systems Carnegie Mellon University Pittsburgh,

More information

Composable Models for Simulation-Based Design

Composable Models for Simulation-Based Design Composable Models for Simulation-Based Design Christiaan J. J. Paredis, Antonio Diaz-Calderon, Rajarishi Sinha, Pradeep K. Khosla Carnegie Mellon University Institute for Complex Engineered Systems Department

More information

A Composable Simulation Environment to Support the Design of Mechatronic Systems

A Composable Simulation Environment to Support the Design of Mechatronic Systems A Composable Simulation Environment to Support the Design of Mechatronic Systems Antonio Diaz-Calderon Submitted in Partial Fulfillment of the Requirements for the degree of Doctor of Philosophy in Electrical

More information

Extracting Composable Mechanics-Based Assembly Models from CAD Representations

Extracting Composable Mechanics-Based Assembly Models from CAD Representations Extracting Composable Mechanics-Based Assembly Models from CAD Representations A Thesis Proposal Submitted in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy in Engineering

More information

VIRTUAL PROTOTYPING SIMULATION FOR THE DESIGN OF TWO-WHEELED VEHICLES

VIRTUAL PROTOTYPING SIMULATION FOR THE DESIGN OF TWO-WHEELED VEHICLES NTERNATIONAL DESIGN CONFERENCE - DESIGN 2002 Dubrovnik, May 14-17, 2002. VIRTUAL PROTOTYPING SIMULATION FOR THE DESIGN OF TWO-WHEELED VEHICLES S. Barone, A. Curcio and F. Pierucci Keywords: CAD, Multi-Body

More information

Modern techniques bring system-level modeling to the automation industry

Modern techniques bring system-level modeling to the automation industry Modern techniques bring system-level modeling to the automation industry Philipp Wallner, Global Technology Manager, Bernecker + Rainer Industrie and Johannes Friebe, MapleSim Europe Director, Maplesoft

More information

Lesson 1: Introduction to Pro/MECHANICA Motion

Lesson 1: Introduction to Pro/MECHANICA Motion Lesson 1: Introduction to Pro/MECHANICA Motion 1.1 Overview of the Lesson The purpose of this lesson is to provide you with a brief overview of Pro/MECHANICA Motion, also called Motion in this book. Motion

More information

MANUFACTURING OPTIMIZING COMPONENT DESIGN

MANUFACTURING OPTIMIZING COMPONENT DESIGN 82 39 OPTIMIZING COMPONENT DESIGN MANUFACTURING SIMULATION OF LASER WELDING SHORTENS DESIGN CYCLE AND OPTIMIZES COMPONENT DESIGN AT OWENS CORNING JOHN KIRKLEY interviews BYRON BEMIS of Owens Corning It

More information

Introduction to Control Systems Design

Introduction to Control Systems Design Experiment One Introduction to Control Systems Design Control Systems Laboratory Dr. Zaer Abo Hammour Dr. Zaer Abo Hammour Control Systems Laboratory 1.1 Control System Design The design of control systems

More information

Accelerating Finite Element Analysis in MATLAB with Parallel Computing

Accelerating Finite Element Analysis in MATLAB with Parallel Computing MATLAB Digest Accelerating Finite Element Analysis in MATLAB with Parallel Computing By Vaishali Hosagrahara, Krishna Tamminana, and Gaurav Sharma The Finite Element Method is a powerful numerical technique

More information

Design optimisation of industrial robots using the Modelica multi-physics modeling language

Design optimisation of industrial robots using the Modelica multi-physics modeling language Design optimisation of industrial robots using the Modelica multi-physics modeling language A. Kazi, G. Merk, M. Otter, H. Fan, (ArifKazi, GuentherMerk)@kuka-roboter.de (Martin.Otter, Hui.Fan)@dlr.de KUKA

More information

Composable Models for Simulation-Based Design. Christiaan J. J. Paredis, Antonio Diaz-Calderon, Rajarishi Sinha, and Pradeep K.

Composable Models for Simulation-Based Design. Christiaan J. J. Paredis, Antonio Diaz-Calderon, Rajarishi Sinha, and Pradeep K. Composable Models for Simulation-Based Design Christiaan J. J. Paredis, Antonio Diaz-Calderon, Rajarishi Sinha, and Pradeep K. Khosla 4-1- Technical Report ICES-4-1- Institute for Complex Engineered Systems

More information

ORGANIZATION AND SELECTION OF RECONFIGURABLE MODELS. Antonio Diaz-Calderon Christiaan J. J. Paredis Pradeep K. Khosla

ORGANIZATION AND SELECTION OF RECONFIGURABLE MODELS. Antonio Diaz-Calderon Christiaan J. J. Paredis Pradeep K. Khosla ORGANIZATION AND SELECTION OF RECONFIGURABLE MODELS Antonio Diaz-Calderon Christiaan J. J. Paredis Pradeep K. Khosla Department of Electrical and Computer Engineering Institute for Complex Engineered Systems

More information

Extracting Articulation Models from CAD Models of Parts With Curved Surfaces

Extracting Articulation Models from CAD Models of Parts With Curved Surfaces Rajarishi Sinha* ASME Student Mem. Institute for Complex Engineered Systems Carnegie Mellon University Pittsburgh, PA 15213 e-mail: rsinha@cs.cmu.edu Satyandra K. Gupta ASME Mem. Department of Mechanical

More information

Chapter 1: Introduction

Chapter 1: Introduction Chapter 1: Introduction This dissertation will describe the mathematical modeling and development of an innovative, three degree-of-freedom robotic manipulator. The new device, which has been named the

More information

COMPARING MATRIX-BASED AND GRAPH-BASED REPRESENTATIONS FOR PRODUCT DESIGN

COMPARING MATRIX-BASED AND GRAPH-BASED REPRESENTATIONS FOR PRODUCT DESIGN 12 TH INTERNATIONAL DEPENDENCY AND STRUCTURE MODELLING CONFERENCE, DSM 10 22 23 JULY 2010, CAMBRIDGE, UK COMPARING MATRIX-BASED AND GRAPH-BASED REPRESENTATIONS FOR PRODUCT DESIGN Andrew H. Tilstra, Matthew

More information

Introduction to Physical Modelling Rory Adams Senior Application Engineer

Introduction to Physical Modelling Rory Adams Senior Application Engineer Introduction to Physical Modelling Rory Adams Senior Application Engineer 2014 The MathWorks, Inc. 1 Creating Reusable Physical Models What you should walk away with Increased knowledge of: What is meant

More information

Module 1 Lecture Notes 2. Optimization Problem and Model Formulation

Module 1 Lecture Notes 2. Optimization Problem and Model Formulation Optimization Methods: Introduction and Basic concepts 1 Module 1 Lecture Notes 2 Optimization Problem and Model Formulation Introduction In the previous lecture we studied the evolution of optimization

More information

Electrical engineering. data management. A practical foundation for a true mechatronic data model

Electrical engineering. data management. A practical foundation for a true mechatronic data model W H I T E P A P E R Z u k e n T h e P a r t n e r f o r S u c c e s s Electrical engineering data management A practical foundation for a true mechatronic data model d a t a m a n a g e m e n t z u k e

More information

Model Library Mechanics

Model Library Mechanics Model Library Mechanics Using the libraries Mechanics 1D (Linear), Mechanics 1D (Rotary), Modal System incl. ANSYS interface, and MBS Mechanics (3D) incl. CAD import via STL and the additional options

More information

Model-Based Development of Multi-Disciplinary Systems Challenges and Opportunities

Model-Based Development of Multi-Disciplinary Systems Challenges and Opportunities White Paper Model-Based Development of Multi-Disciplinary Systems Challenges and Opportunities Model-Based Development In the early days, multi-disciplinary systems, such as products involving mechatronics,

More information

LMS Virtual.Lab Noise and Vibration

LMS Virtual.Lab Noise and Vibration LMS Virtual.Lab Noise and Vibration LMS Virtual.Lab Noise and Vibration From component to system-level noise and vibration prediction 2 LMS Virtual.Lab Noise and Vibration LMS Virtual.Lab Noise and Vibration

More information

CHAPTER 1. Introduction

CHAPTER 1. Introduction ME 475: Computer-Aided Design of Structures 1-1 CHAPTER 1 Introduction 1.1 Analysis versus Design 1.2 Basic Steps in Analysis 1.3 What is the Finite Element Method? 1.4 Geometrical Representation, Discretization

More information

Chapter 8 Visualization and Optimization

Chapter 8 Visualization and Optimization Chapter 8 Visualization and Optimization Recommended reference books: [1] Edited by R. S. Gallagher: Computer Visualization, Graphics Techniques for Scientific and Engineering Analysis by CRC, 1994 [2]

More information

Using Classical Mechanism Concepts to Motivate Modern Mechanism Analysis and Synthesis Methods

Using Classical Mechanism Concepts to Motivate Modern Mechanism Analysis and Synthesis Methods Using Classical Mechanism Concepts to Motivate Modern Mechanism Analysis and Synthesis Methods Robert LeMaster, Ph.D. 1 Abstract This paper describes a methodology by which fundamental concepts in the

More information

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis UNIT I INTRODUCTION OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis Design Implementation Testing Maintenance

More information

ECE421: Electronics for Instrumentation

ECE421: Electronics for Instrumentation ECE421: Electronics for Instrumentation Lecture #8: Introduction to FEA & ANSYS Mostafa Soliman, Ph.D. March 23 rd 2015 Mostafa Soliman, Ph.D. 1 Outline Introduction to Finite Element Analysis Introduction

More information

Concurrent Engineering and Robot Prototyping. Mohamed Dekhil, Tarek M. Sobh, Thomas C. Henderson, and Robert Mecklenburg 1 UUSC

Concurrent Engineering and Robot Prototyping. Mohamed Dekhil, Tarek M. Sobh, Thomas C. Henderson, and Robert Mecklenburg 1 UUSC Concurrent Engineering and Robot Prototyping Mohamed Dekhil, Tarek M. Sobh, Thomas C. Henderson, and Robert Mecklenburg 1 UUSC-93-023 Department of Computer Science University of Utah Salt Lake City, UT

More information

New paradigm for MEMS+IC Co-development

New paradigm for MEMS+IC Co-development New paradigm for MEMS+IC Co-development MEMS 진보된스마트세상을만듭니다. Worldwide First MEMS+IC Co-development Solution New paradigm for MEMS+IC Co-development A New Paradigm for MEMS+IC Development MEMS design

More information

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements. Contemporary Design We have been talking about design process Let s now take next steps into examining in some detail Increasing complexities of contemporary systems Demand the use of increasingly powerful

More information

AN ABSTRACTION-BASED METHODOLOGY FOR MECHANICAL CONFIGURATION DESIGN

AN ABSTRACTION-BASED METHODOLOGY FOR MECHANICAL CONFIGURATION DESIGN AN ABSTRACTION-BASED METHODOLOGY FOR MECHANICAL CONFIGURATION DESIGN by Gary Lee Snavely A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy (Mechanical

More information

Computer Simulation And Modeling

Computer Simulation And Modeling Computer Simulation And Modeling The key to increased productivity in Scientific and Engineering analysis Professor Ralph C. Huntsinger California State University, Chico USA Bialystok Technical University

More information

Recent developments in simulation, optimization and control of flexible multibody systems

Recent developments in simulation, optimization and control of flexible multibody systems Recent developments in simulation, optimization and control of flexible multibody systems Olivier Brüls Department of Aerospace and Mechanical Engineering University of Liège o.bruls@ulg.ac.be Katholieke

More information

Engineering 1000 Chapter 6: Abstraction and Modeling

Engineering 1000 Chapter 6: Abstraction and Modeling Engineering 1000 Chapter 6: Abstraction and Modeling Outline Why is abstraction useful? What are models? how are models different from theory and simulation? Examples from microelectronics Types of model

More information

Metaprogrammable Toolkit for Model-Integrated Computing

Metaprogrammable Toolkit for Model-Integrated Computing Metaprogrammable Toolkit for Model-Integrated Computing Akos Ledeczi, Miklos Maroti, Gabor Karsai and Greg Nordstrom Institute for Software Integrated Systems Vanderbilt University Abstract Model-Integrated

More information

PTC Newsletter January 14th, 2002

PTC  Newsletter January 14th, 2002 PTC Email Newsletter January 14th, 2002 PTC Product Focus: Pro/MECHANICA (Structure) Tip of the Week: Creating and using Rigid Connections Upcoming Events and Training Class Schedules PTC Product Focus:

More information

ADAPTIVE TILE CODING METHODS FOR THE GENERALIZATION OF VALUE FUNCTIONS IN THE RL STATE SPACE A THESIS SUBMITTED TO THE FACULTY OF THE GRADUATE SCHOOL

ADAPTIVE TILE CODING METHODS FOR THE GENERALIZATION OF VALUE FUNCTIONS IN THE RL STATE SPACE A THESIS SUBMITTED TO THE FACULTY OF THE GRADUATE SCHOOL ADAPTIVE TILE CODING METHODS FOR THE GENERALIZATION OF VALUE FUNCTIONS IN THE RL STATE SPACE A THESIS SUBMITTED TO THE FACULTY OF THE GRADUATE SCHOOL OF THE UNIVERSITY OF MINNESOTA BY BHARAT SIGINAM IN

More information

AMS Behavioral Modeling

AMS Behavioral Modeling CHAPTER 3 AMS Behavioral Modeling Ronald S. Vogelsong, Ph.D. Overview Analog designers have for many decades developed their design using a Bottom-Up design flow. First, they would gain the necessary understanding

More information

Software Engineering Principles

Software Engineering Principles 1 / 19 Software Engineering Principles Miaoqing Huang University of Arkansas Spring 2010 2 / 19 Outline 1 2 3 Compiler Construction 3 / 19 Outline 1 2 3 Compiler Construction Principles, Methodologies,

More information

A Top-Down Visual Approach to GUI development

A Top-Down Visual Approach to GUI development A Top-Down Visual Approach to GUI development ROSANNA CASSINO, GENNY TORTORA, MAURIZIO TUCCI, GIULIANA VITIELLO Dipartimento di Matematica e Informatica Università di Salerno Via Ponte don Melillo 84084

More information

A Hybrid Magnetic Field Solver Using a Combined Finite Element/Boundary Element Field Solver

A Hybrid Magnetic Field Solver Using a Combined Finite Element/Boundary Element Field Solver A Hybrid Magnetic Field Solver Using a Combined Finite Element/Boundary Element Field Solver Abstract - The dominant method to solve magnetic field problems is the finite element method. It has been used

More information

2.76 / Lecture 5: Large/micro scale

2.76 / Lecture 5: Large/micro scale 2.76 / 2.760 Lecture 5: Large/micro scale Constraints Micro-fabrication Micro-physics scaling Assignment Nano Micro Meso Macro Nano Nano Nano Micro Nano Meso Nano Macro Micro Nano Micro Micro Micro Meso

More information

Singularity Analysis of an Extensible Kinematic Architecture: Assur Class N, Order N 1

Singularity Analysis of an Extensible Kinematic Architecture: Assur Class N, Order N 1 David H. Myszka e-mail: dmyszka@udayton.edu Andrew P. Murray e-mail: murray@notes.udayton.edu University of Dayton, Dayton, OH 45469 James P. Schmiedeler The Ohio State University, Columbus, OH 43210 e-mail:

More information

MapleSim User's Guide

MapleSim User's Guide MapleSim User's Guide Copyright Maplesoft, a division of Waterloo Maple Inc. 2001-2009 MapleSim User's Guide Copyright Maplesoft, MapleSim, and Maple are all trademarks of Waterloo Maple Inc. Maplesoft,

More information

Introduction to VHDL. Module #5 Digilent Inc. Course

Introduction to VHDL. Module #5 Digilent Inc. Course Introduction to VHDL Module #5 Digilent Inc. Course Background Availability of CAD tools in the early 70 s Picture-based schematic tools Text-based netlist tools Schematic tools dominated CAD through mid-1990

More information

SYNTHESIS OF PLANAR MECHANISMS FOR PICK AND PLACE TASKS WITH GUIDING LOCATIONS

SYNTHESIS OF PLANAR MECHANISMS FOR PICK AND PLACE TASKS WITH GUIDING LOCATIONS Proceedings of the ASME 2013 International Design Engineering Technical Conferences and Computers and Information in Engineering Conference IDETC/CIE 2013 August 4-7, 2013, Portland, Oregon, USA DETC2013-12021

More information

Concept design of Vehicle Structure for the purpose of. computing torsional and bending stiffness

Concept design of Vehicle Structure for the purpose of. computing torsional and bending stiffness Concept design of Vehicle Structure for the purpose of computing torsional and bending stiffness M.Mohseni Kabir 1, M.Izanloo 1, A.Khalkhali* 2 1. M.Sc. Automotive Simulation and Optimal Design Research

More information

Revision: August 30, Overview

Revision: August 30, Overview Module 5: Introduction to VHDL Revision: August 30, 2007 Overview Since the first widespread use of CAD tools in the early 1970 s, circuit designers have used both picture-based schematic tools and text-based

More information

On the Synthesis of System-Level Dynamic Equations for Mechatronic Systems

On the Synthesis of System-Level Dynamic Equations for Mechatronic Systems On the Synthesis of System-Level Dynamic Equations for Mechatronic Systems Antonio Diaz-Calderon, Christiaan J. J. Paredis a, Pradeep K. Khosla Institute for Complex Engineered Systems Carnegie Mellon

More information

Using RecurDyn. Contents

Using RecurDyn. Contents Using RecurDyn Contents 1.0 Multibody Dynamics Overview... 2 2.0 Multibody Dynamics Applications... 3 3.0 What is RecurDyn and how is it different?... 4 4.0 Types of RecurDyn Analysis... 5 5.0 MBD Simulation

More information

Plant modeling: A First Step to Early Verification of Control Systems

Plant modeling: A First Step to Early Verification of Control Systems Plant modeling: A First Step to Early Verification of Control Systems Arkadiy Turevskiy, Technical Marketing Manager, The MathWorks Use simulation for early verification of your design before hardware

More information

Flight Systems are Cyber-Physical Systems

Flight Systems are Cyber-Physical Systems Flight Systems are Cyber-Physical Systems Dr. Christopher Landauer Software Systems Analysis Department The Aerospace Corporation Computer Science Division / Software Engineering Subdivision 08 November

More information

Mobile Robotics. Mathematics, Models, and Methods. HI Cambridge. Alonzo Kelly. Carnegie Mellon University UNIVERSITY PRESS

Mobile Robotics. Mathematics, Models, and Methods. HI Cambridge. Alonzo Kelly. Carnegie Mellon University UNIVERSITY PRESS Mobile Robotics Mathematics, Models, and Methods Alonzo Kelly Carnegie Mellon University HI Cambridge UNIVERSITY PRESS Contents Preface page xiii 1 Introduction 1 1.1 Applications of Mobile Robots 2 1.2

More information

College of Computing, Engineering & Construction Electrical Engineering Course Descriptions

College of Computing, Engineering & Construction Electrical Engineering Course Descriptions CATALOG 2010-2011 Undergraduate Information College of Computing, Engineering & Construction Electrical Engineering Course Descriptions EEE3308: Electronic Circuits I 3 Prerequisite: EEL 3111. This course

More information

A MULTI-ROBOT SYSTEM FOR ASSEMBLY TASKS IN AUTOMOTIVE INDUSTRY

A MULTI-ROBOT SYSTEM FOR ASSEMBLY TASKS IN AUTOMOTIVE INDUSTRY The 4th International Conference Computational Mechanics and Virtual Engineering COMEC 2011 20-22 OCTOBER 2011, Brasov, Romania A MULTI-ROBOT SYSTEM FOR ASSEMBLY TASKS IN AUTOMOTIVE INDUSTRY A. Fratu 1

More information

Kinematics Support for Design and Simulation of Mechatronic Systems

Kinematics Support for Design and Simulation of Mechatronic Systems Kinematics Support for Design and Simulation of Mechatronic Sstems Rajarishi Sinha 1 Christiaan J.J. Paredis 12 and Pradeep K. Khosla 12 1 Institute for Complex Engineered Sstems Carnegie Mellon Universit

More information

Project Name. The Eclipse Integrated Computational Environment. Jay Jay Billings, ORNL Parent Project. None selected yet.

Project Name. The Eclipse Integrated Computational Environment. Jay Jay Billings, ORNL Parent Project. None selected yet. Project Name The Eclipse Integrated Computational Environment Jay Jay Billings, ORNL 20140219 Parent Project None selected yet. Background The science and engineering community relies heavily on modeling

More information

An Easy-to-use Generic Model Configurator for Models in Multiple Tool Formats

An Easy-to-use Generic Model Configurator for Models in Multiple Tool Formats An Easy-to-use Generic Model Configurator for Models in Multiple Tool Formats Vadim Engelson 1, Peter Fritzson 1, Ulf Sellgren 2 1 Department of Computer and Information Science Linköping University SE-58183

More information

DIGITAL GENERATION OF CHINESE ICE-RAY LAT- TICE DESIGNS

DIGITAL GENERATION OF CHINESE ICE-RAY LAT- TICE DESIGNS S. Chien, S. Choo, M. A. Schnabel, W. Nakapan, M. J. Kim, S. Roudavski (eds.), Living Systems and Micro-Utopias: Towards Continuous Designing, Proceedings of the 21st International Conference of the Association

More information

Architectural Geometry as Design Knowledge

Architectural Geometry as Design Knowledge AD Structuring in Architecture Special Issue on Architectural Structural Engineering 2010 Guest Editors Prof. Dr. Arch. Rivka Oxman Prof. Dr. Arch. Robert Oxman Architectural Geometry as Design Knowledge

More information

INTELLIGENT SYSTEM OF GEARBOXES DESIGN

INTELLIGENT SYSTEM OF GEARBOXES DESIGN 6 th INTERNATIONAL MULTIDISCIPLINARY CONFERENCE INTELLIGENT SYSTEM OF GEARBOXES DESIGN Eugen Valentin, BUTILĂ, Transilvania University of Braşov, Eroilor, 29, 500036 Gheorghe Leonte, MOGAN, Transilvania

More information

Future Directions in Simulation Modeling. C. Dennis Pegden

Future Directions in Simulation Modeling. C. Dennis Pegden Future Directions in Simulation Modeling C. Dennis Pegden Outline A half century of progress. Where do we need to go from here? How do we get there? Simulation: A Compelling Technology See the future Visualize

More information

For a long time, programming languages such as FORTRAN, PASCAL, and C Were being used to describe computer programs that were

For a long time, programming languages such as FORTRAN, PASCAL, and C Were being used to describe computer programs that were CHAPTER-2 HARDWARE DESCRIPTION LANGUAGES 2.1 Overview of HDLs : For a long time, programming languages such as FORTRAN, PASCAL, and C Were being used to describe computer programs that were sequential

More information

Understanding the Open Source Development Model. » The Linux Foundation. November 2011

Understanding the Open Source Development Model. » The Linux Foundation. November 2011 » The Linux Foundation Understanding the Open Source Development Model November 2011 By Ibrahim Haddad (PhD) and Brian Warner, The Linux Foundation A White Paper By The Linux Foundation This paper presents

More information

About the Author. Acknowledgements

About the Author. Acknowledgements About the Author Dr. Paul Kurowski obtained his MSc and PhD in Applied Mechanics from Warsaw Technical University. He completed postdoctoral work at Kyoto University. Dr. Kurowski is an Assistant Professor

More information

Geometric Modeling Lecture Series. Prof. G. Wang Department of Mechanical and Industrial Engineering University of Manitoba

Geometric Modeling Lecture Series. Prof. G. Wang Department of Mechanical and Industrial Engineering University of Manitoba Geometric Modeling 25.353 Lecture Series Prof. G. Wang Department of Mechanical and Industrial Engineering University of Manitoba Introduction Geometric modeling is as important to CAD as governing equilibrium

More information

is easing the creation of new ontologies by promoting the reuse of existing ones and automating, as much as possible, the entire ontology

is easing the creation of new ontologies by promoting the reuse of existing ones and automating, as much as possible, the entire ontology Preface The idea of improving software quality through reuse is not new. After all, if software works and is needed, just reuse it. What is new and evolving is the idea of relative validation through testing

More information

Proceedings of the 4th International Modelica Conference, Hamburg, March 7-8, 2005, Gerhard Schmitz (editor)

Proceedings of the 4th International Modelica Conference, Hamburg, March 7-8, 2005, Gerhard Schmitz (editor) Proceedings of the 4th International Modelica Conference, Hamburg, March 7-8, 2005, Gerhard Schmitz (editor) A Siemers, I Nakhimovski, D Fritzson Linköping University, Sweden Meta-modelling of Mechanical

More information

COSMOS. Vehicle Suspension Analysis ---- SolidWorks Corporation. Introduction 1. Role of vehicle suspension 2. Motion analysis 2

COSMOS. Vehicle Suspension Analysis ---- SolidWorks Corporation. Introduction 1. Role of vehicle suspension 2. Motion analysis 2 ---- WHITE PAPER Vehicle Suspension Analysis CONTENTS Introduction 1 Role of vehicle suspension 2 Motion analysis 2 Motion analysis using COSMOSMotion 3 Real-life example 4-5 Exporting loads to COSMOSWorks

More information

Computer Aided Draughting and Design: Graded Unit 1

Computer Aided Draughting and Design: Graded Unit 1 Higher National Graded Unit Specification General Information for Centres This Graded Unit has been validated as part of the HNC Computer Aided Draughting and Design (CADD) award. Centres are required

More information

Object Oriented Finite Element Modeling

Object Oriented Finite Element Modeling Object Oriented Finite Element Modeling Bořek Patzák Czech Technical University Faculty of Civil Engineering Department of Structural Mechanics Thákurova 7, 166 29 Prague, Czech Republic January 2, 2018

More information

Minsoo Ryu. College of Information and Communications Hanyang University.

Minsoo Ryu. College of Information and Communications Hanyang University. Software Reuse and Component-Based Software Engineering Minsoo Ryu College of Information and Communications Hanyang University msryu@hanyang.ac.kr Software Reuse Contents Components CBSE (Component-Based

More information

Enabling Efficient Optimization / Sensitivity and Robustness Analysis for Crashworthiness, NVH, and Multi-disciplinary Concept Assessments

Enabling Efficient Optimization / Sensitivity and Robustness Analysis for Crashworthiness, NVH, and Multi-disciplinary Concept Assessments Parametric Modeling of Car Body Structures Enabling Efficient Optimization / Sensitivity and Robustness Analysis for Crashworthiness, NVH, and Multi-disciplinary Concept Assessments White Paper by Dr.

More information

Benefits and Challenges of Architecture Frameworks

Benefits and Challenges of Architecture Frameworks Benefits and Challenges of Architecture Frameworks Daniel Ota Michael Gerz {daniel.ota michael.gerz}@fkie.fraunhofer.de Fraunhofer Institute for Communication, Information Processing and Ergonomics FKIE

More information

COMPUTATIONAL DYNAMICS

COMPUTATIONAL DYNAMICS COMPUTATIONAL DYNAMICS THIRD EDITION AHMED A. SHABANA Richard and Loan Hill Professor of Engineering University of Illinois at Chicago A John Wiley and Sons, Ltd., Publication COMPUTATIONAL DYNAMICS COMPUTATIONAL

More information

Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture 01 Introduction Welcome to the course on Hardware

More information

COMPUTATIONAL CHALLENGES IN HIGH-RESOLUTION CRYO-ELECTRON MICROSCOPY. Thesis by. Peter Anthony Leong. In Partial Fulfillment of the Requirements

COMPUTATIONAL CHALLENGES IN HIGH-RESOLUTION CRYO-ELECTRON MICROSCOPY. Thesis by. Peter Anthony Leong. In Partial Fulfillment of the Requirements COMPUTATIONAL CHALLENGES IN HIGH-RESOLUTION CRYO-ELECTRON MICROSCOPY Thesis by Peter Anthony Leong In Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy California Institute

More information

AN HIERARCHICAL APPROACH TO HULL FORM DESIGN

AN HIERARCHICAL APPROACH TO HULL FORM DESIGN AN HIERARCHICAL APPROACH TO HULL FORM DESIGN Marcus Bole and B S Lee Department of Naval Architecture and Marine Engineering, Universities of Glasgow and Strathclyde, Glasgow, UK 1 ABSTRACT As ship design

More information

Using three-dimensional CURVIC contact models to predict stress concentration effects in an axisymmetric model

Using three-dimensional CURVIC contact models to predict stress concentration effects in an axisymmetric model Boundary Elements XXVII 245 Using three-dimensional CURVIC contact models to predict stress concentration effects in an axisymmetric model J. J. Rencis & S. R. Pisani Department of Mechanical Engineering,

More information

Component-Based Software Engineering TIP

Component-Based Software Engineering TIP Component-Based Software Engineering TIP X LIU, School of Computing, Napier University This chapter will present a complete picture of how to develop software systems with components and system integration.

More information

Enabling Component-Based Model Transformations with QVT. Li Dan

Enabling Component-Based Model Transformations with QVT. Li Dan Enabling Component-Based Model Transformations with QVT by Li Dan Doctor of Philosophy in Software Engineering 2013 Faculty of Science and Technology University of Macau Enabling Component-Based Model

More information

Is Power State Table Golden?

Is Power State Table Golden? Is Power State Table Golden? Harsha Vardhan #1, Ankush Bagotra #2, Neha Bajaj #3 # Synopsys India Pvt. Ltd Bangalore, India 1 dhv@synopsys.com 2 ankushb@synopsys.com 3 nehab@synopsys.com Abstract: Independent

More information

Enhanced Web Log Based Recommendation by Personalized Retrieval

Enhanced Web Log Based Recommendation by Personalized Retrieval Enhanced Web Log Based Recommendation by Personalized Retrieval Xueping Peng FACULTY OF ENGINEERING AND INFORMATION TECHNOLOGY UNIVERSITY OF TECHNOLOGY, SYDNEY A thesis submitted for the degree of Doctor

More information

Engineering designs today are frequently

Engineering designs today are frequently Basic CAD Engineering designs today are frequently constructed as mathematical solid models instead of solely as 2D drawings. A solid model is one that represents a shape as a 3D object having mass properties.

More information

Academic Reference Standards (ARS) for Electronics and Electrical Communications Engineering, B. Sc. Program

Academic Reference Standards (ARS) for Electronics and Electrical Communications Engineering, B. Sc. Program Academic Reference Standards (ARS) for Electronics and Electrical Communications Engineering, B. Sc. Program Faculty of Electronic Engineering Menoufya University MARCH 2015 1 st Edition Contents Introduction.....2

More information

SolidWorks Optimization

SolidWorks Optimization white paper SolidWorks Optimization inspiration SUMMARY Optimization is the calculation of weight, stress, cost, deflection, natural frequencies, and temperature factors, which are dependent on variables

More information

Massachusetts Institute of Technology Department of Mechanical Engineering Modeling and Simulation of Dynamic Systems

Massachusetts Institute of Technology Department of Mechanical Engineering Modeling and Simulation of Dynamic Systems INTRODUCTION GOAL OF THE SUBJECT Massachusetts Institute of Technology Department of Mechanical Engineering 2.141 Modeling and Simulation of Dynamic Systems Methods for mathematical modeling of engineering

More information

Capturing Design Expertise in Customized Software Architecture Design Environments

Capturing Design Expertise in Customized Software Architecture Design Environments Capturing Design Expertise in Customized Software Architecture Design Environments Robert T. Monroe School of Computer Science, Carnegie Mellon University, Pittsburgh, PA 15213 Abstract: Software architecture

More information

Supporting Simulations to Guide Engineering Design

Supporting Simulations to Guide Engineering Design Supporting Simulations to Guide Engineering Design Mark S. Shephard Scientific Computation Research Center, Rensselaer Polytechnic Institute, Troy, NY 12810 Mark W. Beall, Bruce E. Webster Simmetrix, Inc.,

More information

OpenFOAM: Open Platform for Complex Physics Simulations

OpenFOAM: Open Platform for Complex Physics Simulations OpenFOAM: Open Platform for Complex Physics Simulations Hrvoje Jasak h.jasak@wikki.co.uk, hrvoje.jasak@fsb.hr FSB, University of Zagreb, Croatia Wikki Ltd, United Kingdom 18th October 2007 OpenFOAM: Open

More information

Advanced Techniques for Nonlinear Contact and Drop Shock Analysis Shoubing Zhuang Autodesk Inc. Michael Smell Autodesk Inc.

Advanced Techniques for Nonlinear Contact and Drop Shock Analysis Shoubing Zhuang Autodesk Inc. Michael Smell Autodesk Inc. Advanced Techniques for Nonlinear Contact and Drop Shock Analysis Shoubing Zhuang Autodesk Inc. Michael Smell Autodesk Inc. MA7405-P Are you interested in learning how to use nonlinear contact to simulate

More information

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Hardware Design Environments Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Outline Welcome to COE 405 Digital System Design Design Domains and Levels of Abstractions Synthesis

More information

MathWorks Technology Session at GE Physical System Modeling with Simulink / Simscape

MathWorks Technology Session at GE Physical System Modeling with Simulink / Simscape SimPowerSystems SimMechanics SimHydraulics SimDriveline SimElectronics MathWorks Technology Session at GE Physical System Modeling with Simulink / Simscape Simscape MATLAB, Simulink September 13, 2012

More information

240AR059 - Geometric Fundamentals for Robot Design

240AR059 - Geometric Fundamentals for Robot Design Coordinating unit: Teaching unit: Academic year: Degree: ECTS credits: 2018 240 - ETSEIB - Barcelona School of Industrial Engineering 707 - ESAII - Department of Automatic Control MASTER'S DEGREE IN AUTOMATIC

More information

3D MEMS Design Method via SolidWorks

3D MEMS Design Method via SolidWorks Proceedings of the 1st IEEE International Conference on Nano/Micro Engineered and Molecular Systems January 18-21, 2006, Zhuhai, China 3D MEMS Design Method via SolidWorks Changfti Zhang', Zhuangde Jiang

More information

WEEKS 1-2 MECHANISMS

WEEKS 1-2 MECHANISMS References WEEKS 1-2 MECHANISMS (METU, Department of Mechanical Engineering) Text Book: Mechanisms Web Page: http://www.me.metu.edu.tr/people/eres/me301/in dex.ht Analitik Çözümlü Örneklerle Mekanizma

More information

Overview of Digital Design with Verilog HDL 1

Overview of Digital Design with Verilog HDL 1 Overview of Digital Design with Verilog HDL 1 1.1 Evolution of Computer-Aided Digital Design Digital circuit design has evolved rapidly over the last 25 years. The earliest digital circuits were designed

More information

The University of Nottingham, Ningbo, China, 199 Taikang East Road, Ningbo, , China

The University of Nottingham, Ningbo, China, 199 Taikang East Road, Ningbo, , China Increasing the road safety of e-bike: Design of protecting shell based on stability criteria during severe road accidents Lele ZHANG 1,a, Alexander KONYUKHOV 2,b,*, Edwin MOK 1,c, Hui Leng CHOO 1,d 1 The

More information