Skip to content

Command-based Design

Open the project⚓︎

  • Click on "Open Project" and choose "Accelerometer.iromproj" inside the "Accelerometer_UsersManual" folder to open it.
    • Answer "Do you want to load the selected model?" with "Yes".
    • Answer "Do you want to build the 3D model?" with "Yes".

Learning Best Practice

  1. Use existing models with proven settings instead of creating new projects with initial settings. This minimises changes to model settings and keeps the design process focused on model creation.
  2. Set up Notepad with i-ROM code highlighting.
  3. Only the *.iromproj and *.irommod or *.iromsket files are needed to define a model. All other files are binary files created during Modelbuilder runs and can be deleted.
  4. Study the design flow process.
  • Make sure that the *.irommod file is used to build the model.
    • In the taskbar you can see which file is being used.
    • To change it, click on "Open Model from File" and select "Accelerometer.irommod".

Using *.iromsket files

If you open the Sketcher and click on "Compile Model" to build it, the Modelbuilder will automatically switch to the *.iromsket file. If you close the Sketcher by pressing the X, this will not happen.

Change the model through commands⚓︎

  • Now, open "Accelerometer.irommod" using Notepad++.

    • The model file begins with the design parameters, which are defined by PARA commands.
    • Next follow the commands to define the anchors and seismic masses. In the given example, the mass body is assembled from five rectangular primitives.
    • Parametric modelling is useful for optimising MEMS designs. Alternatively, the dimensions of the RECT command can be defined directly using numbers.
    • The EOF command can be used to set a breakpoint in the model file.
  • Set a breakpoint in the "Accelerometer.irommod" file.

    • In Notepad++, enter EOF; after the RECTcommands. This should be around line 166.
    • Save the changes by pressing "Ctrl + S" or clicking on the save icon.
  • Click on "Build Solids" to update the model.
    • Two anchors shown in dark gray and the seismic mass shown in orange appear on the screen.

fig5_MassAnchors Mass and anchor parameters
fig6_Springs Spring parameters
fig7_Combs Comb cell parameters
  • Define connecting points for suspension springs (SL - Spring Location point).
    • Five connecting points are defined by the SLOC command.
    • The connecting points are mirrored in x- and y-direction by *FOR-loops.
    • In total 20 spring location points appear on the screen which are utilized for a subsequent spring design.
    • Move the EOF; line further down, after the following commands and save the changes.
% Spring connecting points
PARA,offs=0;
*FOR,x_sym,1,-1,-2
    *FOR,y_sym,1,-1,-2
        SLOC,1+offs,,,new,x_sym*body_x2/2           ,y_sym*0.5*spring_d;            % SL at anchor
        SLOC,2+offs,,,new,x_sym*body_x2/2           ,y_sym*1.5*spring_d;            % SL at mass #1
        SLOC,3+offs,,,new,x_sym*(body_x2/2+spring_l),y_sym*0.5*spring_d;            % SL at connecting bar
        SLOC,4+offs,,,new,x_sym*(body_x2/2+spring_l),y_sym*1.5*spring_d;            % SL at connecting bar
        *IF,build_ebar,eq,1
            SLOC,5+offs,,,new,x_sym*(body_x2/2+spring_l),y_sym*(1.5*spring_d+conbar_w); % End of bar extensions
        *ENDIF
        PARA,offs=offs+5;
    *ENDFOR
*ENDFOR
  • Click on "Build Solids" to update the model.
    • Markers and numbers of connecting points can be switched on in the "Model Tree" panel shown on the left of the figure below.

  • Define suspension springs between connecting points.
    • Nine suspension springs are defined on the right and on the left side of the sensor by the SPRI command.
    • The corner fillets at SL1, SL6, SL11, and SL16 are automatically switched off in the current release.
    • Move the EOF; line further down, after the following commands and save the changes.
