Modelica is an object-oriented, declarative, multi-domain modeling language for component-oriented modeling of complex systems, e.g., systems containing mechanical, electrical, electronic, hydraulic, thermal, control, electric power or process-oriented subcomponents.

لغة مودليكا هي لغة برمجة تستخدم في النمذجة وهي كائنيّة التوجّه (شيئية أو بالإنجليزية: object-oriented) متعددة المجالات وتستخدم في النمذجة الموجّهة للمكوّنات ( الهندسية مثلا ) في أنظمة معقّدة مثل تلك الأنظمة التي تحوي مكونات جزئية ميكانيكية أو كهربية أو إلكترونية أو هيدروليكية أو حرارية أو خاصة بالتحكم أو خاصة بالقدرة الكهربائيّة أو موجّهة لعملية معيّنة.
--~~~~ Easy Engineering الهندسة سهلة

The free Modelica language is developed by the non-profit Modelica Association.

لغة مودليكا هي لغة حرة (مجانية ومفتوحة المصدر) تم تطويرها بواسطة جمعية مودليكا وهي جمعية غير ربحيّة.
--~~~~ Easy Engineering الهندسة سهلة

The Modelica Association also develops the free Modelica Standard Library that contains about 1360 generic model components and 1280 functions in various domains, as of version 3.2.1.

جمعية مودليكا تطور أيضا مكتبة مودليكا القياسية الحرة والتي تحوي حوالي 1360 نموذج عام للمكوّنات و 1280 وظيفة برمجيّة (دالّة برمجية) في مختلف المجالات، وذلك حتى الإصدار 3.2.1 .
--~~~~ Easy Engineering الهندسة سهلة

Characteristics[edit]

خصائص ومميزات [عدل]
--~~~~ Easy Engineering الهندسة سهلة

While Modelica resembles object-oriented programming languages, such as C++ or Java, it differs in two important respects.

تشبه لغة مودلكا لغات البرمجة كائنية التوجه مثل سي++ أو جافا، إلا إنها تختلف عنها في جانبين من الجوانب المهمة.
--~~~~ Easy Engineering الهندسة سهلة

First, Modelica is a modeling language rather than a conventional programming language.

الأول هو أن لغة مودليكا هي لغة نمذجة وليست لغة برمجة تقليدية.
--~~~~ Easy Engineering الهندسة سهلة

Modelica classes are not compiled in the usual sense, but they are translated into objects which are then exercised by a simulation engine.

فالأصناف (الفصائل أو بالإنجليزية: classes) في لغة مودليكا لا يتم ترجمة الكود البرمجي لها بالطريقة المعتادة، بل يتم تحويل الأصناف إلى كائنات برمجيّة (أشياء برمجيّة أو بالإنجليزية: objects) وبعد ذلك تتم التعامل معها بواسطة محرك المحاكاة (بالإنجليزية: simulation engine).
--~~~~ Easy Engineering الهندسة سهلة

The simulation engine is not specified by the language, although certain required capabilities are outlined.

ومحرّك المحاكاة لا يتم تحديده بواسطة اللغة (أي: لغة مودليكا)، ولكن بعض الإمكانيات التي يجب أن تكون متوفرة فيه هي التي يتم تحديدها.
--~~~~ Easy Engineering الهندسة سهلة

Second, although classes may contain algorithmic components similar to statements or blocks in programming languages, their primary content is a set of equations.

والجانب الثاني هو أنه بالرغم من أن الأصناف (الفصائل أو بالإنجليزية: classes) قد تحوي مكوّنات خوارزميّة تشبه تلك التي توجد في العبارات (أو الجُمل) والبلوكات البرمجيّة في لغات البرمجة التقليدية، إلا أن المحتوى الرئيسي لها هنا هو مجموعة من المعادلات الرياضيّة.
--~~~~ Easy Engineering الهندسة سهلة

In contrast to a typical assignment statement, such as

