|
| 1 | +## status: correct |
| 2 | +## teardown_command: rm -rf SimpleSimulation16_res.mat |
| 3 | +## linux: yes |
| 4 | +## ucrt64: yes |
| 5 | +## win: yes |
| 6 | +## mac: yes |
| 7 | + |
| 8 | +from OMSimulator import SSP, CRef, Connector, Causality, SignalType |
| 9 | + |
| 10 | +model = SSP() |
| 11 | +model.addResource('../resources/Modelica.Blocks.Math.Add.fmu', new_name='resources/Add.fmu') |
| 12 | +model.addResource('../resources/Modelica.Blocks.Sources.Sine.fmu', new_name='resources/Sine.fmu') |
| 13 | + |
| 14 | +model.addComponent(CRef("default", "Add"), "resources/Add.fmu") |
| 15 | +model.addComponent(CRef("default", "Sine"), "resources/Sine.fmu") |
| 16 | +model.addConnection(CRef("default", "Sine", "y"), CRef("default", "Add", "u1")) |
| 17 | +model.addConnection(CRef("default", "Sine", "y"), CRef("default", "Add", "u2")) |
| 18 | + |
| 19 | +model.addSystem(CRef("default", "sub-system")) |
| 20 | +subsystem = model.activeVariant.system.elements[CRef("sub-system")] |
| 21 | + |
| 22 | +model.addComponent(CRef("default", "sub-system", "Add2"), "resources/Add.fmu") |
| 23 | + |
| 24 | +subsystem.addConnector(Connector(CRef("u"), Causality.input, SignalType.Real)) |
| 25 | +subsystem.addConnection("", "u", "Add2", "u1") |
| 26 | +subsystem.addConnection("", "u", "Add2", "u2") |
| 27 | + |
| 28 | +model.addConnection(CRef("default", "Sine", "y"), CRef("default", "sub-system", "u")) |
| 29 | + |
| 30 | +model.list() |
| 31 | +print(flush=True) |
| 32 | +instantiated = model.instantiate() |
| 33 | +instantiated.setResultFile("SimpleSimulation16_res.mat") |
| 34 | +instantiated.initialize() |
| 35 | +instantiated.simulate() |
| 36 | +print(f"default.Sine.y : {instantiated.getValue(CRef('default', 'Sine', 'y'))}", flush=True) |
| 37 | +print(f"default.sub-system.u : {instantiated.getValue(CRef('default', 'sub-system', 'u'))}", flush=True) |
| 38 | +print(f"default.sub-system.Add2.u1: {instantiated.getValue(CRef('default', 'sub-system', 'Add2', 'u1'))}", flush=True) |
| 39 | +print(f"default.sub-system.Add2.u2: {instantiated.getValue(CRef('default', 'sub-system', 'Add2', 'u2'))}", flush=True) |
| 40 | +instantiated.terminate() |
| 41 | +instantiated.delete() |
| 42 | + |
| 43 | + |
| 44 | +## Result: |
| 45 | +## <class 'OMSimulator.ssp.SSP'> |
| 46 | +## |-- Resources: |
| 47 | +## |-- resources/Add.fmu |
| 48 | +## |-- resources/Sine.fmu |
| 49 | +## |-- Active Variant: default |
| 50 | +## |-- <class 'OMSimulator.ssd.SSD'> |
| 51 | +## |-- Variant "default": None |
| 52 | +## |-- |-- System: default 'None' |
| 53 | +## |-- |-- |-- Connectors: |
| 54 | +## |-- |-- |-- Elements: |
| 55 | +## |-- |-- |-- |-- FMU: Add 'None' |
| 56 | +## |-- |-- |-- |-- |-- path: resources/Add.fmu |
| 57 | +## |-- |-- |-- |-- |-- Connectors: |
| 58 | +## |-- |-- |-- |-- |-- |-- (u1, Causality.input, SignalType.Real, None, 'Connector of Real input signal 1') |
| 59 | +## |-- |-- |-- |-- |-- |-- (u2, Causality.input, SignalType.Real, None, 'Connector of Real input signal 2') |
| 60 | +## |-- |-- |-- |-- |-- |-- (y, Causality.output, SignalType.Real, None, 'Connector of Real output signal') |
| 61 | +## |-- |-- |-- |-- |-- |-- (k1, Causality.parameter, SignalType.Real, None, 'Gain of input signal 1') |
| 62 | +## |-- |-- |-- |-- |-- |-- (k2, Causality.parameter, SignalType.Real, None, 'Gain of input signal 2') |
| 63 | +## |-- |-- |-- |-- FMU: Sine 'None' |
| 64 | +## |-- |-- |-- |-- |-- path: resources/Sine.fmu |
| 65 | +## |-- |-- |-- |-- |-- Connectors: |
| 66 | +## |-- |-- |-- |-- |-- |-- (y, Causality.output, SignalType.Real, None, 'Connector of Real output signal') |
| 67 | +## |-- |-- |-- |-- |-- |-- (amplitude, Causality.parameter, SignalType.Real, None, 'Amplitude of sine wave') |
| 68 | +## |-- |-- |-- |-- |-- |-- (f, Causality.parameter, SignalType.Real, Hz, 'Frequency of sine wave') |
| 69 | +## |-- |-- |-- |-- |-- |-- (offset, Causality.parameter, SignalType.Real, None, 'Offset of output signal y') |
| 70 | +## |-- |-- |-- |-- |-- |-- (phase, Causality.parameter, SignalType.Real, rad, 'Phase of sine wave') |
| 71 | +## |-- |-- |-- |-- |-- |-- (startTime, Causality.parameter, SignalType.Real, s, 'Output y = offset for time < startTime') |
| 72 | +## |-- |-- |-- |-- System: sub-system 'None' |
| 73 | +## |-- |-- |-- |-- |-- Connectors: |
| 74 | +## |-- |-- |-- |-- |-- |-- (u, Causality.input, SignalType.Real, None, 'None') |
| 75 | +## |-- |-- |-- |-- |-- Elements: |
| 76 | +## |-- |-- |-- |-- |-- |-- FMU: Add2 'None' |
| 77 | +## |-- |-- |-- |-- |-- |-- |-- path: resources/Add.fmu |
| 78 | +## |-- |-- |-- |-- |-- |-- |-- Connectors: |
| 79 | +## |-- |-- |-- |-- |-- |-- |-- |-- (u1, Causality.input, SignalType.Real, None, 'Connector of Real input signal 1') |
| 80 | +## |-- |-- |-- |-- |-- |-- |-- |-- (u2, Causality.input, SignalType.Real, None, 'Connector of Real input signal 2') |
| 81 | +## |-- |-- |-- |-- |-- |-- |-- |-- (y, Causality.output, SignalType.Real, None, 'Connector of Real output signal') |
| 82 | +## |-- |-- |-- |-- |-- |-- |-- |-- (k1, Causality.parameter, SignalType.Real, None, 'Gain of input signal 1') |
| 83 | +## |-- |-- |-- |-- |-- |-- |-- |-- (k2, Causality.parameter, SignalType.Real, None, 'Gain of input signal 2') |
| 84 | +## |-- |-- |-- |-- |-- Connections: |
| 85 | +## |-- |-- |-- |-- |-- |-- .u -> Add2.u1 |
| 86 | +## |-- |-- |-- |-- |-- |-- .u -> Add2.u2 |
| 87 | +## |-- |-- |-- Connections: |
| 88 | +## |-- |-- |-- |-- Sine.y -> Add.u1 |
| 89 | +## |-- |-- |-- |-- Sine.y -> Add.u2 |
| 90 | +## |-- |-- |-- |-- Sine.y -> sub-system.u |
| 91 | +## |-- UnitDefinitions: |
| 92 | +## |-- |-- Unit: s |
| 93 | +## |-- |-- |-- BaseUnit: s: 1 |
| 94 | +## |-- |-- Unit: rad |
| 95 | +## |-- |-- |-- BaseUnit: |
| 96 | +## |-- |-- Unit: Hz |
| 97 | +## |-- |-- |-- BaseUnit: s: -1 |
| 98 | +## |-- DefaultExperiment |
| 99 | +## |-- |-- startTime: 0.0 |
| 100 | +## |-- |-- stopTime: 1.0 |
| 101 | +## |
| 102 | +## info: Result file: SimpleSimulation16_res.mat (bufferSize=1) |
| 103 | +## default.Sine.y : -2.4492127076447545e-16 |
| 104 | +## default.sub-system.u : -2.4492127076447545e-16 |
| 105 | +## default.sub-system.Add2.u1: -2.4492127076447545e-16 |
| 106 | +## default.sub-system.Add2.u2: -2.4492127076447545e-16 |
| 107 | +## endResult |
0 commit comments