We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

MuPhyN - MultiPhysical Nexus

00:00

Formale Metadaten

Titel
MuPhyN - MultiPhysical Nexus
Serientitel
Anzahl der Teile
542
Autor
Lizenz
CC-Namensnennung 2.0 Belgien:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
Identifikatoren
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
Abstract
Matlab + Simulink is a very powerful tool. This tool allows engineers to simulate real devices. In open sources, some tools exist, such as Scilab + Xcos. With the growing community of Python, some tools appeared: NumPy, SciPy... Those tools intend to propose a Matlab alternative environment equivalent for Python. MuPhyN is an interface that is intended to reproduce the Simulink capabilities. The goal is to produce a community-based simulation software. It is based on a Qt interface and uses a simulator core. It is fully written in Python and uses YAML as the descriptive language. The library feature proposed allows users to add as many boxes and schedulers as they want. The already created boxes take advantage on the SciPy and NumPy libraries to produce their behaviors.
14
15
43
87
Vorschaubild
26:29
146
Vorschaubild
18:05
199
207
Vorschaubild
22:17
264
278
Vorschaubild
30:52
293
Vorschaubild
15:53
341
Vorschaubild
31:01
354
359
410
MultiplikationSystemprogrammierungComputersimulationTheoretische PhysikSimulationKette <Mathematik>MechatronikKollaboration <Informatik>Forschungszentrum RossendorfGraphische BenutzeroberflächeComputersimulationSoftwareProjektive EbenePhysikalisches SystemKette <Mathematik>SoftwareentwicklerDiagrammVorlesung/Konferenz
SimulationMultiplikationSoftwareTheoretische PhysikDifferenteOffene MengeComputersimulationPhysikalisches SystemVariableProjektive EbeneDifferenteStellenringTypentheorieComputeranimation
SimulationPunktComputersimulationPhysikalisches SystemAnalogieschlussUmsetzung <Informatik>Numerisches VerfahrenMaßstabTrägheitsmomentMereologieMultiplikationComputersimulationTrägheitsmomentPhysikalisches SystemPunktOrdnungsreduktionMultiplikationsoperatorMereologieDifferenteQuadratzahlAnpassung <Mathematik>Vorlesung/Konferenz
Physikalisches SystemTrägheitsmomentMereologiePunktMaßstabTheoretische PhysikSoftwareSimulationMultiplikationComputersimulationAnpassung <Mathematik>DatenstrukturOpen SourceAbgeschlossene MengeAusgleichsrechnungSystemprogrammierungMathematikAusdruck <Logik>MultipliziererLeistung <Physik>KonstanteSichtenkonzeptElektronische PublikationGerichteter GraphGraphGeräuschKippschwingungSinusfunktionQuadratzahlGreen-FunktionGraphische BenutzeroberflächeSoftwareBenutzerfreundlichkeitComputersimulationRegulator <Mathematik>FunktionalResultanteProjektive EbeneKartesische KoordinatenOpen SourceQuaderTropfenPhysikalisches SystemStrömungswiderstandLeistung <Physik>GraphMultiplikationsoperatorAbgeschlossene MengeNummernsystemKonditionszahlComputeranimation
SimulationGraphDefaultProgrammbibliothekSoftwareProzess <Informatik>QuaderProzess <Informatik>Kartesische KoordinatenComputersimulationDefaultGraphVorlesung/Konferenz
GraphSimulationProgrammbibliothekDefaultProzess <Informatik>SoftwareMathematikOpen SourceMultiplikationAdditionWärmeübergangFunktion <Mathematik>QuadratzahlGeräuschGoogle Street ViewDerivation <Algebra>DigitalfilterComputersimulationKartesische KoordinatenDefaultQuaderGleitendes MittelGraphWärmeübergangAnaloge SignalverarbeitungOffene MengeOrdnung <Mathematik>ComputeranimationVorlesung/Konferenz
DefaultMathematikOpen SourceFunktion <Mathematik>WärmeübergangDigitalfilterDerivation <Algebra>AdditionMultiplikationQuadratzahlGeräuschGraphProgrammbibliothekSoftwareElektronische PublikationQuaderKartesische KoordinatenProgrammbibliothekVorlesung/Konferenz
Elektronische PublikationSoftwareCodePlot <Graphische Darstellung>DatensichtgerätGraphMultiplikationsoperatorQuaderKonditionszahlElektronische PublikationPlotterCodeDeskriptive StatistikGraphComputeranimation
SoftwareDatensichtgerätSimulationPlot <Graphische Darstellung>Open SourceGraphInformationVersionsverwaltungProgrammbibliothekGerichteter GraphElektronische PublikationCharakteristisches PolynomProgrammbibliothekQuaderMetadatenDefaultKartesische KoordinatenParametersystemFunktion <Mathematik>Charakteristisches PolynomTypentheorieVorlesung/KonferenzComputeranimation
GraphCharakteristisches PolynomParametersystemSoftwareZeichenketteEin-AusgabeZahlenbereichChi-Quadrat-VerteilungDefaultZählenDefaultEin-AusgabeZahlenbereichSpannweite <Stochastik>ParametersystemVorlesung/KonferenzComputeranimation
Charakteristisches PolynomParametersystemZahlenbereichEin-AusgabeDefaultZeichenketteGraphSoftwareElektronische PublikationElektronische PublikationVorlesung/Konferenz
GraphSoftwareSimulationOrdnungsbegriffPlot <Graphische Darstellung>FunktionalPlotterQuaderProzess <Informatik>Vorlesung/KonferenzComputeranimation
SimulationPlot <Graphische Darstellung>Elektronische PublikationGraphSoftwareDatenstrukturElektronische PublikationDeskriptive StatistikPlotterCodeQuaderProgrammbibliothekFunktionalVorlesung/KonferenzComputeranimation
ProgrammbibliothekDatenstrukturSoftwareProgrammbibliothekQuaderVorlesung/Konferenz
ProgrammbibliothekElektronische PublikationDatenstrukturSoftwareProgrammierumgebungVariableParametersystemVariableComputersimulationProgrammierumgebungInteraktives FernsehenParametersystemComputeranimation
ProgrammierumgebungVariableParametersystemSoftwareSystem DynamicsComputersimulationKartesische KoordinatenVariableVorlesung/Konferenz
VariableParametersystemSystem DynamicsProgrammierumgebungSoftwareMaßerweiterungComputeranimation
VariableCodeSichtenkonzeptCliquenweiteWinkelParametersystemPuls <Technik>Elektronische PublikationInformationThreadSynchronisierungOpen SourceElementargeometrieLokales MinimumEin-AusgabeGraphATMGerichteter GraphComputersimulationBetafunktionParametersystemKartesische KoordinatenInformationComputersimulationComputeranimation
Lokales MinimumVariableFontSummierbarkeitSichtenkonzeptCodeInformationThreadSynchronisierungPuls <Technik>SinusfunktionElementargeometrieWinkelParametersystemPhasenumwandlungBetafunktionComputersimulationMooresches GesetzOpen SourceElektronische PublikationCliquenweiteZweiGamecontrollerComputeranimation
LastKontrollstrukturSoftwareQuaderSchnitt <Mathematik>Projektive EbeneComputeranimation
SoftwareProzess <Informatik>SimulationTheoretische PhysikMultiplikationSchedulingProgrammierumgebungFormale SpracheProzess <Informatik>ProgrammierumgebungComputersimulationServerLeistung <Physik>QuaderKartesische KoordinatenMultiplikationsoperatorFormale SpracheÄußere Algebra eines ModulsVorlesung/Konferenz
VersionsverwaltungSoftwareSoftwareentwicklerAppletInformationInstallation <Informatik>Kartesische KoordinatenVerschlingungBenutzerfreundlichkeitProjektive EbeneOpen SourceInteraktives FernsehenMailing-ListeGruppenoperationComputeranimation
SoftwareVariableTrägheitsmomentMultiplikationsoperatorWellenwiderstand <Strömungsmechanik>SchedulingBitAnalogieschlussFunktionalProjektive EbeneMereologieInterface <Schaltung>Funktion <Mathematik>MathematikSoftwareComputersimulationPhysikalisches SystemKartesische KoordinatenQuaderPhysikalismusStellenringRechter WinkelDruckspannungSchnittmengeProzess <Informatik>PunktComputeranimationVorlesung/Konferenz
Flussdiagramm
Transkript: Englisch(automatisch erzeugt)
Hello, everyone. I'm Dylan Fieve, and I'm a research engineer at the Seraf Technik Research Center in Mons in Belgium. Today I will present to you the software Muffin, which is a graphical tool for modeling and simulating multiphysics systems. So
the project started with a research project. It is a collaboration with Thales Alenia Space. It's a research project funded by the Wallonia, so a public fund of Belgium.
And the goal of the project is the development of a simulation method to assist in the design of mechatronic chains with a complete multiphysics model. So in other terms, what are the goals of the project? It exists different kinds of multiphysics simulation
software. The global variable simulation type, like Open Modelica, which simulates a system by item like a motor, etc. And we have a local variable simulation, like Finite Element
Simulation System, Finite Element Simulation for Multiphysics System. And both types of simulation are not compatible with each other, so the research project tried to find another
way to simulate a multiphysics model with using electrical analogous modeling. So the method we want to develop is a simulation in three points. So the first step is to
convert physical system to electrical analogous system. The second step is to convert those electrical analogous model to numerical model. And the last step is reducing numerical model with evaluating the influence of each part of the system to the other, to the rest of the
system. And a second point, a more important point for our research is a time-squared adaptive model reduction. So how to explain that? In a system, we have a low inertia part in the
system and high inertia, so low inertia part of the system are a part of the system that evolve quickly in the time and high inertia evolve slowly with the time. So
when we make a simulation, a physical simulation, we have to find an optimal step size. If we have
a too large step size, the accuracy will decrease. And if we have a smaller step size, we will have a sufficient accuracy. But if the step size is too much small, the time
to execute the simulation will be increased for a little gain of accuracy. So we have a multiple inertia part in a multiphysics system and we want to find a way to optimize
the simulation by using different time squares in the system. So for the project, we have some requirements when we will choose the simulation software. We need a multiphysics
simulation software. This one must be adaptable. It must be able to adapt the model as a function of the condition of simulation, like the time, et cetera. And last but not least,
the application must be user friendly. So we have Simulink with Matlab or X-Cost with Scilab. That would be a very, very good application for the project. But Simulink
is expensive. It's a closed source software and not exactly adapted to our requirement. And it's a closed source software, so we couldn't modify Matlab like we wanted. And for X-Cost,
it's not user friendly. And like Matlab, it doesn't exactly fit with the project requirement. So we decided to develop our own software that leverages existing powerful Python libraries.
Here is an overview of our application. It has been used in a regulation system, and here we have an example of results for this regulation system. So the software,
it's a graphical tool for modeling and simulating multiphysics systems. Here is a quick demonstration of how to use the application. So to build the simulation graph, it's just a drag
and drop from box libraries to a scheme drawing. And then once the simulation graph is done, you can easily launch the simulation. We can use multiple projects at the same time.
Save and load a project, et cetera. So what is the application? The application is a simulation graph builder. We have provided some default libraries to use the application if you install
it on your computer. But you can easily add your own process boxes and can solve all the simulation you've been building in the application. We have implemented some default
simulation solver, but you can also add your custom simulation solver. So here is a list of default boxes in the application. We have a mat application like addition, multiplication,
derivative, et cetera, signal processing with transfer function, et cetera, sources, an order like a graph displayer, and also open modeling, simulation embedder, et cetera.
So if you want to install the application on your PC and want to create your own library of boxes, if we want to create our own box, we have to know that a box is defined by two files.
The first one is a description file written in YAML. The second one is a code file written in Python. And there is one condition to make it as a box. It's that both files must share the same
base file name. So how to create a box? I will take an example. I will create a box that is able to display graphic data in a graph. So the goal of the box is to display data
in a two-axis plot. In the X-axis, the time and the Y-axis, the value. The box must be able to display data from one or more sources.
And the graph must be displayed at the end of the simulation. There is how the box must behave during the simulation and at the end of the simulation. So how to create the box? The first step is to define the metadata of the box with the box name, the library name,
version, author, and creation date. It's just a metadata of the box. Then we will define the characteristic of the box. What I mean by characteristic is all the inputs, all the outputs of the box, and the parameters.
So for the box, for the graphical box, we need three parameters. The title, the label for Y-axis, and the label for X-axis. We must define the type of the parameter,
and we can define a default value. For the outputs, the box doesn't require any outputs. And for the inputs, we have three conditions. The first one, we have defined a default count
of inputs to one. So the box, by default, will have one input. The number of inputs must be unlimited. So we must write the parameter is infinite to true.
And the number of inputs must be not limited. And that means we can define a range of number of inputs. So we can limit, for example, the number of inputs from one to five, for example. But in this case,
we won't define any limit. The next step is to define a behavior. So how to define the behavior of the box? We write a Python file we write a Python file. When we write a Python file, we can use all of the available Python
libraries. We have to define three functions. The first one, an init function.
Sorry, an init function. In our case, this function will init the plot. The second one is during the simulation. What will the box do? What is the process inside the box during the simulation? In our case, it's saving data.
And what will the box will do after the simulation? And in our case, it's plot the data. Then the next step is to connect the description file and the code file, the
Python file. To connect both, you only have to write the name of the associated function. Then we have created a box. Now we want to add it in a library. So a library is just
a collection of boxes. In practical, a library is just a folder containing a YAML file and Python file. For now, a library is a folder that doesn't accept subdirectories. At the time,
we can't put our file in subdirectories. It won't be recognized. So we have our folder. We add our first box with our two files, the second one, etc. And it's how we make a library.
Another feature we added to muffin is an IPython interaction. So muffin can be run in an IPython session. It means that muffin can access all the
IPython variables, all variables declared in the IPython environment. We can use all these variables as simulation parameters. And the access variable is dynamic. It means that
we can launch the application at the beginning of the session, declare variables in the IPython and use it dynamically. So if I launch a first simulation with some parameters,
I update it after one simulation. If I launch a second simulation, the second simulation will take the new value into account for the new simulation. How to use it in an IPython session?
The first step is to load the muffin extension with the command loadext. And then just run the muffin command. There is a demonstration of how it works. So we have firstly declared our
parameter in a notebook. We will create a simulation with two signed signals. And then we will configure all the parameters.
We have implemented some information for the user. When he writes a wrong
variable name, the application will give the information to the user. So here we have all of both signals. The first one at 10 hertz with an amplitude of 10.
And the second one at 5 hertz with an amplitude of 7. I will launch the demonstration. Then we will update the value of the second signal, the amplitude of the second signal
only. And we have a signal with the new values. We have implemented other control features like saving and loading projects, working with multiple projects at the same time,
copying past boxes and cut also, deleting blocks, then cancel action, etc. So in conclusion, we have developed our own multi-physics simulation software.
The advantages of this application is that the application is entirely coded in Python. So we have access to many powerful libraries like NumPy, SciPy, etc.
for the application and for the custom processing boxes and simulation servers. The application is very adaptive. What I mean by that is that you can easily implement your own custom boxes and custom simulation server.
And the application can be associated to an IPython environment. So Muffin offers a Python alternative to MATLAB plus Simulink.
These advantages of the application, it's written in a scripting language. So we have higher solving times. It's a young application at the time, so we need more time to offer a lot of features. And we need more users to improve the experience.
So what's next? We will have to work on compatibility. We want to make the transition from PyQT 5 to PyQT 6. And we want to add more interactivity with the user to improve the user-friendliness
of the application. Here is a list of the contributors of the project. And here are the links of the project. If you want to read all the source code,
you have the link to the GitLab. And if you want to try the application, we have a package available on pipe. If you want to try to install it directly in your Python, you can use pip install Muffin.
So thank you for your attention. If you have some questions.
Electrical analogy to make the calculation, you use the electrical equation, right? Can you repeat? I will repeat after.
At the beginning of the presentation, you said you come from physical... Yes, we want to make mechatronics simulation. And we want to convert all the part of the system to electrical analogues.
Why did you choose electrical simulation? We don't choose any... At the time, we don't choose any software like... Sorry, I'm a bit stressed. Electrical simulation, I don't remember the name. But
the point with those software is that the model is not dynamic. We can't try a lot of sets easily. But the aim of our application is to, with the time, make a box to
create an interface to other multi-physics applications. We don't want to replace those applications. We just want to create an interface to those applications to use it in our research
project. If I can rebound on that, because it's an important project. The idea is a lot of process can be simulated with impedance like thinking, like thermal stuff, mechanical stuff. You had already between the physical aspect and the electrical impedance step.
So my question was, how do you use electrical equations, because they are simpler to solve, according to the physical equation? Sorry guys, there is a stream, people watching on the web, you have to go through the mic. Maybe you can go
instead and use the mic if you want to answer that question. Oh, you can repeat, maybe. Yeah, that would be great, if you could at least summarize. The goal is for the user to understand better the problem. Okay, the goal of the project, of the application, is to improve the comprehension of the system.
Is it time to make it real-time to accelerate the wide process? Sorry, I don't have heard. Can we in the future make a value in the entrance, like the boxes,
and change directly the value and see the output directly with the hit play button? Sorry, I don't have heard the question. I'm a bit deaf.
The question was, can you do a real-time simulation? No, the simulation, can we do a real-time simulation? For now, it's not possible. We want to implement that in the future.
For now, the application, we just run the initialization function, then run the simulation function and the ending function, and all the functions are run in one time.
At the time, we don't have implemented a real-time overview of the simulation, but we plan in the future to add this feature.
So, in the beginning, you talked about the slow paths, and the high inertia and lower inertia paths of your simulations. Yes. And you said that your software was designed to deal with local variable solutions and global variable simulations.
How does that translate into what you've shown us? Where is the global variable part? So, I'll repeat the question. I've said that we have in a system a low inertia part and high inertia part,
and also local variable simulation software and global variable software. How does this translate into what you've shown us? Or does it implement it in the application?
Yeah, where is it in the application? How did this concept translate into the application you've shown us? At the time, it's not implemented. It's the background of the project.
All right. But it leads to a scheduler problem. So, the idea is we want to have two schedulers, and then, at this time, we wait to keep for the three. Discussion can go on in the whole course.
That's a great part of the first time. So, go on with the discussion. We should switch speakers now. Thank you.