24 ms·
Does MATLAB also compete in the same field?
by whereistimbo 2y ago
Does MATLAB also compete in the same field?
- toxik 2y agoSounds like Simulink to me, which is one of the major MATLAB programming environments. ETA: Apparently MathWorks has Simscape in this category.
- sampo 2y agoAnd Mathematica has this: https://www.wolfram.com/system-modeler/ https://www.wolfram.com/system-modeler/
- anothertroll123 2y agoYeah but that's a Modelica compiler and environment too.
- anothertroll123 2y agoI would love to use Modelica but in my field Simulink is king
- hazrmard 2y agoMATLAB/Simulnk is imperative. They have signal flow/causal approach. So you should know ahead of time which variable causes another variable to change i.e. which is defined first. Modelica is acausal. You define the variables and how they are related (equations). The compiler handles variable dependencies and resolution internally. There are pros & cons of each. Both are used for simulating cyber-physical systems.
- zelphirkalt 2y agoI seem to have a problem understanding "acausal". Is its meaning "not causal"? To me that wouldn't make much sense and sounds like another buzzword. The software still runs inside a computer. Everything inside of it is causal. And nust because the compiler decides in what order to do what, that also doesn't make it not causal, since surely the compiler follows some well known rules that _cause_ it to decide this way or that way. And surely defining relations _is_ in a way defining the causal ... relations. So what is really the meaning of "acausal" in this context?
- adastra22 2y agoIt means data flow is bidirectional.
- adgjlsfhk1 2y agoIt's like the difference between an imperative framework and a declarative one. In a causal modeling system you as the user are responsible for writing out the causality of your model. In an acausal system, you write what components you have and how they connect and part of the compilation process is "causalization" i.e. taking the elements and connections and inferring from that the direction of causality. This makes modeling much easier because causality doesn't compose. Adding a new component to a model can totally change what the optimal causalization is, so using an acausal framework the compiler will figure that out, but in a causal framework the user has to re-derive the causality of their model.
- michaeltiller 2y agoIt means the causality is not built into the components but instead decided once your system is defined. The point is that you can make a change to the causality without having to refactor major parts of your model. It also means, even without the factoring, that the causalization (determining what is computed in terms of what) is done for you by the compiler, which spares you from doing lots of tedious, time-consuming and error prone work.