You are on page 1of 45

Hybrid Simulation Research at UC Berkeley

Andreas Schellenberg & Stephen Mahin


With contributions from:

Gregory Fenves, Bozidar Stojadinovic, Frank McKenna, Tony Yang, Yoshikazu Takahashi and others
Department of Civil and Environmental Engineering University of California, Berkeley

Pioneering efforts at Berkeley


Initial theoretical foundations (1973) Random & systematic error propagation studies - Williams (1979-81) Refinement and implementation of stable explicit formulations Shing (1980-84) Experimental/numerical partitioned simulations with mixed implicit/explicit operators - Dermitzakis (1983-85) Multi-directional testing - Thewalt (1984-87) Force- and mixed force- and displacement-based control - Thewalt (1984-87) Implicit formulations based on numerical and analog correctors Thewalt (1984-87) Effective force dynamic testing - Thewalt (1984-87) Error bound estimation - Thewalt, Stojadinovic, Mosqueda (1992-04) Theory and implementation of network-based local and distributed simulation - Thewalt, Stojadinovic, Campbell, Mosqueda (1987-04) Event-driven digital control - Stojadinovic & Mosqueda (01-04) Force/displacement based control switching - Mosalam (2003-05)
2

Promising Research Directions


Continuous spectrum of hybrid simulations
Simulation comprised of one or more numerical partitions and one or more physical assemblages, and one or more assistive agents carried out quasistatically or dynamically using one or more computers, and one or more laboratories having one or more characteristics. Interaction with moving loads, including impact

New control strategies


Hydrodynamic, aeroelastic and blast effects

Improved boundary conditions

Asynchronous, multi-step, event-driven methods Phantom agents and ghosts Open-loop correctors Mixed force and displacement control
3

Secure, high-performance communication

Some immediate needs


Error bound estimates

Accuracy, precision, repeatability, reproducibility Test acceptance criteria Auto-correction strategies

Characterization of test set-ups, especially for stiff, heavy and cross-coupled specimens. Glossary of Terms Standards for communications (NTCP-NG) Implementation of a robust, efficient, adaptable, scalable and extensible framework for research and deployment
4

Framework for Hybrid Simulation


Structured framework that is transparent and (easily) extensible and scalable Enable domain researchers to carry out Hybrid Simulations without specialized knowledge Allow IT and hybrid simulation specialists to extend frontiers of methodology, focusing only on the portions of interest.

Independent of computing, control and laboratory equipment Facilitate scaling and extending to new equipment and procedures Foster synergism

Object-oriented programming
5

NEES-compliant deployment of openFRESCO


No modification of numerical simulation framework is needed, other than the addition of new finite elements representing physical elements tested Calls to obtain element stiffness, restoring force and other parameters made just like they would be in a numerical analysis, except they are executed physically somewhere on a local or wide area network. openFRESCO mediates in a modular and highly structured manner instructions between numerical simulation computer(s) and laboratory equipment
6

OpenFRESCO Components
FE-Software
interfaces to the FE-Software

local deployment

OpenFRESCO

Experimental Site Experimental Setup


transforms the experimental element degrees of freedom into the actuator degrees of freedom (linear vs. nonlinear transformations)

interfaces to the different control and data acquisition systems in the laboratories

Experimental Control

Control System in Laboratory


7

OpenFRESCO Components
FE-Software Experimental Site
/IP P C T

network deployment

NTCP

NTC P

Exper. Setup Exper. Control Control System in Laboratory

NTCP Server Control Plugin Control System in Laboratory

NTCP Server FrescoPlugin Control System in Laboratory


8

FE-Software

Finite-Element Software

Experimental Site Experimental Setup Experimental Control

Currently using OpenSees, but nearly any software allowing the addition of elements and having the appropriate communication channels can be used Object-oriented software framework for developing applications to simulate the performance of structural and geotechnical systems subjected to earthquakes

Control System in Laboratory

FE-Software

