The present application relates to microelectromechanical systems (MEMS), and particularly to producing designs or layout data used in the fabrication of such systems.
MEMS are commonly fabricated on silicon (Si) or silicon-on-insulator (SOI) wafers, much as standard integrated circuits are. However, MEMS devices include moving parts on the wafers as well as electrical components. Examples of MEMS devices include gyroscopes, accelerometers, and microphones. MEMS devices are commonly designed and simulated, and then laid out. The layout process provides data used by a wafer fab to produce the devices. MEMS devices are commonly very time-intensive to design and lay out. There is, therefore, a need for ways of accelerating or otherwise improving the design and layout processes of MEMS devices. US20070194225 by Zorn describes using genetic algorithms to evolve circuits used with MEMS components, but not the MEMS themselves. U.S. Pat. No. 6,360,191 to Koza et al. describes using genetic operations to evolve circuits, but does not consider MEMS devices. US20060225003 by Agogino et al. generates designs and requests human input.
Reference is made to the following:
Reference is also made to:
Reference is also made to:
The following documents are incorporated by reference herein:
According to an aspect of the invention, there is provided a method for producing layout data corresponding to a microelectromechanical system, the method comprising automatically performing the following steps using a controller:
According to another aspect of the invention, there is provided a method for producing layout data corresponding to a reference microdevice, the method comprising performing the following steps using a controller:
According to another aspect of the invention, there is provided a non-transitory tangible computer-readable medium having computer-executable instructions stored thereon for processing data of a three-dimensional model of a reference microdevice, the instructions comprising:
Various aspects advantageously permit determining effective structures for desired microelectromechanical systems (MEMS). Various aspects advantageously reduce the time required to prepare a MEMS design for layout, and reduce the probability of introducing errors in the translation from design to layout.
This brief description of the invention is intended only to provide a brief overview of subject matter disclosed herein according to one or more illustrative embodiments, and does not serve as a guide to interpreting the claims or to define or limit the scope of the invention, which is defined only by the appended claims. This brief description is provided to introduce an illustrative selection of concepts in a simplified form that are further described below in the detailed description. This brief description is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the background.
The above and other objects, features, and advantages of the present invention will become more apparent when taken in conjunction with the following description and drawings wherein identical reference numerals have been used, where possible, to designate identical features that are common to the figures, and wherein:
The attached drawings are for purposes of illustration and are not necessarily to scale.
Throughout this description, some aspects are described in terms that would ordinarily be implemented as software programs. Those skilled in the art will readily recognize that the equivalent of such software can also be constructed in hardware (hard-wired or programmable), firmware, or micro-code. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, or micro-code), or an embodiment combining software and hardware aspects. Software, hardware, and combinations can all generally be referred to herein as a “service,” “circuit,” “circuitry,” “module,” or “system.” Various aspects can be embodied as systems, methods, or computer program products. Because data manipulation algorithms and systems are well known, the present description is directed in particular to algorithms and systems forming part of, or cooperating more directly with, systems and methods described herein. Other aspects of such algorithms and systems, and hardware or software for producing and otherwise processing signals or data involved therewith, not specifically shown or described herein, are selected from such systems, algorithms, components, and elements known in the art. Given the systems and methods as described herein, software not specifically shown, suggested, or described herein that is useful for implementation of any aspect is conventional and within the ordinary skill in such arts.
The “e” form of scientific notation is used herein. For example:
42e5≡42e+005≡4.2e6≡4.2×106≡4,200,000.
Various aspects relate to the production of microelectromechanical systems using genetic programming. As the functional requirements of MEMS devices become more complex, advanced optimization techniques become more useful in determining effective parameters, or even producing new components to satisfy a desired output. Various aspects provide these advantages using genetic programming (GP), a class of artificial-intelligence mathematical optimization techniques for determining parameters corresponding to a more preferred output.
The applications of genetic programming to MEMS have been mostly limited to the task of optimizing parameters and components for existing devices. In addition to these applications, GP can also be utilized to produce original MEMS devices. MEMS devices can also be derived to match the shape and structure of existing devices based solely on the device's performance characteristics. In various aspects, an electro-thermal actuator or a chevron actuator can be re-derived. In other aspects, structures for devices other than thermal actuators, and other types of electromechanical systems, can be defined using genetic programming.
Since the discovery of genetic programming, problems associated with optimization have been easily resolved through the use of computer programming Genetic programming can be applied to almost any field and for devices of any scale, for example, the nanoscale, microscale, or macroscale. The capability of a genetic program to re-derive MEMS components is an important step towards advanced functionality for MEMS devices.
Genetic programming has been utilized on a wide variety of applications within MEMS. Li and Antonsson have optimized the MEMS fabrication process by using genetic algorithms to modify the design of mask layouts [5]. MOGAs (Multi Objective Genetic Algorithms) along with SUGAR have been used to design the arms of a MEMS resonator [1, 2, 6, 7]. Bond graphs along with GP have been utilized to optimize RF MEMS devices [4]. Koza has worked with GP and SPICE to re-derive existing circuits, and demonstrated that genetic programs can produce circuits on their own [3].
Genetic programs determine a desired output through an algorithm based on Darwin's Theory of Evolution from a randomly generated initial population (step 105,
The natural selection process is represented as a feedback structure in which the best individuals in the population are determined based on a user specified fitness rating. A genetic program can be a single-objective genetic algorithm (SOGA) or a multi-objective genetic algorithm (MOGA). The fitness rating of a SOGA based GP is based solely on how close an individual comes to the desired output. For most MOGA based GPs, the equation of the fitness rating is typically constructed by a ranking system applied to each desired criterion [1, 7].
The crossover process can viewed as a reproduction process. When a child is formed, it takes a random half of genetic data from the father, and another random half from the mother's genes. A crossover occurs when one or multiple genotypes of two parents are exchanged to create a child or children [1].
A mutation can be represented as a randomly generated change to a genome or a specific genotype within a genome. When implementing a genetic program, a variety of ranges can be used for the mutation rate, e.g., as high as 70% or 1% [1, 6].
A GP includes a model of the genome. Since the goal of the genetic program according to various aspects is to re-derive an electro thermal actuator or a chevron actuator from an initial set of randomly generated structures, each genome represents an individual structure completely. In various aspects, each structure or device is composed entirely of a set of links, in which each link is attached to the end of the previous link. Each link's length, width, and angle, are included as genotypes, as well as the total number of links. Several other GPs have also modeled genomes using length, width, and angle as genotypes [1, 2, 5, 6, 7]. The electro thermal actuator and chevron actuator operate through a change in temperature, so a thermal deflection analysis is conducted on each structure to verify similar operation (discussed below). Due to this, each link's temperature is included as a genotype. The fitness rating and the number of the generation structure was created are also included as information within the genotype. A sample genome structure can be seen in Table 1:
In one simulated example, several constraints were applied to each structure. The material in every structure was modeled as poly-silicon. All models were created to be planar within the x-y plane. Every link angle was constrained to be orthogonal. The number of total links in each device could vary from two to ten. Each structure was constrained to an area of 200 microns by 200 microns. In addition, none of the links could overlap, and each of the links had to maintain a 2 micron gap between itself and any other link. All links created within the chevron actuator GP were selected to have a 2 micron width, set to 600° C., and contain a varying length between 3 and 100 microns. When modeling the electro thermal actuator, each link had either a 2 micron or 20 micron width, with a varying link length between 12 and 1000 microns. The wide links of 20 μm length were set to a temperature of 300° C., and the thin links were set at 600° C. The temperature difference was used between the two links to ensure that the thermo-actuator model could simulate deflection realistically.
Each genome and corresponding structure were modeled and simulated through MATLAB and version 2.1 of SUGAR. Similar to SPICE's simulation and analysis of electronic circuits, SUGAR performs similar analysis on mechanical structures. SUGAR returns a vector of containing the linear deflections in the x, y, and z axis, and the rotation deflections about the x, y, and z axis at each node/link output. SUGAR has been used in previous GPs for MEMS optimization [1, 2, 6, 7]. MATLAB was used to generate each of each of the genomes, while in the process, verified that each structure followed the necessary boundary and overlap constraints. The overlap constraints were met through the use of an area placeholder within the structure generation program. This improves upon a previous design that avoided similar issues of link overlap by selecting all the links oriented outward [1]. Unlike the legs in that comparative design, the links' angles in this inventive simulation were able to point back inward if selected to do so. Each genome was then used to model each structure in SUGAR, and a thermal analysis and a corresponding deflection analysis were performed (step 115,
Two sets of genetic programs were created to model the performance of the electro thermal actuator and the chevron actuator, respectively. The general process of each GP can be viewed within the flowchart in
The natural selection process is the most influential factor in developing a desired outcome. MOGAs were used for both cases, and a rank based fitness equation was applied to each structure (step 120,
Mutations and crossovers were applied within the same step (step 130,
The chevron actuator and thermo electric were successfully re-derived through the use of genetic programs. The GPs will not always produce the same result every time; however, they will produce something a structure that has the same displacement characteristics as the electro-thermal actuator or the chevron actuator.
Both programs converged to a common solution after a certain number of intervals. The GP re-derived the electro thermal actuator in the 29th generation. The simulated reconstructed electro thermal actuator can be seen in
The chevron actuator was tested with both symmetric constraints on and off. The asymmetric chevron actuator was re-derived within the 18th generation without constraints, and in the 9th generation with symmetric constraints. Since the actual chevron resonator is not orthogonal, the program (with orthogonally-constrained links, as discussed above) could not mimic the device exactly, however both solutions perform similarly with respect to change in deflection. The solutions for both cases can be seen in
Using genetic programming techniques, not only is it possible to derive new devices, the GP itself can re-derive already-existing devices from evolving a large group of randomly shaped devices. Unlike results obtained by previous efforts, the MEMS obtained through this method are able to actuate, have been shown to be useful, and are amenable to conventional fabrication [1, 2, 6, 7].
In various aspects, in step 101, reference actuator performance characteristics are received. In step 140, using the controller, the layout data are produced corresponding to the geometric properties in the one of the structure genotypes.
In step 2710, reference actuator performance characteristics are received (e.g., the desired deflection for the actuator). Step 2720 is next.
In step 2720, a first population of structure genotypes is automatically produced. Each structure genotype includes geometric and thermal properties of each of a plurality of links in the thermally-operated actuator. Each of the structure genotypes can completely represent a structure of an actuator. The geometric and thermal properties selected are randomly, e.g., pseudo-randomly. Step 2730 is next.
The geometric properties can include length, width, and angle. The thermal properties can include link temperature. In various aspects, structure genotype further includes material properties of each of a plurality of links. The material properties can include one or more properties selected from the group including temperature, Young's modulus, electrical conductivity, thermal conductivity, thermal expansion coefficient, capacitance, piezoelectric constant, density, viscosity, heat capacity, inductance, permittivity, permeability, residual stress, and strain.
In step 2730, respective actuator performance characteristics of each of the structure genotypes in the first population are simulated. This is as discussed above; see, e.g., simulation results 420, 520, 620, 720 in
In step 2740, a respective fitness rating of each of the structure genotypes in the first population is determined by comparing the simulated actuator performance characteristics to the reference actuator performance characteristics. The respective fitness rating can be a ranking. Decision step 2750 is next.
In decision step 2750, it is determined whether one of the structure genotypes satisfies selected termination criteria. If so, step 2770 is next. If not, step 2760 is next.
In step 2760, a second population of structure genotypes is produced using the first population and the determined fitness ratings. This can include mutating first selected one(s) of the first population and performing crossovers among second selected one(s) of the first population.
Step 2760 is followed by step 2730. In this way, the simulating, determining-fitness-rating, and producing steps are iterated using the second population in place of the first population until one of the structure genotypes satisfies the selected termination criteria. For example, iteration can occur for a selected number of iterations (e.g., decision step 110,
In step 2770, the layout data corresponding to the geometric properties in the one of the structure genotypes are automatically produced using the controller.
Various aspects relate to an online CAD tool for the parametric exploration of ready-made MEMS. An online micro electromechanical systems (MEMS) design tool can be executed on a programmed computer using a program called Sugar2GDSII for simulating and laying out parameterized arrays of a reference microdevice. The tool can be integrated in the MEMS simulation tool (program) called SugarCube, which can be executed on the programmed computer. The reference device can be selected from a library of ready-made systems, or new devices can be imported from the Sugar tool. Various aspects of SugarCube tool facilitate design and exploration by novice users. Various geometric, material, and drive parameters can be swept over design-rule ranges by using sliders. One- or two-dimensional layout arrays can be grounded to common bonding pads through automatically generated tracers and pads. Automatic features such as etch holes or multi-layer bonding pads can be produced. The layout output can be in GDS-II format. Design rules for, e.g., the MEMSCAP, S.A. PolyMUMPs or SOIMUMPs multi-layer MEMS fabrication processes can be defined. Static, model, or transient analysis of the array of devices by SugarCube can be performed, resulting in a value, 2D curve, or 3D plot manifold. Such automated features can reduce the time that many designers might otherwise spend on manually laying out parameterized arrays of MEMS. Time can be reduced from days to minutes in some aspects.
In a MEMS design cycle, layout generation is an important and potentially time-consuming stage. Mistakes can be costly in terms of failed fabrication runs and lengthy turnaround times. Especially when the layout has multiple features like etch holes, tracing lines, multilayer bonding pads, or other features, the probability of making a mistake cannot be overlooked. Various prior schemes use layout software tools (e.g., L-EDIT, or CADENCE) that can automatically generate features that might be needed in an IC layout. Conventionally, MEMS designers used these software tools from the electronics industry to generate their layouts. Although these tools provide many features, they are not specific to the needs of MEMS designers, making the layout process tedious and time consuming. With the evolution of the MEMS field, specialty-CAD-for-MEMS tools have also evolved very quickly. Various schemes use tools like COVENTORWARE, INTELLISENSE, softMEMS, or NODAS, which can automatically generate layout from MEMS model. But these software tools have limitations in that they cannot readily automate the generation of parameterized arrays of devices, connecting tracers, ground planes, or other features. Although some software tools can be extended to generate such features, such tools have advanced operating instructions, requiring users to develop complicated scripting code.
Various aspects described herein address the above-identified needs, e.g., for MEMS novices. These capabilities can be embodied in a tool, e.g., called Sugar2GDSII. Various aspects automatically produce a layout for a MEMS device or an array of devices from a Sugar netlist. The layout output file can be in GDS-II format and can adhere to a set of design rules required for a fabrication process (e.g., SOIMUMPS). Features such as etch holes, multilayer bonding pads, or tracers can be automatically added to the layout, e.g., upon the user's request. Various aspects are embodied in tools that can be accessed through a web browser, e.g., tools hosted at the nanoHUB such as SugarCube. In various aspects (e.g., using SugarCube), the user first loads a reference MEMS device from a library of systems, then modifies its parameters using design-rule limited sliders, i.e., input parameter adjustment tools. Based on the desired parameters to sweep, the new design modifications may be either simulated for performance exploration or laid out for fabrication, e.g., with a single button click.
A GDSII file is a standard stream format description of 2D layout data. It contains hierarchy of structures, with each structure containing the information of layout elements in the form of records. The layout can have different layers with the layer number of each element specified as parameter. As GDSII file is in stream format (binary), it is platform independent. When opened in a GDSII viewer, the viewer converts this stream format into local platform datatype. A text representation of GDSII format is also available, called ASCII format. This format is easily readable and helps the designer to understand the layout and make any modification, if necessary. Conversion from ASCII text format to stream format is done using standard binary to stream conversion process. Information in a GDSII file is stored as sequential set of records. These records store the details such as layer number, x-y coordinates of each polygon described in the layout, or datatype of coordinates. Various aspects described in this paper convert the nodal coordinates of Sugar elements into x-y coordinates of GDSII polygons and stores them in the record format.
Programs according to various aspects (e.g., Sugar2GDSII) generate the x-y coordinates of all the vertices of every element in the a Sugar netlist and inserts them in the GDSII file in the form of a record with information including, e.g., layer number, data type of x-y coordinates, or x-y coordinates themselves. See
Automatic features that can be generated by Sugar2GDSII are now discussed. Features discussed below can be designed to conform to standard design rules of a process like PolyMUMPs or SOIMUMPs.
Sugar2GDSII can automatically generate etch holes in a given layout. These etch holes can be useful for proper release of an oxide layer underneath a device layer. Generally, drawing etch holes in a layout is a time consuming process. Any small error could lead in device that is not released. Sugar2GDSII's automatic etch hole generator can address these problems. To achieve this, those structures that need to be released are identified, e.g., by a user specification. This identification can be specified in the element parameter as release=1 in the netlist. Sugar2GDSII identifies these elements and automatically decides if the etch holes are required or not. E.g., in case of SOIMUMPS, if the dimensions of a structure to be released are less than a specific tolerance, no etch holes are required. Such structures will be released when exposed to an etchant. This type of information is specified in a process file that can be input to Sugar2GDSII or other tools embodying various aspects described herein. If Sugar2GDSII determines that etch holes might be required, then they can be automatically generated.
Various aspects described herein, e.g., Sugar2GDSII, can automatically generate multilayer bonding pads (or anchors) and common-ground pads that are often used in multilayer fabrication processes like PolyMUMPs. Such multi-layered bonding pads are able to connect to any other structural layer in the process. They are topped by a metal layer for wire bonding or probing. Design rule layer size specifications for bonding pads are specified in the Sugar process file.
Referring to
Various aspects, e.g., Sugar2GDSII, can readily generate parameterized layout arrays of MEMS. Designers often layout an array of devices with slightly varying dimensions. This is often done to explore the dependence of particular design parameters on performance, or determine, e.g., the limits of linearity or limits of fabrication. With conventional CAD, changing the dimensions of complicated device geometries can be difficult. Prior schemes can require the designer to recreate large portions of the design configuration, which can be tedious and error prone. If a large, varying array of devices is configured, several hours to days may be spent on designing, debugging, and re-designing before the array is ready for layout submission. Various aspects described herein permit the user to reduce this time to seconds or minutes. In addition, tools according to various aspects can simulate the entire array and plot the performance manifold, or optimize the design for to achieve a particular performance metric such as resonance frequency.
In an example, to create a layout, the user loads a reference device and selects which parameters to modify along the rows and columns of the array, and the step size of parameter change. The parameters can be, e.g., the number of comb fingers or the gap between the fingers, the orientation of the device or the size of the proof mass. If a variation of the design is not already in the library, a new device may be configured using Sugar and easily imported into SugarCube. Upon clicking the Layout button, Sugar2GDSII automatically generates an array of devices with required bonding pads, etch holes, and tracers that connect to a common ground.
In
Referring to
The lower left window (
Referring to
A software tool according to various aspects is executed on a programmed computer and can be used locally or online for both simulating and laying out readymade MEMS. The tool can be amenable to use by novices and may reduce the time that many expert MEMS designers usually spend on design. Some of the tedious and time-consuming aspects of layout can be replaced by automated processes in the tool according to various aspects. These procedures can include new advances such as coupled parameterized simulation and layout arrays, and automatically-generated common ground tracers. Other provided procedures can include automatically-generated etch holes, anchor and bonding pad layers, and backside etch layers.
In step 2810, a three-dimensional model of the reference microdevice is received. The three-dimensional model including respective coordinates of a plurality of nodes and including one or more parameter(s). The parameters are to be swept; there can also be un-swept parameters. Step 2820 is next.
In step 2820, a design-rule set is received. The design-rule set includes respective constraint(s) on the parameter(s). Step 2830 is next.
In step 2830, respective parameter range(s) for the parameter(s) are received. Each parameter range includes a plurality of values within the constraint(s) corresponding to the respective one of the parameter(s). For example, one of the parameter ranges can include a low and a high point for the given parameter, both the low and the high point within the constraint for that parameter. See, e.g.,
In step 2840, using the controller, the layout data are automatically produced using the three-dimensional model and the parameter range(s). The layout data includes two-dimensional data for each of one or more layer(s). The layout data are produced by determining a plurality of combinations, each including one of the values in each of the parameter range(s), and, for each of the plurality of combinations, adjusting at least some of the coordinates in the three-dimensional model according to the values in that combination and converting the adjusted coordinates in the three-dimensional model to x-y coordinates and layer numbers. In this way, the layout data includes data for a plurality of microdevices. An example of layout data is shown in
In various aspects, producing-layout-data step 2840 includes step 2842. In step 2842, the x-y coordinates for each combination are adjusted. They can be adjusted so that the layout data specifies that the plurality of microdevices be positioned closely in a nonrectangular array. Alternatively, they can be adjusted so that the layout data specifies that the plurality of microdevices be positioned with bond pads aligned vertically and horizontally. The former occupies less of the surface of a wafer, but the latter may be easier to test with some probe stations.
In various aspects, modifications are performed to the layout. In step 2850, an indication is received of whether the layout requires a particular modification. Next is decision step 2852, which determines whether the indication indicated that a modification was required. If so, next is step 2854, in which the layout data are modified. Examples of modifications are discussed next. In these aspects, at least some of the coordinates in the three-dimensional model correspond to a structure.
In an example, step 2850 receives an indication of whether the structure needs to be released. Decision step 2852 first determines whether the structure is indicated as needing to be released. If so, decision step 2852 then automatically determines whether the structure requires etch holes using the design-rule set. If so, step 2854 is next. In step 2854, since the structure does require etch holes (this step would not be executed if not), the produced layout data are modified according to the design-rule set to include etch holes for the structure.
In another example, step 2850 receives an indication of whether bonding pads are required. If bonding pads are indicated as being required (step 2852), step 2854 includes modifying the produced layout data according to the design-rule set to add bond pads associated with coordinates specified in the three-dimensional model (e.g., ends of the crab legs in
In another example, step 2850 receives an indication of whether common voltage tracers are required. If so (step 2852), the produced layout data are modified (step 2854) according to the design-rule set to add common voltage tracers associated with a common pad specified in the three-dimensional model (e.g., the tracer in
In various aspects, step 2830 of receiving the respective parameter range(s) for the parameter(s) includes steps 2832 and 2834.
In step 2832, a plurality of user-interface controls are presented to a user via a display. Each user-interface control corresponds to one of the parameters and is operative to permit the user to specify values within the corresponding constraint. For example, the user-interface controls can be sliders or direct-entry text boxes. The plurality of user-interface controls can include at least two controls for each parameter so that the controls for each parameter permit the user to specify the parameter range for that parameter. Step 2834 is next.
In step 2834, data of the parameter range(s) are received from the user-interface controls via a user-input device. The device can be, e.g., a mouse or keyboard, or another peripheral described above with reference to subsystem 2620 or 2630 (both
In various aspects, a non-transitory tangible computer-readable medium has computer-executable instructions stored thereon for processing data of a three-dimensional model of a reference microdevice. The instructions include instructions to automatically receive the three-dimensional model of the reference microdevice, the three-dimensional model including respective coordinates of a plurality of nodes and including one or more parameter(s). The instructions also include instructions to receive a design-rule set including respective constraint(s) on the parameter(s). The instructions also include instructions to receive respective parameter range(s) for the parameter(s), each parameter range including a plurality of values within the constraint(s) corresponding to the respective one of the parameter(s). The instructions also include instructions to produce the layout data using the three-dimensional model and the parameter range(s), wherein the layout data includes two-dimensional data for each of one or more layer(s) and the instructions to produce the layout data include instructions to determine a plurality of combinations, each including one of the values in each of the parameter range(s), and instructions to, for each of the plurality of combinations, adjust at least some of the coordinates in the three-dimensional model according to the values in that combination and to convert the adjusted coordinates in the three-dimensional model to x-y coordinates and layer numbers, so that the layout data includes data for a plurality of microdevices.
In various aspects, at least some of the coordinates in the three-dimensional model correspond to a structure. The instructions further include instructions to receive an indication of whether the structure needs to be released. The instructions also include instructions to, using the design-rule set, automatically determine whether the structure requires etch holes if the structure is indicated as needing to be released. The instructions also include instructions to modify the produced layout data according to the design-rule set if the structure does require etch holes to include etch holes for the structure.
Various aspects relate to a method for gyroscopic analysis and optimization of microelectromechanical systems. A tool according to various aspects, e.g., an online design tool called GyroCube, can simplify the parametric exploration of ready-made Micro Electro Mechanical Systems (MEMS) gyroscopes. Tools according to various aspects can perform gyroscopic analysis on a variety of MEMS structures, e.g., those imported from Sugar. In addition to Sugar's existing MEMS solvers (e.g., frequency response, modal analysis, and transient analysis), various aspects add gyroscope-specific analyses (e.g., quality factor, normalized sensitivity, natural frequency, stiffness, damping ratio). Various aspects also include geometry optimization given a user's performance specification. The results of designs processed according to various aspects have been verified using finite element analysis. Various aspects of GyroCube advantageously provide improved ease of use compared to prior schemes.
Gyroscopes have applications in areas such as inertial navigation, automotive safety, and stability control systems, platform stabilization, including picture stabilization in camcorders and cameras, and robotics [B1]-[B2]. With the advent of Micro Electrical Mechanical System (MEMS), gyroscopes can now be produced cheaply and in very small packages in the micro domain with low power consumption [B3]-[B4]. Due to these advantages, MEMS gyroscopes have attracted a lot of attention in the past decade, while adequate designs usually require expertise in physics of gyroscopes, computer aided design, and processing technology. In particular, the design process is time consuming due to the lack of efficient design automation tools.
Although the applications of MEMS gyroscope may differ greatly, requiring various levels of accuracy, precision or robustness, the desired performance characteristics may be achieved by modifying the parameters of the structure simply. Thus, there is a growing need for engineers to easily and quickly predict the performance characteristics of MEMS gyroscope.
Various aspects of GyroCube address these needs. GyroCube can make it easier and faster to evaluate the performance of ready-designed gyroscopes, and can make the design process more accessible. Factors like resonant frequency, quality factor, or sensitivity can be shown directly, which can help users (e.g., engineers) to modify their design. System optimization permits the user to input a particular performance to output a suggested parameter change.
Below are described the GyroCube framework; factors in gyroscope design; steady state analysis, optimization analysis, and layout respectively; various simulated examples; and comparisons of GyroCube's simulated results with finite element analysis.
Sugar is a system-level design, modeling, and simulation tool for compact models of MEMS [B5]-[B6]. SugarCube is a novice-friendly online CAD tool for exploring the design space of parameterized MEMS [B7].
Leveraging off of SugarCube, in various aspects, GyroCube adds gyroscope-specific analyses such as quality factor analysis, normalized sensitivity analysis, or stiffness analysis.
Referring to
Referring to
A vibratory rate gyroscope includes a proof mass 1810 which is free to oscillate in tow principle orthogonal directions: drive (X) and sense (Y). Variables kx and ky are respective stiffnesses for the x-axis and the y-axis. Variables cx, cy are respective damping factors for the x-axis and the y-axis, and m is the proof mass.
A system model for the drive axis can be written as:
where x is the displacement, mx is the proof mass, kx is the stiffness, cx is the damping factor, and the undamped natural frequency and damping ratio is defined as follows:
System (1) can be regarded as a resonator. When the resonator is excited with a harmonic force Fx=F0 sin ωdt at frequency ωd, the steady state component of the response is also harmonic, in the form of
When the drive frequency ωd equals the natural frequency ωx, the resonant amplitude and its corresponding phase are
The quality factor is defined as
The importance of the quality factor is that it directly scales the amplitude at resonance. The oscillation amplitude at resonance can be found as
Using similar derivation, the resonant amplitude for the sense axis can be obtained as
where Qy is the quality factor for sense axis, Ω is the rotation rate to be measured, ωy is the resonant frequency for y-axis, and here it is assumed that the same mass is used for drive axis and sense axis.
Another important factor is the displacement sensitivity, which is defined as [per B9]:
Equation (10) shows the relationship between the maximum displacement in sense mode and the rotation rate to be measured. Improving this sensitivity can help greatly to improve system performance. The normalized displacement sensitivity is defined as [per B9]:
Equations (8)-(10) show that the sensitivity of the gyroscope to the angular rate input Ω can be improved by: (1) increasing quality factors Qx and Qy; (2) increasing the drive-mode oscillation amplitude x0; or (3) increasing the proof mass that generates the Coriolis force.
To determine the frequency response of a gyroscope, its system model can be written as:
where M, D, and K are the multidisciplinary mass, damping, and stiffness matrices of the system, respectively, and F is force. Examples of systems with similar models are given in application PCT/US2009/003960 by Fallon, published as WO 2010/005546, in US20050171742 by Bennighof, and in US20110314910 by Chen et al., each of which is incorporated herein by reference. Such system models can be used with any system whose mathematical form matches the model in (12), as is well known in the physical-system-modeling art. This second order system can be written in the following multi-input multi-output system (MIMO) form
Then, from the solution of (13), frequency response and steady-state response can be obtained [B10].
Although analysts can change modeling parameters to examine their sensitivities, this process can be tedious. Also, it is sometimes not obvious which parameter(s) should be changed, and by how much each parameter should be changed, to achieve a specific performance. With various aspects, e.g., GyroCube, users can specify performance and receive the suggested parameter value(s) with few button clicks.
With the desired system performance and the range of the parameters, an objective function can be written as
(P,C)=Xdesired−Xsimulated(P,C) (14)
where Xdesired is the desired performance, Xsimulated(P, C) is the simulated performance. {tilde over (X)}(P,C) is the difference between the desired and simulated performances, P is a vector of the parameters chosen for optimization, and C is vector of the remaining parameters to be held constant in the parameter list. This comparison can be done iteratively using MATLAB's built-in function called fminsearch. Function fminsearch can find the minimum of a scalar function of several variables, starting at an initial estimate. In various aspects the objective function is (14), and for each iteration, the algorithm generates a new set of parameter values P, until (14) reaches a particular tolerance. Once optimized, P is the desired solution for specific performance.
The task of manually creating MEMS gyroscope layout array can be tedious, time consuming, and prone to human errors. In some prior schemes, the simulation tool and layout tool are separate and do not communicate with each other. In such cases the designer is required, according to prior schemes, recreate the geometry in the layout tool after simulation. The designer might also have to include etch holes, dimples, anchor layer connects, grounding planes, electrical tracers, and try to create arrays of geometric configurations that vary in one or more parameters. In various aspects, GyroCube can advantageously automatically check for design rules, place etching holes, supply connecting layers for anchors and bonding pads topped with metal, or supply common ground tracers between structures, e.g., as discussed above. In various aspects, GyroCube can provide a GDS-II layout file of arrayed designs upon user request, e.g., upon a click of a button in GyroCube.
In GyroCube, according to various embodiments, for this structure, the electric static force in y direction from the comb drive is
where c is the permittivity of the medium, N is the number of comb fingers, h is the layer thickness, g is the gap between comb fingers, and V is the applied voltage. Based on this, the displacement in y direction calculated by GyroCube is 1.943×10−10 m. Applying the same force in the finite-element analysis (FEA) model (
Tools and methods according to various aspects can operate on a variety of MEMS netlists to analyze each for its gyroscopic properties. For example, consider a cantilever. As shown in
The self-calibratable MEMS gyroscope includes 2,000 comb fingers and orthogonal movable-guided flexures. These flexures allow the proof mass to translate with two degrees of freedom, and resist rotation. In addition, a set of fixed guided flexures allows each comb drive only one degree of freedom. The magnitude and phase of the x-coordinate of node C is swept from 10 k . . . 1M rad/sec. This design is modified from Shkel and Trusov [B8], where gap-stops have been included for self-calibration of stiffness, mass, displacement.
Continuing with
Automated layout in GyroCube is an efficient function for generating GDS-II layout arrays for fabrication.
GyroCube can produce a layout in GDS-II format. In addition to plotting a performance manifold due to sweeping flexure length and angle parameters, the user can push the Layout button to cause GyroCube to produce a corresponding layout array (2520) that is ready for fabrication. Flexure length is swept along the vertical array axis and flexure angle is swept along the horizontal array axis. One can also see ground planes, tracers, bond pads, and anchor layer connects [B7], e.g., as discussed above with reference to
Various aspects use SugarCube to host a gyro-specific design automation tool called GyroCube. The tool can advantageously help users to rapidly explore design spaces and optimize the performance of MEMS gyroscopes. GyroCube's versatility allows it to be used to perform gyroscope analysis on various MEMS structures imported from Sugar.
In addition to Sugar's pre-existing MEMS solvers, such as frequency response, modal analysis, and transient analysis, additional gyroscope-specific analyses can be performed, such as quality factor analysis, normalized sensitivity analysis, resonant frequency analysis, stiffness, or damping ratio. Other functions such as geometry optimization given desired performance and the generation of layout arrays can be performed. A simulation was performed to verify GyroCube's compact modeling results using finite element analysis with a relative error less than 3% in the example tested.
The data processing system 2610 includes one or more data processor(s) that implement processes of various aspects described herein. A “data processor” is a device for automatically operating on data and can include a central processing unit (CPU), a desktop computer, a laptop computer, a mainframe computer, a personal digital assistant, a digital camera, a cellular phone, a smartphone, or any other device for processing data, managing data, or handling data, whether implemented with electrical, magnetic, optical, biological components, or otherwise.
The phrase “communicatively connected” includes any type of connection, wired or wireless, between devices, data processors, or programs in which data can be communicated. Subsystems such as peripheral system 2620, user interface system 2630, and data storage system 2640 are shown separately from the data processing system 2610 but can be stored completely or partially within the data processing system 2610.
The data storage system 2640 includes or is communicatively connected with one or more tangible non-transitory computer-readable storage medium(s) configured to store information, including the information needed to execute processes according to various aspects. A “tangible non-transitory computer-readable storage medium” as used herein refers to any non-transitory device or article of manufacture that participates in storing instructions which may be provided to a processor, e.g., data processing system 2610, for execution. Such a non-transitory medium can be non-volatile or volatile. Examples of non-volatile media include floppy disks, flexible disks, or other portable computer diskettes, hard disks, magnetic tape or other magnetic media, Compact Discs and compact-disc read-only memory (CD-ROM), DVDs, BLU-RAY disks, HD-DVD disks, other optical storage media, Flash memories, read-only memories (ROM), and erasable programmable read-only memories (EPROM or EEPROM). Examples of volatile media include dynamic memory, such as registers and random access memories (RAM). Storage media can store data electronically, magnetically, optically, chemically, mechanically, or otherwise, and can include electronic, magnetic, optical, electromagnetic, infrared, or semiconductor components.
Aspects of the present invention can take the form of a computer program product embodied in one or more tangible non-transitory computer readable medium(s) having computer readable program code embodied thereon. Such medium(s) can be manufactured as is conventional for such articles, e.g., by pressing a CD-ROM. The program embodied in the medium(s) includes computer program instructions that can direct data processing system 2610 to perform a particular series of operational steps when loaded, thereby implementing functions or acts specified herein.
In an example, data storage system 2640 includes code memory 2641, e.g., a random-access memory, and disk 2643, e.g., a tangible computer-readable rotational storage device such as a hard drive. Computer program instructions are read into code memory 2641 from disk 2643, or a wireless, wired, optical fiber, or other connection. Data processing system 2610 then executes one or more sequences of the computer program instructions loaded into code memory 2641, as a result performing process steps described herein. In this way, data processing system 2610 carries out a computer implemented process. For example, blocks of the flowchart illustrations or block diagrams herein, and combinations of those, can be implemented by computer program instructions. Code memory 2641 can also store data, or not: data processing system 2610 can include Harvard-architecture components, modified-Harvard-architecture components, or Von-Neumann-architecture components.
Computer program code can be written in any combination of one or more programming languages, e.g., JAVA, Smalltalk, C++, C, or an appropriate assembly language. Program code to carry out methods described herein can execute entirely on a single data processing system 2610 or on multiple communicatively-connected data processing systems 2610. For example, code can execute wholly or partly on a user's computer and wholly or partly on a remote computer or server. The server can be connected to the user's computer through network 2650.
The peripheral system 2620 can include one or more devices configured to provide digital content records to the data processing system 2610. For example, the peripheral system 2620 can include digital still cameras, digital video cameras, cellular phones, or other data processors. The data processing system 2610, upon receipt of digital content records from a device in the peripheral system 2620, can store such digital content records in the data storage system 2640.
The user interface system 2630 can include a mouse, a keyboard, another computer (connected, e.g., via a network or a null-modem cable), or any device or combination of devices from which data is input to the data processing system 2610. In this regard, although the peripheral system 2620 is shown separately from the user interface system 2630, the peripheral system 2620 can be included as part of the user interface system 2630.
The user interface system 2630 also can include a display device, a processor-accessible memory, or any device or combination of devices to which data is output by the data processing system 2610. In this regard, if the user interface system 2630 includes a processor-accessible memory, such memory can be part of the data storage system 2640 even though the user interface system 2630 and the data storage system 2640 are shown separately in
In various aspects, data processing system 2610 includes communication interface 2615 that is coupled via network link 2616 to network 2650. For example, communication interface 2615 can be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 2615 can be a network card to provide a data communication connection to a compatible local-area network (LAN), e.g., an Ethernet LAN, or wide-area network (WAN). Wireless links, e.g., WiFi or GSM, can also be used. Communication interface 2615 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information across network link 2616 to network 2650. Network link 2616 can be connected to network 2650 via a switch, gateway, hub, router, or other networking device.
Network link 2616 can provide data communication through one or more networks to other data devices. For example, network link 2616 can provide a connection through a local network to a host computer or to data equipment operated by an Internet Service Provider (ISP).
Data processing system 2610 can send messages and receive data, including program code, through network 2650, network link 2616 and communication interface 2615. For example, a server can store requested code for an application program (e.g., a JAVA applet) on a tangible non-volatile computer-readable storage medium to which it is connected. The server can retrieve the code from the medium and transmit it through the Internet, thence a local ISP, thence a local network, thence communication interface 2615. The received code can be executed by data processing system 2610 as it is received, or stored in data storage system 2640 for later execution.
The invention is inclusive of combinations of the aspects described herein. References to “a particular aspect” and the like refer to features that are present in at least one aspect of the invention. Separate references to “an aspect” or “particular aspects” or the like do not necessarily refer to the same aspect or aspects; however, such aspects are not mutually exclusive, unless so indicated or as are readily apparent to one of skill in the art. The use of singular or plural in referring to “method” or “methods” and the like is not limiting. The word “or” is used in this disclosure in a non-exclusive sense, unless otherwise explicitly noted.
The invention has been described in detail with particular reference to certain preferred aspects thereof, but it will be understood that variations, combinations, and modifications can be effected by a person of ordinary skill in the art within the spirit and scope of the invention.
This application is a nonprovisional application of, and claims priority to, U.S. Provisional Patent Application Nos. 61/724,427, filed Nov. 9, 2012; 61/658,998, filed Jun. 13, 2012; and 61/724,345, filed Nov. 9, 2012, the entirety of each of which is incorporated herein by reference.
This invention was made with government support under CNS-0941497 awarded by the National Science Foundation. The government has certain rights in the invention.
Number | Date | Country | |
---|---|---|---|
61658998 | Jun 2012 | US | |
61724345 | Nov 2012 | US | |
61724427 | Nov 2012 | US |