فعلى النقيض من عبارة التعيين (بالإنجليزية: assignment) المعتادة التي تشبه هذه
--~~~~ Easy Engineering الهندسة سهلة

x := 2 + y;

x := 2 + y;
--~~~~ Easy Engineering الهندسة سهلة

where the left-hand side of the statement is assigned a value calculated from the expression on the right-hand side, an equation may have expressions on both its right- and left-hand sides, for example,

والتي فيها الطرف الأيسر من العبارة يتم تعيين قيمة محسوبة له عن طريق الطرف الأيمن، فالمعادلات (في لغة مودليكا) يوجد فيها تعبيرات رياضية في كلا الطرفين الأيمن والأيسر، مثل هذه المعادلة،
--~~~~ Easy Engineering الهندسة سهلة

x + y = 3 * z;

x + y = 3 * z;
--~~~~ Easy Engineering الهندسة سهلة

Equations do not describe assignment but equality.

فالمعادلات هنا ليس المقصود منها وصف التعيين (بالإنجليزية: assignment) بل هي تصف التساوي (بالإنجليزية: equality).
--~~~~ Easy Engineering الهندسة سهلة

In Modelica terms, equations have no pre-defined causality.

وبمصطلحات لغة مودليكا، يمكن القول بأن المعادلات لا تحتاج إلى تعريفات مسبقة (مقدّمات برمجية).
--~~~~ Easy Engineering الهندسة سهلة

The simulation engine may (and usually must) manipulate the equations symbolically to determine their order of execution and which components in the equation are inputs and which are outputs.

ومحرك المحاكاة قد يعالج المعادلات رمزيّا (وعادة يكون هذا ضروريا) وذلك لتحديد ترتيب عمليات التنفيذ وكذلك تحديد أي من المكونات في المعادلة قد يتم اعتبارها مدخلات وأيها قد يتم اعتبارها مخرجات.
--~~~~ Easy Engineering الهندسة سهلة

History[edit]

تاريخيا [عدل]
--~~~~ Easy Engineering الهندسة سهلة

The Modelica design effort was initiated in September 1996 by Hilding Elmqvist. The goal was to develop an object-oriented language for modeling of technical systems in order to reuse and exchange dynamic system models in a standardized format.

إن السعي لتصميم لغة مودليكا قد بدأه هيلدنج المكفست في أيلول/سبتمبر عام 1996. وكان الهدف هو تطوير لغة برمجة كائنية التوجه (شيئية) تستخدم لنمذجة الأنظمة التقنية (التكنولوجية) تمكن المهندسين من إعادة استخدام وتبادل نماذج الأنظمة الديناميكية بهيئة نمطيّة (قياسيّة أو بالإنجليزية: standardized format).
--~~~~ Easy Engineering الهندسة سهلة

Modelica 1.0 is based on the PhD thesis of Hilding Elmqvist and on the experience with the modeling languages Allan, Dymola, NMF ObjectMath, Omola, SIDOPS+, and Smile.

لغة مودليكا 1.0 بنيت على أطروحة من رسالة الدكتوراه الخاصة بهيلدنج المكفست وعلى خبرة لغات النمذجة: ألّان Allan ودايمولا Dymola و إن.إم.إف NMF وأوبجكت.ماث ObjectMath وأومولا Omola وبلس.سيدوبس SIDOPS+ وسمايل Smile.
--~~~~ Easy Engineering الهندسة سهلة

Hilding Elmqvist is the key architect of Modelica, but many other people have contributed as well (see appendix E).

كان هيلدنج المكفست المخطط الرئيسي للغة مودليكا، ولكن العديد من الناس الآخرين ساهموا كذلك (انظر الملحق E).
--~~~~ Easy Engineering الهندسة سهلة

In September 1997, version 1.0 of the Modelica specification was released which was the basis for a prototype implementation within the commercial Dymola software system.

