New in System Modeler

Jan Brugård, Wolfram MathCore

(RowDefault[, (Spacer1), , (Spacer1), ])  #WolframTechConf

ABSTRACT

In this presentation, the key features for System Modeler 13.1 and 13.2 will be presented. This includes new free model libraries, task-oriented documentation and integrated machine learning workflows.

Released Since Last Conference

Now free libraries

OPC Classic 1.2 — June 2022

OPC UA 1.2 — June 2022

Hydraulic 1.3 — June 2022

System Modeler 13.1

MPC workflow

Task oriented documentation

Integrated machine learning workflows

Coming Soon

New free libraries

Aircraft

Rotating Machinery

College Mechanical Engineering

System Modeler 13.2

Improved simulation robustness & modeling experience

Quantify system performance

Interactively explore simulation results

Other

SystemModelManipulate

Improved Simulation Robustness & Modeling Experience

What does this mean?

Better error messages

Improved robustness

Support for more libraries

Interactively Explore Simulation Results

Specialized manipulate for system models.

ResourceFunction["SystemModelManipulate"]["ModelSpringMass"]

Open the model in System Modeler.

SystemModeler["LaundryRoom"]

College Mechanical Engineering

Learn about

Coordinate transformation

Dynamics

Vibrations

Quantify System Performance

Simulate an autopilots scenario.

simAircraft=SystemModelSimulate["Aircraft.Examples.AutopilotResponse"]

Step response for a Boeing 737 and SAAB 2000.

SystemModelPlot[simAircraft,{"stepTrack.y","boeing737800.flightData.track","saab2000.flightData.track"}]

Get measurements for the two Aircraft

Quiet@SystemModelMeasurements[<|"Model"->simAircraft,"Outputs"->{"boeing737800.flightData.track","saab2000.flightData.track"},"SimulationInterval"->{40,Automatic}|>]

Included properties

({{({{, ({{"\!\(\*SubscriptBox[\(y\), \(10\)]\)", "=", "\!\(\*SubscriptBox[\(y\), \(init\)]\) + 0.1(\!\(\*SubscriptBox[\(y\), \(final\)]\) - \!\(\*SubscriptBox[\(y\), \(init\)]\))"}, {"\!\(\*SubscriptBox[\(y\), \(50\)]\)", "=", "\!\(\*SubscriptBox[\(y\), \(init\)]\) + 0.5(\!\(\*SubscriptBox[\(y\), \(final\)]\) - \!\(\*SubscriptBox[\(y\), \(init\)]\))"}, {"\!\(\*SubscriptBox[\(y\), \(90\)]\)", "=", "\!\(\*SubscriptBox[\(y\), \(init\)]\) + 0.9(\!\(\*SubscriptBox[\(y\), \(final\)]\) - \!\(\*SubscriptBox[\(y\), \(init\)]\))"}, {"\!\(\*SubscriptBox[\(y\), \(\(T\)\(±\)\)]\)", "=", "\!\(\*SubscriptBox[\(y\), \(final\)]\) ± 0.02|\!\(\*SubscriptBox[\(y\), \(final\)]\) - \!\(\*SubscriptBox[\(y\), \(init\)]\)|"}, {"\!\(\*SubscriptBox[\(y\), \(\(S\)\(±\)\)]\)", "=", "\!\(\*SubscriptBox[\(y\), \(final\)]\) ± 0.02\!\(\*SubscriptBox[\(max\), \(t\)]\)|\!\(\*SubscriptBox[\(y\), \(final\)]\) - y|"}})}})}, {({{, }})}})

Aircraft

Quickly test new concepts using novel weight estimation method.

Includes aircraft with turbofan, turbojet, turboprop, piston and electric propulsion as well as glider.

Easy to configure many things including aircraft, autopilots and scenarios.

Example

SystemModelPlot["Aircraft.Examples.Stabilization",PlotRange->All]

Rotating Machinery

Compatible with Modelica Multibody library.

Includes gears, masses, shafts, supports and rolling bearings.

Easily parametrize 100s of bearings from SKF, NSK, KOYO, etc

Example - bearing

Simulate system with a defect on the outer ring.

simBearing=SystemModelSimulate["RotatingMachinery.Examples.BearingAnalysis.BearingRollerForces"];

Plot the default plot (roller force for a specific roller)

SystemModelPlot[simBearing,PlotRange->All]

Plot the forces for 6 different rollers

SystemModelPlot[simBearing,"Forces from 6 different rollers"]

Example - planetary gear

Integrated Machine Learning Workflows

NotebookOpen[FileNameJoin[{NotebookDirectory[],"Resources//ACDesign.nb"}]]

Extract trained net:

fNet=tNet["TrainedNet"]

Create a SystemModel from the trained net:

model=CreateSystemModel["MyNet",fNet,GeneratedAssetLocation->FileNameJoin[{NotebookDirectory[],"MyNet.onnx"}]]

Import[FileNameJoin[{NotebookDirectory[],"Resources\\ACDesign.mo"}]];
SystemModel["ACDesign.Components.LivingRoom","Diagram"]

Check model response:

model = SystemModel["ACDesign.ACDesignModel"];
plot1 = SystemModelPlot[model,PlotLabel->"room vs ambient temperature"]

Integrated Machine Learning Workflows

The regions with feasible feedback:

reg=cd["FeedbackRegions"];
regPlot=RegionPlot[Evaluate[List@@reg[[1]]],{(Subscript[x, 1]),-3,3},{(Subscript[x, 2]),-3,3},PlotPoints->20,MaxRecursion->5]

The simulation of the closed-loop system from different initial points in the feasible region:

Table[Arrow[OutputResponse[{csys,<|1->RandomPoint[reg]|>},
PadRight[{0},6]]\[Transpose]],12];
Show[regPlot,Graphics[%]]

System Modeler at WTC

System Modeler agenda at WTC 2022. All times in CST.

Wednesday

10:30 - 10:55 am Green Energy Modeling

10:55 - 11:20 am Aircraft Design in System Modeler

11:00 - 12:00 pm Meetup: Engineering Education

02:45 - 03:45 pm Office Hour: System Modeling

04:30 - 05:00 pm Model Transformation for Smart Grid Applications

Thursday

09:00 - 09:30 am Extreme Citizen Science—Learning Enabled with Computational Essays

01:00 - 01:25 am New in System Modeler

01:25 - 01:50 am Model Predictive Control

01:50 - 02:15 am Neural Networks in System Models

Friday

09:30 - 10:30 am Meetup: Virtual Labs in Education

05:30 - 05:30 pm Cambodia Wolfram Student Stars! Mathematica, Arduino, Raspberry Pi