Filename: “AET_ch8”

Multi-Domain Modeling

1.1 MEMS Accelerometers Modeling1

Sensing is typically performed in two steps:

  • Transform acceleration to mechanical displacement
  • Transform mechanical displacement to electrical signal

Microflexural Structure

Daspot: (D)

  • Model frictional resistance as damping force proportional to rate of movement (velocity)

Seismic Mass (M):

  • Model inertia as force proportional to rate of velocity (acceleration)

Spring (K):

  • Model structural elasticity as spring force proportional to movement

Inertia, dissipative, elasticity characteristics determine transient (time domain) and bandwidth (frequency domain) response.

Where:

ω0natural resonant frequency - oscillation with no damping/forcing

ξdamping factor – actual damping/critical damping

ωdamped resonant frequency

x/aprimary transducer transfer function – displacement/unit acceleration

Capacitive Sensing

Seismic mass forms one plate of a parallel plate capacitance. Movement of mass changes area/gap between parallel plates and , consequently the capacitance.

Differential Capacitance Sensing

Easier to detect relative (differential) change rather than absolute change

Comb finger capacitances connected in parallel to add to form C1 and C2.

Sensing requires a bridge circuit with complementary AC source VS.

C1 = C2=> no acceleration

C1≠ C2=> acceleration

Signal Detection is based on

Sin x Sin y = 0.5[cos(x-y) – cos(x+y)]

LIBRARY IEEE;

USE IEEE.ENERGY_SYSTEMS.ALL;

USE IEEE.ELECTRICAL_SYSTEMS.ALL;

USE IEEE.MECHANICAL_SYSTEMS.ALL;

ENTITY comb_drive IS

GENERIC(m : MASS := 0.16*nano;

d : DAMPING := 4.0e-6;

k : STIFFNESS := 2.6455;

a : REAL := 2.0e-6 * 110.0e-6;

do : REAL := 1.5e-6);

PORT(TERMINAL proof_mass, ref : TRANSLATIONAL;

TERMINAL top_el, mid_el, bot_el : ELECTRICAL);

END ENTITY comb_drive;

ARCHITECTURE bcr OF comb_drive IS

--Free quantities

QUANTITY vel : VELOCITY;

QUANTITY qtm, qbm : CHARGE;

QUANTITY dtm, dbm : DISPLACEMENT;

QUANTITY ctm, cbm : CAPACITANCE;

--branch quantities

QUANTITY pos ACROSS force THROUGH proof_mass TO ref;

QUANTITY vtm ACROSS itm THROUGH top_el TO mid_el;

QUANTITY vbm ACROSS ibm THROUGH bot_el TO mid_el;

BEGIN

--compute displacement of comb drive --mechanical dynamics

--compute change in capacitance--electrical dynamics

--compute generated current

END ARCHITECTURE bcr;

LIBRARY IEEE;

USE IEEE.MATH_REAL.ALL;

USE IEEE.MECHANICAL_SYSTEMS.ALL;

ENTITY ENV_FORCE IS

GENERIC(MAG_AC, MAG_DC : FORCE :=0.0;

FREQ : REAL := 0.0);--CONSTANT, QUANTITY not allowed in GENERIC

PORT(TERMINAL PT1, PT2 : TRANSLATIONAL);

END ENTITY ENV_FORCE;

ARCHITECTURE SINE OF env_force IS

QUANTITY FORCE THROUGH PT1 TO PT2;

BEGIN

FORCE == MAG_AC*SIN(MATH_2_PI*FREQ*NOW);

END ARCHITECTURE SINE;

LIBRARY IEEE;

USE IEEE.MATH_REAL.ALL;

USE IEEE.ELECTRICAL_SYSTEMS.ALL;

ENTITY vsource IS

GENERIC(MAG_AC, MAG_DC : VOLTAGE := 0.0;

FREQ : REAL := 0.0);

PORT (TERMINAL p, m : ELECTRICAL);

END ENTITY vsource;

ARCHITECTURE sine OF vsource IS

QUANTITY v across i THROUGH p TO m;

BEGIN

v == mag_ac*SIN(MATH_2_PI*freq*NOW)+mag_dc;

END ARCHITECTURE sine;

Signal Detection

The modulated signal in r1.v can be demodulated by mixing the signal with a local oscillator with the same frequency as the carrier.

