Introduction to SystemModeler

Jan Brugård

CEO, Wolfram MathCore

The world of systems

System modeling challenges

Software’s are often

good at one domain – mechanical, electrical, thermal, systems biology, financial, logistics, ...

or generic, but complicated to use – C, Fortran, Block-based (Simulink), ...

Software’s are often good at:

Continuous behavior – inertia, resistor, ...

or discontinuous behavior – clutches, diodes, bouncing balls, ...

Would like the model to naturally mirror the system modeled – easier to build, easier to maintain, ...

Simplify Your Work-Flow

Modeling & simulation

Example: Drag & drop modeling

Double pendulum

Servo mechanism

Tank system

Analysis & design

Quick introduction do the Mathematica link

Needs["WSMLink`"]

sim=WSMSimulate["IntroductoryExamples.HelloWorld",{0,10}]

sim["VariableNames"]

WSMPlot[sim,{"x"},PlotRange->All]

x=sim[{"x"}][[1]];

Plot the function:

Plot[x[t],{t,0,3},PlotRange->All,Filling->Axis]

Plot the derivative:

Plot[x'[t],{t,0,10}]

Calculate the 1-norm (Norm2[f, 1])==(∫_0^3)(Abs[f(t)])dt:

NIntegrate[Abs[x[t]],{t,0,10}]

Example: Sensitivity analysis

Choose parameter and initial values and simulate

sim=WSMSimulateSensitivity["WSMKeyFeatures.Analysis.InsulinSignaling", {0, 30},
WSMModelData["WSMKeyFeatures.Analysis.InsulinSignaling","ParameterNames"],WSMParameterValues->parValues,WSMInitialValues->initValues];

Get list of parameters

parNames=sim["ParameterNames"]

Plot how sensitive the concentration of IRS1P (Phosphorylated insulin receptor substrate 1)

Table[WSMPlot[sim,{{"IRS1p.c",p,0.5}},{0,30},PlotRange->All,PlotLabel->p],{p,parNames}]

A smörgåsbord of applications

Estimating liver function — A model-based approach

Traditional

Modern

Future

Connecting to external devices with Arduino

The ModelPlug library

Financial and Logistics Modeling

Return on investment depending on world market price and changes in electricity demand

Economy

Logistics

Technology

Environment

A smörgåsbord of libraries

The new Hydraulics library

Design hydraulically actuated systems

Advanced visualization of models

Components for model visualization

Example scenarios

Automotive: Electric drivetrains

Hybrid electric vehicles (HEVs),

Electric vehicles (EVs)

Starter / generator concepts

Electrically operated auxiliaries

Industrial drives

Robotics, production lines…

Where it’s used

Selected users

Other presentations

Location: Figthing Illini (in all but two cases)

Monday, October 21

What’s new in SystemModeler 4.0 — Mathematica and SystemModeler

4:00 - 4:30 pm
Fighting Illini
Malte Lenz

What’s new in SystemModeler 4.0 — Modeling and simulation

4:30 - 5:00 pm
Fighting Illini
Malte Lenz

SystemModeler Applications — Estimating liver function — A model-based approach

5:00 - 5:20 pm
Fighting Illini
Jan Brugård

SystemModeler Applications — Connecting to external devices with Arduino

5:00 - 5:20 pm
Fighting Illini
Peter Aronsson

SystemModeler Applications — Financial and Logistics Modeling

5:40 - 6:00 pm
Johan Rhodin

Tuesday, October 22

System Modeling and Digital Analysis Ecosystem for SMEs on Amazon EC2

2:00 - 2:30 pm
Brian Schott
Boilermaker/Wildcats

SystemModeler Libraries — Estimating liver function — A model-based approach

3:30 - 3:50 pm
Johan Rhodin

SystemModeler Libraries — Connecting to external devices with Arduino

3:50 - 4:10 pm
Peter Aronsson

SystemModeler Libraries — Financial and Logistics Modeling

4:10 - 4:30 pm
Jan Brugård

Wednesday, October 23

A System for Analog Filter Design, Realization, and Verification Using Mathematica and SystemModeler

4:10 - 4:30 pm
Tatjana Samardzic
Little Chief

Thursday, October 24

WSM 201: Extending SystemModeler with Mathematica

9:00 - 12:00 am, Thursday, Ocrober 24
Register at the reception 
Johan Rhodin and Malte Lenz

Thanks!

Needs["WSMLink`"];

Import[NotebookDirectory[]<>"WSMKeyFeatures.mo",{"ModelicaModel"}];

parValues={insulinBinding▴k1->18047.8149102387`,basalphosphorylation▴k1->0.2427355862`,insulinBinding▴k2->36569.9579011618`,IRphosphorylation▴k1->4.4882094043`,endocytosis▴k1->3515.0888372196`,IRdephosphorylation▴kbasal->0.0340164852`,IRdephosphorylation▴vmax->37.2185400183`,basalphosphorylation▴k2->70074.13237553`,recycling▴k1->41769.6861831766`,IRS1phosphorylation▴kf2->118.0430127547`,IRS1phosphorylation▴kf2->3.3276940627`,IRS1phosphorylation▴kr->149.8854302216`,Xactivation▴k1->0.0000275772`,Xactivation▴k2->0.0812658755`};
initValues={V->1.`,IR▴c->98.84798155332324`,IRinsulin▴c->0.`,IRinternalized▴c->0.00002745731170645784`,IRp▴c->0.00032605213574809805`,IRpinternalized▴c->1.151664937183509`,IRS1▴c->99.21221005578182`,IRS1p▴c->0.7877899442182098`,X▴c->99.97347159866158`,Xactive▴c->0.02652840133839274`};

heaterOnBackground={LightGray,Rectangle[{18000,-50},{32400,50}],Rectangle[{61200,-50},{82800,50}]};

hourMarks={Table[{s 3600,s},{s,0,24,2}],Automatic};