Comments (10)
Yes that's true, but from a user perspective it may be tedious to insert FIBs as separate FMUs, especially for large composite models. Master functionality for activating FIBs for any combination of signals without modifying the actual composite model structure would be a fully industy relevant feature. As far as I know, among FMI masters this feature would be unique for OMSimulator (but for the moment not super critical).
from omsimulator.
This is how to create an fib:
--oms_faultInjection("PI_Controller.co_sim.I.y", oms_fault_type_bias, 0.2)
oms_faultInjection("PI_Controller.co_sim.I.y", oms_fault_type_gain, 10.0)
from omsimulator.
If I understood it correctly, this functionally could be easily realised using an FMU as fault injection block. It basically would have one input and one output and put in the middle of the connection(s) to investigate. It could support all the different fault types described in the document.
from omsimulator.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
from omsimulator.
Should we assign a FIB to an output, input, or connection?
Proposal
One option would be to directly assign the fault injection to an output. The original output, e.g. model.root.unit.y
, could then be redirected to model.root.unit.y.$original
, and model.root.unit.y
would be calculated based on its original value and the fault type.
API: oms_faultInjection(<output name>, <fault type>, <fault value>)
.
from omsimulator.
Yes I think it shoul be on the output, seems to be in line with the reference mentioned above. A typical example is to simulate sensor failure.
from omsimulator.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
from omsimulator.
I think current proposal above (on output) is good.
from omsimulator.
I will consider the following fault types:
typedef enum {
oms_fault_type_none, ///< y := y.$original
oms_fault_type_bias, ///< y := y.$original + faultValue
oms_fault_type_gain, ///< y := y.$original * faultValue
oms_fault_type_const ///< y := faultValue
} oms_fault_type_enu_t;
from omsimulator.
It is now available for testing. Documentation and Python bindings will be added soon.
from omsimulator.
Related Issues (20)
- AttributeError: 'OMSimulator' object has no attribute 'getSubModelPath' HOT 1
- exportSSVTemplate() does not export template files for fmu's inside subsystem
- Logfile not closed after terminating simulation?
- SSB - Signal Dictionary support? HOT 2
- replaceSubmodel6.py throws errors HOT 20
- Co-simulation FMU prints double rows HOT 1
- CSV fields containing commas must be quoted
- importSnapshot in Python bindings not implemented HOT 7
- CVode error doesn't stop simulation / infinite loop
- SSP Co-simulating two FMUs creates "Unknown signal" error.
- Enumeration types declared in SystemStructure.ssd must have required attribute "name"
- Implement xerces validation for SSV, SSM and modeldescription.xml HOT 1
- Unable to change parameter values using replaceSubModel in OMSimulator Python HOT 8
- Report default values of parameters in OMSimulator --help output
- Use DefaultExperiment tag to set up simulation parameters when simulating a single FMU HOT 6
- CVODE should not be reset after each time step in OMSimulator, unless events were triggered
- Implement proper state event detection in OMSimulator
- Make new patch release 2.1.2 of OMSimulator HOT 4
- fmi2SerializeFMUState HOT 1
- oms.exportSSVTemplate problem
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from omsimulator.