[A(t)Sin x] Sin y = 0.5A(t)[cos(x-y) – cos(x+y)]

If x=y

[A(t)Sin x] Sin x =0.5A(t)[1-cos2x]=0.5A(t)-0.5A(t)cos2x

A(t) can be recovered by low pass filtering.

gs1=6.28e3/(s+6.28e3) 1kHz cutoff frequency

1.2 Electrical and Thermal Modeling

Thermal Components3

  • Temperature Source (T):Across Quantity like V, unit K(Kelvin)
  • Heat Flow Source (H):Through Quantity like I, unit J/s(Joules/sec)
  • Thermal Resistance (RTH) :Resistive component like R, unit K*s/J
  • Thermal Capacitance (CTH): Capacitive component like C, unit J/K

Thermal Resistance (RTH):

T(t)= RTH H(t)

Thermal Resistance VHDL-AMS Model

library ieee;

use ieee.thermal_systems.all;

entity rth is

port(

quantity k: in real:= 1.0; -- linear coefficient (k*s/J)

terminal th1, th2: thermal);

end entity rth;

architecture beha of rth is

quantity t across h through th1 to th2;

begin

t == h*k;

end beha;

Thermal Capacitance (CTH):

Where:

T0 is the initial temperature 293 K.

Thermal Capacitance VHDL-AMS Model

library ieee;

use ieee.thermal_systems.all;

entity cth is

port(

quantity c_th: in real := 1.0; -- thermal capacitance (J/K)

quantity t0: in real := 293.0; -- initial temperature (K)

terminal th1: thermal);

end entity cth;

architecture beha of cth is

quantity t across h through th1 to thermal_ref;

quantity h_int : real := t0;

begin

Break

h_int => t0 * c_th;

h_int'dot == h;

t == h_int / c_th;

end beha;

Thermometer -Like voltmeter

library ieee;

use ieee.thermal_systems.all;

entity thm is

port(

quantity temp: out real; -- temperature (K)

terminal th1 : thermal);

end entity thm;

architecture beha of thm is

quantity t across th1 to thermal_ref;

begin

t == temp;

end beha;

Thermal Source--Like voltage source

------

library ieee;

use ieee.thermal_systems.all;

entity t is

port(

quantity value: in real:= 293.0; -- temperature (K)

terminal th1: thermal);

end entity t;

architecture beha of t is

quantity t_ across h through th1 to thermal_ref;

begin

t_ == value;

end beha;

θ=370K; rth1: k=1 K/W; cth1: c_th=1 Ws/K

θ=370K; rth1: k=2 K/W; cth1: c_th=1 Ws/K

θ=370K; rth1: k=1 K/W; cth1: c_th=2 Ws/K

Simple Diode without Thermal Modeling

LIBRARY IEEE;

USE IEEE.ELECTRICAL_SYSTEMS.ALL;

USE IEEE.MATH_REAL.ALL;

ENTITY D IS

GENERIC (

ISAT : REAL := 1.0e-12; -- Saturation current

VT : REAL := 35.0e-3; -- Thermal voltage

RR : REAL := 100.0e3; -- Reverse resistance

VF : REAL := 0.8; -- Forward voltage

RB : REAL := 1.0e-3 -- Bulk Resistance

);

PORT (TERMINAL p,m : ELECTRICAL);

END ENTITY D;

ARCHITECTURE behav OF D IS

QUANTITY v ACROSS i THROUGH p TO m;

BEGIN

IF (v >= 0.0) USE

i == ISAT * ((exp(v/VT)) - 1.0);

ELSE

i == v/RR;

END USE;

END ARCHITECTURE;

ARCHITECTURE equiv OF d IS

CONSTANT vlimit : REAL := VF/(1.0 - (RB/RR));

QUANTITY v ACROSS i THROUGH p TO m;

BEGIN

IF (v < vlimit) USE

i == v/RR;

ELSE

i == (v-VF)/RB;

END USE;

END ARCHITECTURE equiv;

Model Using Basics Vs AMS

Models Usings Basics

Simple Diode Thermal Model1 (vt is assumed constant)

LIBRARY IEEE;

USE IEEE.ENERGY_SYSTEMS.ALL; --Define K (boltzmann), Q(elec_charge)

USE IEEE.ELECTRICAL_SYSTEMS.ALL;

USE IEEE.THERMAL_SYSTEMS.ALL;

USE IEEE.MATH_REAL.ALL;