% Define springs between connecting points
*FOR,x_sym,0,1
    PARA,offs=10*x_sym;
    SPRI,1+offs,3+offs,,,spring_w;
    SPRI,6+offs,8+offs,,,spring_w;
    SPRI, 2+offs,4+offs,,,spring_w; % Spring SL2 to SL4
    SPRI, 7+offs,9+offs,,,spring_w; % Spring SL7 to SL9
    *IF,build_ebar,eq,1
        SPRI,10+offs,9+offs,,,conbar_w; % Connecting bar
        SPRI, 4+offs,5+offs,,,conbar_w; % Connecting bar
    *ENDIF
    SPRI, 9+offs,8+offs,,,conbar_w; % Connecting bar
    SPRI, 8+offs,3+offs,,,conbar_w; % Connecting bar
    SPRI, 3+offs,4+offs,,,conbar_w; % Connecting bar
*ENDFOR
  • Click on "Build Solids" to update the model.
    • The suspension springs on both sides are shown in light gray.

  • Define stopper elements and a perforation pattern of the seismic mass.
    • Four circular stopper elements are defined by the STOP command.
    • Stopper are described by the contact and target node location.
    • In addition, there are four vertical stopper elements at the top and at the bottom face defined by the ZLIM command.
    • A perforation pattern with rectangular holes is defined by the PERF command.
    • Move the EOF; line further down, after the following commands and save the changes.
% Define stopper elements and perforation holes
*FOR,x_sym,1,-1,-2
    *FOR,y_sym,1,-1,-2
        STOP,,circ,1,1,,x_sym*(body_x2/2-anchor_s/2),y_sym*(body_y1/2),x_sym*(body_x2/2-anchor_s/2),y_sym*(anchor_s/2),4;   % No bouncing at kn=5000 and dr=1.0
        ZLIM,,1,,top,x_sym*(body_x2/2-anchor_s/2),y_sym*(body_y1/2),1.2;
        ZLIM,,1,,bot,x_sym*(body_x2/2-anchor_s/2),y_sym*(body_y1/2),1.1;
    *ENDFOR
*ENDFOR

PERF,,rect,1,1,,0,0,5,5,16,16,5,8;
  • Click on "Build Solids" to update the model.
    • Stopper, z-limiter and a perforation pattern appear at the seismic mass.

  • Define comb cells for capacitive sensing and electrostatic actuation.
    • Each comb cell is defined by a single COMB command.
    • Two master nodes (MN) are defined at the upper and lower part of the seismic mass by the MAST command.
    • Master nodes can be visualized by activating markers and numbers (labels) in the "Model Tree" panel.
    • Remove the EOF; line and save the changes.
% capa_label, type, x_pos, y_pos,  xc, yc,ang, fn, bo,ma,la,f_length,f_width,travel_rn,elec_gap1,elec_gap2,block_width,underetch;
COMB, sense+, AREAouterf, 0, +body_y3/2, 0, 0, 90, comb_nf, 1, 1, 1, comb_fl, comb_fw, comb_tr, comb_eg, comb_eg, comb_bw, a_undercut; 
COMB, sense-, AREAouterf, 0, -body_y3/2, 0, 0,270, comb_nf, 1, 1, 1, comb_fl, comb_fw, comb_tr, comb_eg, comb_eg, comb_bw, a_undercut; 

% Master nodes 
MAST,,1,1,1,0,+body_y3/2,-th/2;
MAST,,2,1,1,0,-body_y3/2,-th/2;
  • Click on "Build Solids" to update the model.
    • Comb cells are attached at the upper and lower edge of the seismic mass.

  • Assign corner fillets at spring junctions to reduce stress concentrations.

  • Assign mask undercut and sidewall etching data.

    • A "Mask Undercut" value of 0.2 µm is assigned to all outer edges.
    • Enlarged "Sidewall Etch Offset" data are assigned to faces pointing north, south, east and west. All bottom edges move 0.5 µm outwards.
    • Click on "Build Solids" to update the model.

Inspect the model⚓︎

  • The model can be inspected from different orientations.

Use orthogonal view buttons in the "3D View" panel or manipulate the orientation of the model by mouse buttons:

  • Press "Alt + left mouse button" to move the structure in x- or y-directions.
  • Press "Alt + right mouse button" to tilt the structure around x- and y-axes.
  • Scroll the mouse wheel to zoom in or out.