OpenSees
The object oriented approach of OpenSees facilitates:

Experimental Site Experimental Setup Experimental Control Control System in Laboratory

Domain researchers to add materials, numerical elements and specialized recorders Addition of new types of direct integration methods Addition of new experimental elements Numerical execution on super-computers Partitioning of numerical models and execution on networks of computers
10

FE-Software

OpenSees Components
constructs the objects in the model and adds them to the Domain holds the state of the model at time ti and ti+dt

Experimental Site Experimental Setup Experimental Control Control System in Laboratory

moves the model from state at time ti to state at time ti+dt

ModelBuilder

Domain Recorder
monitors user defined parameters in the model during the analysis

Analysis

11

FE-Software

Direct Integration Methods


n + C u n + Pr ( un ) = M B u g ( tn ) M u

Experimental Site Experimental Setup Experimental Control Control System in Laboratory

Mass matrix M is in general singular -> second order differential equation infinitely stiff -> fully implicit numerical methods Make as few function calls as possible Use constant Jacobian in the numerical methods since tangent stiffness is not available
12

FE-Software

Direct Integration Methods


Explicit Integrators

Experimental Site Experimental Setup Experimental Control Control System in Laboratory

explicit Newmark Method Central-Difference Method explicit Alpha-Method generalized explicit Alpha-Method Newmark Method Alpha-Method generalized Alpha-Method Collocation Method
13

Implicit Integrators

FE-Software

Direct Integration Methods


Implicit Integrators with sub-stepping (constant number)

Experimental Site Experimental Setup Experimental Control Control System in Laboratory

Newmark-HybridSimulation Method generalized Alpha-HybridSimulation Method Collocation-HybridSimulation Method Alpha-OS Method generalized Alpha-OS Method

Predictor-Corrector Integrators

14

FE-Software

OpenSees Components
constructs the objects in the model and adds them to the Domain holds the state of the model at time ti and ti+dt

Experimental Site Experimental Setup Experimental Control Control System in Laboratory

moves the model from state at time ti to state at time ti+dt

ModelBuilder

Domain Recorder
monitors user defined parameters in the model during the analysis

Analysis

15

FE-Software

OpenSees Components cont.


Domain

Experimental Site Experimental Setup Experimental Control Control System in Laboratory

Node

Element

MP_Constraint

SP_Constraint

ExperimentalElement

OpenFRESCO

Control System in Laboratory


16

FE-Software

Experimental Elements
1) EETruss (2D,3D)

Experimental Site Experimental Setup Experimental Control Control System in Laboratory

element expTruss $eleTag $iNode $jNode $siteTag -initStif $Kij <-iMod> <-rho $rho> $eleTag unique element tag $iNode,$jNode end nodes $siteTag tag of previously defined site object $Kij initial stiffness matrix element (1 x 1) -iMod flag for I-Modification (optional, default=false) $rho mass per unit length (optional, default=0.0)
controlled displacements d1, q1 and acquired forces

j
y

i
x

17

FE-Software

Experimental Elements
2) EEBeamColumn (2D,3D)

Experimental Site Experimental Setup Experimental Control Control System in Laboratory

element expBeamColumn $eleTag $iNode $jNode $siteTag $tranTag -initStif $Kij <-iMod> <-rho $rho> $eleTag unique element tag $iNode,$jNode end nodes $siteTag tag of previously defined site object $tranTag tag of previously defined crd-transf object $Kij initial stiffness matrix elements (ndf x ndf) -iMod flag for I-Modification (optional, default=false) $rho mass per unit length (optional, default=0.0)
controlled displacements and acquired forces d2, q2 d1, q1 d3, q3

i
x

18

FE-Software

Experimental Elements
3) EEZeroLength (2D,3D)

Experimental Site Experimental Setup Experimental Control Control System in Laboratory

