Does anyone use System Modeler for process-based discrete event simulations? e.g. supply chain logistics simulations?
Does anyone use ARENALib / SIMANLib / DES / DEVS?
I am evaluating if I could use System Modeler for this.
I think Only Sim Events from Mathworks and MATLAB can help you with this . Is very powerfull
The StateGraph components in SystemModeler will work for this. You can also make your own custom blocks with discrete event behavior customized to your application.
I have the same requirement.Deslib does not work and the WSM documentation is really poor. I am interested to come in contact with you to discuss this topic. My phone nr is +49 175 4109108.
As Neil said, I would recommend the StateGraph library (included in MSL) for this purpose. Deslib has currently not been tested to work in WSM (as the library web page states, only tested with Dymola).
Volker, regarding your comment on the WSM documentation, what documentation is it exactly that you are referring to? Are you referring to the documentation in Deslib?
about Deslib: coming from Mathematica I bought WSM 4.2 with the main objective to analyze waiting queues (more complex than the examples for MMA QueueingNetworkProcess, with branches etc.; I needed that for simulating and optimizing waiting queues in airports). This should be a typical application for an environment like WSM. But: no queues, Deslib does not work, no hints, no chance to solve my problems with MMA/WSM (Sorry, this is just my my frustration).
About WSM documentation: I expected a documentation like MMA provides. Definition, Details, Examples (Basic, Scope, Applications, Properties&Relations, Neat Examples). I love MMA.
But when I clicked on WSM Documentation Center > Additional Libraries > SystemDynamics > Overview > Population I got the information:
"The System Dynamics methodology is frequently being used for the description of complex interactions between different biological species. This application area, which forms part of the ecological sciences, is usually referred to as population dynamics. This is still one of the most popular application areas of the System Dynamics methodology with thousands of publications describing different aspects of the dynamics of ecosystems."
In the Class Browser under UsersGuide > Overview > Population (double click) the result is even shorter:
"class Population 'Population Dynamics' extends Modelica.Icons.Information; end Population".
This is found when I tried to use an official library of WSM. There is nothing wrong with these sentences but they are not helpful ! I expect a "How to", a "FAQ" etc. I am not guided by this users guide.
There are many good textbooks about MMA but I could not find anything like this for WSM, although there are some books about OpenModelica, e.g. Fritzson et. al. Should I better use OMEdit? Why pay for WSM?
I wanted to stay in the Wolfram Universe but at now I found that Arena or Anylogic do the job much better and OMEdit does for free.
Maybe I am wrong. In this case it would make me very happy if you (or others reading this discussion) could help me with some guiding hints.
WSM/Modelica is object-oriented and it thus makes a lot of sense, that the documentation for libraries (= package = object) and its components (= objects) are tied to these instances (e.g. the information icon). I am building a System Dynamics library of my own and I find that this kind of "documenting on the fly" is a god's end - but, alas, one has to be adamant in making use of it as an author of a package.
Personally, I do not like Cellier's appraoch to System Dynamics as he sticks to Blocks only (e.g. causal flow of information). While that is esssentially how System Dynamics works, it leads to ugly formulations: Putting more than one flow to a stock needs the same number of input connectors or an array of input connectors which is akward to model.
Acausal connectors automatically add flows on the other hand (just as one would expect). Take a look at how Peter Junglas has approached System Dynamics modeling (here) and also check out his book.
I have not done discrete-event modeling (using an "oven" or a "conveyor" in Vensim has done it until now and these more discrete components can be readily implemented in Modelica, cf. Junglas also) but as far as I can tell Modelica 3.3 has introduced features relevant for event management and hybrid modeling (see the release notes for StateGraph2 which indicate the fundamental incompatability of StateGraph2 with Modelica). I wonder when Version 3.3 will be implemented in WSM?
PS: For the changes in Modelica 3.3 with regard to state machines see Fritzson, Principles of object-oriented modeling and simulation with Modelica 3.3 (Chapter 13) and the OpenModelicaUserGuide.
I have tried Deslib's example models in OpenModelica as well, and get the same errors as I do in WSM. I'm not sure if there are some special Modelica language constructs here that only Dymola supports or what exactly is going on. Modeling queues and discrete-event systems is slightly uncommon to do in the Modelica language (as shown by the low number of libraries supporting this), meaning that there might be some special implementations in Deslib that all Modelica tools don't support (I think you would have to ask the author, Victorino Sanz, about a comment on the status of the library in other tools to get a good answer). Unfortuanetly, it seems like the library is no longer being developed, which limits the chances of it being tested and modified to be supported by OM or WSM, or other Modelica tool vendors.
Regarding documentation of Modelica libraries , such as the System Dynamics library (the documentation you quoted), this documentation is provided by the library, which means that the documentation in WSM will show the documentation for the library. In the case of the System Dynamics library, I can agree that it is a bit sparse. We are happy to assist if you have any specific questions regarding the System Dynamics Library.
Information specifically about WSM is found in the built-in documentation. However, other books are useful when using WSM, such as Fritzson's book "Introduction to Modeling and Simulation of Technical and Physical Systems", which is about modeling and the Modelica language in general. Other books on the Modelica language and modeling include Tiller's "Modelica by Example" and Fritzson's "Introduction to Modeling and Simulation of Technical and Physical Systems with Modelica" (Which in this case contains an appendix with OpenModelica specific information).
To be able to model a system in a modelica tool in general, a library needs to be in place (or be created) that can do this. When it comes to discrete-event systems, Deslib (only supported by Dymola it seems) is the only library I can find, except for the already mentioned StateGraph library and the SystemDynamics library.
I find it easier to just use the built-in event handling in Modelica. The problem with libraries is that it becomes difficult to understand how something was modeled. For a simple object such as a mass or resistor, it is straightforward. Most of the difficult debugging that I have encountered is when I have relied on someone's library/model and realized that what they did was not consistent with my understanding of the model. Modelica is such a rich language, I suggest that you program your own blocks or use StateGraph blocks if they fit your requirements. In our models, I wound up doing my own blocks (mixed with built-in blocks) because they were simpler and easier to debug and verify. An event is triggered and my block responds to the event.
The built-in Packages are well vetted and are reliable. It is a mistake to add Packages that are publicly available but that you really do not understand -- In my experience you will likely lose more time than you save.
meanwhile my experience is the same. But the argumentation (to pass on packages except official ones) is somewhat uncomfortable. One of the great strengths of systems like R is that there is a living community producing libraries with high quality.
And again: Wolfram should anticipate that buyers of WSM want to model queues. This use case is really obvious in the context of modeling software and not beside the point.
@Markus: you kindly offered help for questions about SystemDynamics.I will formulate my questions carefully and post them into this discussion.