The User can either tilt the model around its Center Point (CP-mode) or around a User-defined Pivot Point (PP-mode) located on the model.

  • To activate the "CP-mode", move the mouse pointer into the open space. Press "Alt + right mouse button" and tilt the model around x- or y-axes.
  • For the "PP-mode", move the mouse pointer to the pivot point of interest. Press "Alt + right mouse button" and tilt the model around x- or y-axes.

A rectangular section of the model can be selected by the "Box zoom" mode. Press the right mouse button and move the mouse from the upper left to the lower right position in the model window.

  • The "Fit to View" button shows the model at full size on the display screen.

  • Change "Color Settings" of mass bodies in the "Color Settings" window.
    • Default and customized colors can be assigned to all mass bodies.
    • Exemplarily, the color of mass #1 is set to green as shown below.
    • Click on "Save Project" to store the color data settings.

  • Assign "Design Variables" to the model for case studies and optimization.
    • The number of comb fingers, the comb travel range, the spring length and comb finger width can be adjusted in the Design Variables window. By pressing "Close" variables will be automatically modified and updated in the "Acceleromert.iromsket" file. Geometry changes will be visible by pressing "Build Solids" button.
    • "New" variables can be created by using the "New" Button.
    • In this example the number of comb fingers (comb_nf) is changed from 33 to 16.

  • Click on “Build Solids” to update the model.
    • Click on the "Coordinate Selection" icon in order to check several dimensions of the model. Click onto a corner of the mass body to place a marker. The button "Clear Selection" deletes the marker.

Build ROM⚓︎

  • Create a numerical reduced-order model (ROM) for subsequent simulations.
    • Reassign the original settings in the Design Variables window.
    • Click on "Build Solids" to update the original solid model. Open the ROM Settings window.
    • Change ROM Mesh to 15 and Element Size for Spring ROM to 8 µm (the current model uses micrometre units → see µMKSV system).
    • Set the Reduction Stage to Quasi-Analytical.

  • Click "Build ROM".
    • Select "Quasi-Analytic Model".
    • Set the number of eigenvalues to 10.
    • Select only "Eigensolution (Stiffness/Mass)" and deselect the rest.
    • Press "OK" to create the ROM.

  • Click the "Basis" tab to view the basis modal eigenvalues.

Analyze the model⚓︎

  • Run the modal analysis.

    • You can also trigger a modal analysis by pressing the "Simulate" button.
    • Then, on the left, select "Modal Analysis".
    • Set the number of eigenmodes to 8.

    Hint

    The number of eigenmodes must be equal to or less than the number of eigenmodes in the "Build ROM" window.

    • Press "Simulate" to start the simulation.

  • Run a modal analysis with eight eigenmodes in the command line bar.

    • Requirements:
      • "Build ROM" needs to be run before.
      • The number of eigenmodes for the simulated modal analysis must be equal or less than the number of eigenmodes in the "Build ROM" settings window.
    • In the command line, enter: MOPT, 8;
    • In the command line, enter: SOLV, modal;
    • Press the "Enter" key on your keyboard.

    Hint

    There must be a semicolon at the end of each command if you are entering multiple commands by copying and pasting them onto the command line. You can copy the code by selecting it with your mouse and clicking "Ctrl + C" or simply by clicking on the icon in the top right corner of the code block if available.

    MOPT, 8; 
    SOLV, modal; 
    

    • The command line window is marked by the red box below.

The difference between basis eigenmodes and simulated eigenmodes.

The basis eigenmodes are the eigenmodes used to create the ROM, also known as the basis functions. The results are the modal eigenvalues with no loads applied. Running "Modal Analysis" in the Simulate tab performs the modal analysis with all previously assigned loads. If loads exist, it is called as constrained modal analysis and can be used to determine electrostatic stiffening.

  • Evaluate the results of the "Modal Analysis" and create animations.
    • Select mode #5 in the "Mode Selection" panel by double-clicking the row.
    • In the "General Plot Controls" panel, set the Scalefactor to 0.2.
    • Click on the "Start Animation" button and reorient the structure. (panning: hold "Alt + left mouse button"; rotating: hold "Alt + right mouse button")
    • Select other modes during the animation in the "Mode Selection" panel.
    • You can also change the scale factor and activate Color Contour Plot in the "General Plot Controls" panel during the animation.