وفي أيلول/سبتمبر عام 1997 تم إطلاق الإصدار 1.0 من مواصفات لغة مودليكا والتي كانت الأساس للتطبيق العملي لنموذج مبدئي من خلال نظام برنامج تجاري يدعى دايمولا Dymola.
--~~~~ Easy Engineering الهندسة سهلة

In year 2000, the non-profit Modelica Association was formed to manage the continually evolving Modelica language and the development of the free Modelica Standard Library.

في عام 2000 ، أنشئت جمعية غير ربحية هي جمعية مودليكا وأنشئت لكي تدير التطوير المستمر للغة مودليكا ولمكتبة مودليكا القياسية الحرة.
--~~~~ Easy Engineering الهندسة سهلة

In the same year, the usage of Modelica in industrial applications started.

وفي نفس العام، بدأ استخدام لغة مودليكا في التطبيقات الصناعية.
--~~~~ Easy Engineering الهندسة سهلة

Implementations[edit]

التطبيقات البرمجيّة [ عدل ]
--~~~~ Easy Engineering الهندسة سهلة

Commercial front-ends for Modelica include AMESim from the French company Imagine SA (now part of Siemens PLM Software), Dymola from the Swedish company Dynasim AB (now part of Dassault Systemes), CyModelica from the American company CyDesign Labs now ESI Group, Wolfram SystemModeler (formerly MathModelica) from the Swedish company Wolfram MathCore AB (now part of Wolfram Research), SimulationX from the German company ITI GmbH, MapleSim from the Canadian company Maplesoft, and CATIA Systems from Dassault Systemes (CATIA is one of the major CAD systems).

في الواجهة الأمامية للتطبيقات البرمجيّة التجارية للغة مودليكا يأتي برنامج أَمِي.سيم AMESim لشركة إماجين إس.أا Imagine SA الفرنسية (والتي هي الآن جزء من شركة سيمنز بي.إل.إم Siemens PLM للبرمجيات)، ودايمولا Dymola لشركة دايناسيم أا.بي Dynasim AB السويدية (والتي هي الآن جزء من شركة أنظمة داسو Dassault Systemes)، وساي.مودليكا CyModelica لشركة معامل ساي.ديزاين CyDesign الأمريكية والتي أصبحت الآن مجموعة إي.إس.آي ESI Group، وبرنامج وولفرام سيستيم.موديلَر لنمذجة الأنظمةWolfram SystemModeler (والذي كان يسمى سابقا ماث.مودليكا MathModelica) لشركة وولفرام ماث.كُور Wolfram MathCore AB السويدية (والتي هي الآن جزء من شركة وولفرام للأبحاث Wolfram Research)، وبرنامج سيميوليشن.إكس للمحاكاة SimulationX للشركة الألمانية آي.تي.آي المحدودة ITI GmbH، وبرنامج مابل.سيم MapleSim للشركة الكندية مابلسوفت Maplesoft، وبرنامج أنظمة كاتيا CATIA Systems لشركة أنظمة داسو Dassault Systemes (وأنظمة كاتيا تعتبر من الأنظمة الرئيسية المستخدمة في التصميم باستخدام الحاسب الآلي CAD).
--~~~~ Easy Engineering الهندسة سهلة

JModelica.org is an extensible Modelica-based open source platform for optimization, simulation and analysis of complex dynamic systems. The main objective of the project is to create an industrially viable open source platform for simulation optimization of Modelica models, while offering a flexible platform serving as a virtual lab for algorithm development and research.

جا.مودليكا دوت أورج JModelica.org هي منصّة مرنة ومفتوحة المصدر تم بناؤها على لغة مودليكا وتستخدم في الاستمثال (الأمثلة أو بالإنجليزية: optimization) وفي المحاكاة وتحليل النظم الديناميكية المعقدة. الهدف الرئيسي من هذا المشروع كان عمل منصّة مفتوحة المصدر صالحة للاستخدام في الأغراض الصناعية وتستخدم في المحاكاة والاستمثال لنماذج لغة مودليكا، وفي ذات الوقت، تقدّم منصّة مرنة تعمل كمعمل افتراضي يستخدم في مناهج وخوارزميات البحث والتطوير.
--~~~~ Easy Engineering الهندسة سهلة

