RE: Modelica Conference 2002
Herman Bruyninckx <[email protected]>
| Newsgroups | gmane.science.robotics.orocos.user |
|---|---|
| Message-ID | <Pine.LNX.4.44.0202070827420.16270-100000@pc25-213.mech.kuleuven.ac.be> |
On Wed, 6 Feb 2002, Tiller, Michael (M.M.) wrote: [...about Modelica...] > > > My guess is that you are really interested in a simulator, correct? > > > > A simulator indeed, but more than that: code that can be used on-line > > in a real system. > > Do you mean for doing embedded system code generation? Are you > talking about logical control or continuous behavior. I'm talking about the dynamics algorithms of robots, to be used by the on-line controllers. Preferably with the ability to switch control laws on-line, which is needed, for example, for controlling a walking robot (during subsequent phases of a step). [...] > Well, the full Modelica language would require the ability to solve > continuous equations and respond to events based on conditional > expressions (involving continuous and discrete variables). That is > the basic part. The complete semantics include some complexities > for doing things like initialization of discrete controllers so that > the controller starts in "steady state". Also, for systems of DAEs > there is the issue of index reduction (this need not be handled > directly if you use a DAE solver, but it is my understanding that > the general numerical solvers are really only able to go up to > index-2 DAEs while the Modelica language allows arbitrary index > DAEs). There are several other issues but these are the ones I > remember off the top of my head. Ok, I see and know these problems. But for use in a controller, we don't need these solvers: nature does that job for us :-) I just want to reuse as much as possible from the modelling and specification efforts. [...] > > That I understand :-) But I still sort of dislike its `feature' that > > extra things (such as 3D object information) have to be given in > > ``comments''. > > Well, that isn't quite a fair statement. Sorry about that :-) > The 3D object information > is not stored in a comment. In Modelica (as in most languages), a > comment is a free-form string that only provides documentation. In > Modelica both 3D representations and 2D representations are stored > as *annotations* which have a specific syntax, allow for structured > data representation and can be associated with specific instances or > definitions. Okay, but just calling things by another name doesn't bring us any further :-) > > And how good would Modelica be as a general controller description language? > > It isn't clear to me if you are talking about continuous controllers > or discrete controllers. Hybrid controllers! That is, with continous and discrete parts. In robotics, you quickly end up in this hybrid controller area. > I would need an example of the kind of > controller you are talking about. Walking robot: in each phase of the step, one uses a continuous controller, but there are many (more or less continuous) transitions between phases: swing to heel contact, toe contact to release, etc. > The purpose of Modelica is to try > and capture a reasonable set of behavior types in a single language. > If it can't be used as a general controller description language, I > would be very interested (as would the rest of the design group) in > understanding why and seeing if the issue could easily be addressed. That would be a nice project :-) I am on the outlook to participate in it. > We are not interested in creating some all encompassing, monolithic > language but I see no reason why the application you describe would > not fit within the existing framework. That's the reason why I like XML: it's never a monolithic thing, not because of its inherent properties, but because there are so many tools available to transform from and to XML. > Are you familiar with Simulink and Stateflow? If so, could you > perhaps describe your application in the context of those tools > (since I am somewhat familiar with them)? I know these, but the reason I like Modelica is that Simulink leads to spagetti code quickly, while Modelica is inherently much more component-based and object-oriented. I mean, I see students connect anything to anything in Simulink, while they should be able to do that. A good interface (human, parser) to Modelica should make these errors impossible. Herman