element expZeroLength $eleTag $iNode $jNode $siteTag -dir $dirs -initStif $Kij <-iMod> <-orient $x1 $x2 $x3 $y1 $y2 $y3> $eleTag unique element tag $iNode,$jNode end nodes $siteTag tag of previously defined site object $dirs force directions (1-3,1-6) $Kij initial stiffness matrix elements (nDir x nDir) -iMod flag for I-Modification (optional, default=false) $xi, $yi local x- and y-axis (optional, default=X,Y)
controlled displacements and acquired forces d2, q2 d1, q1 d3, q3

19

FE-Software

Experimental Elements
4) EEChevronBrace (2D,3D)

Experimental Site Experimental Setup Experimental Control Control System in Laboratory

element expChevronBrace $eleTag $iNode $jNode $kNode $siteTag -initStif $Kij <-iMod> <-rho1 $rho1> <-rho2 $rho2> $eleTag unique element tag $iNode,$jNode end nodes $kNode $siteTag tag of previously defined site object $Kij initial stiffness matrix elements (ndf x ndf) -iMod flag for I-Modification (optional, default=false) $rho1,$rho2 masses per unit length (optional, default=0.0)
y d7, q7 d8, q8 controlled displacements d6, q6

d1, q1 d2, q2 d0, q0 d5, q5

d4, q4 d3, q3

j
x2

acquired forces x1

acquired forces

20

FE-Software

Adding Experimental Elements


Public Member Functions
Constructor and Destructor ExperimentalElement(int tag, int classTag, ExperimentalSite &theSite); virtual ~ExperimentalElement(); Methods dealing with nodes and number of external dof
virtual virtual virtual virtual int getNumExternalNodes(void) const = 0; const ID &getExternalNodes(void) = 0; Node **getNodePtrs(void) = 0; int getNumDOF(void) = 0;

Experimental Site Experimental Setup Experimental Control

Control System in Laboratory

int update( ) int setInitialStiff( ) const Vector &getResistingForce( )

Method to obtain basic dof size; equal to the max num dof that can be controlled
virtual int getNumBasicDOF(void) = 0;

Methods dealing with committed state and update


virtual int commitState(void); virtual int update(void); virtual bool isSubdomain(void);

Methods to set and to obtain the initial stiffness matrix


virtual int setInitialStiff(const Matrix& stiff) = 0; const Matrix &getInitialStiff(void);

Methods to return the damping and mass matrices


virtual const Matrix &getDamp(void); virtual const Matrix &getMass(void);

Methods for applying loads


virtual void zeroLoad(void) = 0; virtual int addLoad(ElementalLoad *theLoad, double loadFactor) = 0; virtual int addInertiaLoadToUnbalance(const Vector &accel) = 0; virtual int setRayleighDampingFactors(double alphaM, double betaK, double betaK0, double betaKc);

Methods for obtaining resisting force (force includes elemental loads)


virtual const Vector &getResistingForce(void) = 0; virtual const Vector &getResistingForceIncInertia(void);

Methods for obtaining information specific to an element


virtual Response *setResponse(const char **argv, int argc, Information &eleInformation); virtual int getResponse(int responseID, Information &eleInformation);

21

FE-Software

Adding Experimental Elements

Experimental Site Experimental Setup Experimental Control

Control System in Laboratory

22

FE-Software

Experimental Setups
1) ESNoTransformation

Experimental Site

Experimental Setup Experimental Setup


Experimental Control Control System in Laboratory

expSetup NoTransformation $tag $ctrlTag dir $dirs <-dspCtrlFact $dspCF> ... $tag $ctrlTag $dirs unique setup tag tag of previously defined control object directions (1-6)

23

FE-Software

Experimental Setups
2) ESOneActuator
expSetup OneActuator $tag $ctrlTag $dir <-dspCtrlFact $dspCF> ... $tag $ctrlTag $dir unique setup tag tag of previously defined control object direction (1-6)

Experimental Site

Experimental Setup Experimental Setup


Experimental Control Control System in Laboratory

24

FE-Software