Openmodelica is an open-source Modelica-based modeling and simulation environment intended for industrial and academic usage.

أوبن مودليكا (مودليكا مفتوحة المصدر أو OpenModelica) هي بيئة برمجيّة تستخدم في المحاكاة والنمذجة وهي مفتوحة المصدر ومبنيّة على لغة مودليكا وهي موجّهة للاستخدام الأكاديمي والصناعي.
--~~~~ Easy Engineering الهندسة سهلة

Its long-term development is supported by a non-profit organization – the Open Source Modelica Consortium (OSMC).

وتطويرها على المدى الطويل هو مهمة منظّمة غير ربحيّة هي المجموعة المتحدة لمودليكا مفتوحة المصدر Open Source Modelica Consortium OSMC.
--~~~~ Easy Engineering الهندسة سهلة

The goal with the OpenModelica effort is to create a comprehensive Open Source Modelica modeling, compilation and simulation environment based on free software distributed in binary and source code form for research, teaching, and industrial usage.

إن الهدف من الجهد المبذول في أوبن مودليكا OpenModelica هو بناء بيئة برمجيّة شاملة ومفتوحة المصدر تستخدم لغة مودليكا وتترجم الكود الخاص بها وتقوم بعمل المحاكاة والنمذجة بناء على برمجيّات حرّة (مجّانية ومفتوحة المصدر) يتم نشرها في الصورة الثنائية (بالإنجليزية: binary أي: التنفيذية أو بالإنجليزية: executable) بالإضافة إلى الكود المصدري (بالإنجليزبة: source code) لتستخدم في البحث والتدريس بالإضافة إلى الاستخدام الصناعي.
--~~~~ Easy Engineering الهندسة سهلة

The free simulation environment Scicos uses a subset of Modelica for component modeling.

بيئة المحاكاة الحرة سايكوس Scicos (وهي جزء من برنامج سايلاب SciLab وتسمّى أيضا إكس.سي.أو.إس Xcos) تستخدم لغة مودليكا بشكل جزئي لنمذجة المكوّنات (الهندسيّة مثلا).
--~~~~ Easy Engineering الهندسة سهلة

Support for a larger part of the Modelica language is currently under development.

إن الجزء الأكبر من الدعم الذي تحظى به لغة مودليكا حاليّا ما زال قيد التطوير.
--~~~~ Easy Engineering الهندسة سهلة

Nevertheless, there is still some incompatibility and diverging interpretation between all the different tools concerning the Modelica language.

بيد أنه لا يزال هناك بعض من عدم التوافق والتباين في التفسير بين مختلف الأدوات البرمجيّة المتعلّقة بلغة مودليكا.
--~~~~ Easy Engineering الهندسة سهلة

Examples[edit]

أمثلة [ عدل ]
--~~~~ Easy Engineering الهندسة سهلة

The following code fragment shows a very simple example of a first order system ( x ˙ = − c ⋅ x {\displaystyle {\dot {x}}=-c\cdot x} ):

القطعة التالية من الكود البرمجيّ تبيّن مثالا بسيطا جدا لنظام من الرتبة الأولى ( x ˙ = − c ⋅ x {\displaystyle {\dot {x}}=-c\cdot x} ):
--~~~~ Easy Engineering الهندسة سهلة

Built-in and user derived types[edit]

الأنواع المبنيّة ضمن لغة مودليكا والأنواع التي المشتقّة منها [ عدل ]
--~~~~ Easy Engineering الهندسة سهلة

Applications[edit]

التطبيقات العمليّة [ عدل ]
--~~~~ Easy Engineering الهندسة سهلة