ENTITY MyDiodeTh IS

GENERIC (

ISAT : REAL := 1.0e-12; -- Saturation current

vt : REAL := 35.0e-3; -- Thermal voltage

RR : REAL := 100.0e3; -- Reverse resistance

VF : REAL := 0.8; -- Forward voltage

RB : REAL := 1.0e-3 -- Bulk Resistance

);

PORT (TERMINAL anode,cathode : ELECTRICAL;

TERMINAL junction: THERMAL);

END ENTITY MyDiodeTh;

ARCHITECTURE behav OF mydiodeth IS

QUANTITY vd ACROSS id THROUGH anode TO cathode;

QUANTITY temp ACROSS power THROUGH thermal_ref TO junction;

BEGIN

IF (vd >= 0.0) USE

id == ISAT * ((exp(vd/vt)) - 1.0);

ELSE

id == vd/RR;

END USE;

power == vd*id;

END ARCHITECTURE behav;

Simple Diode Thermal Model2 (vt depends on temp)

LIBRARY IEEE;

USE IEEE.ENERGY_SYSTEMS.ALL; --Define K (boltzmann), Q(elec_charge)

USE IEEE.ELECTRICAL_SYSTEMS.ALL;

USE IEEE.THERMAL_SYSTEMS.ALL;

USE IEEE.MATH_REAL.ALL;

ENTITY MyDiodeTh IS

GENERIC (

ISAT : REAL := 1.0e-12; -- Saturation current

RR : REAL := 100.0e3; -- Reverse resistance

VF : REAL := 0.8; -- Forward voltage

RB : REAL := 1.0e-3 -- Bulk Resistance

);

PORT (TERMINAL anode,cathode : ELECTRICAL;

TERMINAL junction: THERMAL);

END ENTITY MyDiodeTh;

ARCHITECTURE behav OF mydiodeth IS

QUANTITY vd ACROSS id THROUGH anode TO cathode;

QUANTITY temp ACROSS power THROUGH thermal_ref TO junction;

QUANTITY vt : voltage;-- thermal voltage

BEGIN

IF (vd >= 0.0) USE

id == ISAT * ((exp(vd/vt)) - 1.0);

ELSE

id == vd/RR;

END USE;

vt == temp * K/Q;-- thermal voltage is temp dependend

power == vd*id;

END ARCHITECTURE behav;

Simple Diode Thermal Model3 (vt depends on temp & id depends on id)

LIBRARY IEEE;

USE IEEE.ENERGY_SYSTEMS.ALL; --Define K (boltzmann), Q(elec_charge)

USE IEEE.ELECTRICAL_SYSTEMS.ALL;

USE IEEE.THERMAL_SYSTEMS.ALL;

USE IEEE.MATH_REAL.ALL;

ENTITY DiodeTh IS

GENERIC (iss : REAL := 1.0e-4;

n, af : REAL := 1.0;

tt, cj0, vj, rs, kf : REAL :=0.0);

PORT (TERMINAL anode, cathode : ELECTRICAL;

TERMINAL junction: THERMAL);

END ENTITY DiodeTh;

ARCHITECTURE Level0 OF diodeth IS

QUANTITY vd ACROSS id, ic THROUGH anode TO cathode;

QUANTITY temp ACROSS power THROUGH thermal_ref TO junction;

QUANTITY qc : charge;

QUANTITY vt : voltage;-- thermal voltagge

BEGIN

qc == tt*id - 2.0*cj0 * sqrt(vj**2 -vj*vd+1.0e-20);--1.0e-20 is added to prevent division by zero error

ic == qc'DOT;

id == iss*(exp((vd-rs*id)/(n*vt)) - 1.0);

vt == temp * K/Q;

power == vd*id;

END ARCHITECTURE Level0;

Note: When the diode is forward bias vd >0 (<0 reverse polarity), the solver oscillate. The solution is incorrect.

REFERENCES

  1. “Analog and Mixed-Signal Modeling Using the VHDL-AMS Language”, E.C. Beaverton et.al., 36th Design Automation Conference, New Orleans, June 21-25, 1999.
  2. “Simulation System SIMPLORER VHDL-AMS Tutorial,” English Edition, © 2003 Ansoft Corporation.
  3. Simulation System SIMPLORER® v.6.0 User Manual, English Edition, © 1996-2002, Ansoft Corporation.