Experimental Setups
3) ESTwoActuators

Experimental Site

Experimental Setup Experimental Setup


Experimental Control Control System in Laboratory

expSetup TwoActuators $tag $ctrlTag $nlGeomFlag $La0 $La1 $L <-dspCtrlFact $dspCF> ... unique setup tag tag of previously defined control object $nlGeomFlag nonlinear geometry flag $La0 length of actuator 0 $La1 length of actuator 1 $L length of rigid link $tag $ctrlTag

25

FE-Software

Experimental Setups
4) ESThreeActuators

Experimental Site

Experimental Setup Experimental Setup


Experimental Control Control System in Laboratory

expSetup ThreeActuators $tag $ctrlTag $nlGeomFlag $La0 $La1 $La2 $L0 $L1 <-dspCtrlFact $dspCF> ... unique setup tag tag of previously defined control object $nlGeomFlag nonlinear geometry flag $La0 length of actuator 0 $La1 length of actuator 1 $La2 length of actuator 2 $L0 length of rigid link 0 $L1 length of rigid link 1 $tag $ctrlTag

26

FE-Software

Experimental Setups
5) ESChevronBraceJntOff

Experimental Site

Experimental Setup Experimental Setup


Experimental Control Control System in Laboratory

expSetup ChevronBraceJntOff $tag $ctrlTag $nlGeomFlag $La0 $La1 $La2 $L0 $L1 $L2 $L3 $L4 <-dspCtrlFact $dspCF> ... unique setup tag tag of previously defined control object $nlGeomFlag nonlinear geometry flag $La0 length of actuator 0 $La1 length of actuator 1 $La2 length of actuator 2 $L0 length of rigid link 0 $L1 length of rigid link 1 $L2 length of rigid link 2 $L3 length of rigid link 3 $L4 length of rigid link 4 $tag $ctrlTag
L4 L0 L1 L2 L3
Actuator 0: LA0

Actuator 2: LA2

Actuator 1: LA1

27

FE-Software

Adding Experimental Setups


Public Member Functions
Constructor and Destructor ExperimentalSetup(int tag, ExperimentalControl& theControl); ExperimentalSetup(const ExperimentalSetup& es); virtual ~ExperimentalSetup(); Methods dealing with data sizes
void setElmtDataSize(int s); int getElmtDataSize(); void setCtrlDataSize(int s); int getCtrlDataSize(); void setDaqDataSize(int s); int getDaqDataSize();

Experimental Site

Experimental Setup Experimental Setup


Experimental Control Control System in Laboratory

int propose( )

Methods dealing with execution and acquisition


virtual virtual virtual virtual virtual int int int int int setup() = 0; propose(const Vector& dsp, const Vector& vel, const Vector& acc) = 0; execute() = 0; commitState() = 0; acquire() = 0;

Methods to obtain the response


const const const const Vector& Vector& Vector& Vector& getDisp(); getVel(); getAccel(); getForce();

int acquire( )

Methods to set the control and data acquisition factors


void void void void void setDspCtrlFactor(const Vector& f); setVelCtrlFactor(const Vector& f); setAccCtrlFactor(const Vector& f); setDspDaqFactor(const Vector& f); setFrcDaqFactor(const Vector& f);

Method to get a copy


virtual ExperimentalSetup *getCopy (void) = 0;

28

FE-Software

Adding Experimental Setups

Experimental Site

Experimental Setup Experimental Setup


Experimental Control Control System in Laboratory

29

FE-Software

Experimental Controls
1) ECdSpace
expControl dSpace $tag $numSetups type boardName $tag $numSetups type boardName unique control tag number of setups predictor-corrector type name of dSpace board

Experimental Site Experimental Setup

Experimental Control Control


Control System in Laboratory

30

FE-Software

Experimental Controls
2) ECxPCtarget

Experimental Site Experimental Setup

Experimental Control Control


Control System in Laboratory

expControl xPCtarget $tag $numSetups $type ipAddr ipPort appName appPath $tag $numSetups $type ipAddr ipPort appName appPath unique control tag number of setups predictor-corrector type IP address of xPC Target IP port of xPC Target name of Simulink application to be loaded path to Simulink application

31

FE-Software

Experimental Controls
3) ECScramNet
expControl ScramNet $tag $numSetups ...

Experimental Site Experimental Setup

Experimental Control Control


Control System in Laboratory

$tag $numSetups ...

unique control tag number of setups

under development

32

FE-Software

Experimental Controls
4) ECNIEseries
expControl NIEseries $tag $numCtrl $device

Experimental Site Experimental Setup

Experimental Control Control


Control System in Laboratory

$tag $numSetups $device

unique control tag number of setups id of device

33

FE-Software

Adding Experimental Controls


Public Member Functions
Constructor and Destructor ExperimentalControl(int tag, int nCtrl, int nDaq); ExperimentalControl(const ExperimentalControl& ec); virtual ~ExperimentalControl(); Methods dealing with data sizes
int getCtrlDataSize(); int getDaqDataSize();

Experimental Site Experimental Setup

Experimental Control Control


Control System in Laboratory

ExperimentalControl( ) int setup( ) int execute( ) int acquire( )

Methods to set and obtain the responses


virtual virtual virtual virtual int int int int setup() = 0; execute(const Vector& dsp, const Vector& vel, const Vector& acc) = 0; commitState(); acquire(Vector *dspDaq, Vector *frcDaq) = 0;

Method to add a data filter


void addFilter(SignalFilter& f);

Method to get a copy


virtual ExperimentalControl *getCopy (void) = 0;

34

Event-Driven Approaches
Three-loop-architecture by Mosqueda

35

Event-Driven Approaches cont.


Improved event-driven-controller

36

Event-Driven Approaches cont.


Predictor-corrector algorithms

37

Event-Driven Approaches cont.


Predictor-corrector algorithms
One single DSP

Two machines

38

Event-Driven Approaches cont.


Predictor-corrector algorithms

39

Conclusions
Environment-independent framework for development and deployment will boost the use of hybrid simulation (on-site and tele-operation) Modularity and transparency of the framework permits existing components to be modified and new components added without much dependence on other objects.

Speed development of refined hybrid simulation procedures


40

Conclusions
Large library of hybrid simulation direct integration methods, experimental elements, controller models, and event-driven solution strategies will be available to the user to choose from or adapt. Need:

User-community input of parameter passage and features User feedback NEESit assistance in streamlining network communications

41

Thank you!
Development and operation of the nees@berkeley Equipment Site is sponsored by NSF George E. Brown Jr. NEES grants.

http://nees.berkeley.edu

Application Examples
1) Three-Span-Bridge
1,5 54 6 Experimental BeamColumn 2 7 4,8 42 3 108

108

108

Properties of Model:

num. DOF = 12 (4 with mass) Period: T1 = 0.918sec Damping: 1 = 0.02 ExpElement: EEBeamColumn2d ExpSetup: ESOneActuator ExpControl: ECxPCtarget
43

Application Examples
2) Two-Story-Shear
10 108 8 5 108 3 1 216 6 Experimental BeamColumn 11 12 9 7 4 2

num. DOF = 14 (6 with mass) Period: T1 = 0.618sec T2 = 0.236sec Damping: 1 = 0.02 ExpElements: EEBeamColumn2d ExpSetups: ESOneActuator ExpControl: ECxPCtarget

Properties of Model:

44

Application Examples
3) Two-Story-Frame
10 54 8 5 3 1 108 6 11 12 9 7 4 2

Experimental BeamColumn

num. DOF = 28 (4 with mass) Period: T1 = 0.473sec T2 = 0.071sec Damping: 1 = 0.02 ExpElements: EEBeamColumn2d ExpSetups: ESOneActuator ExpControl: ECxPCtarget

Properties of Model:

54

45

You might also like