फंक्शनल मॉक-अप इंटरफ़ेस

फंक्शनल मॉक-अप इंटरफ़ेस (या एफएमआई) जटिल साइबर-भौतिक प्रणालियों को विकसित करने के लिए कंप्यूटर सिमुलेशन में उपयोग किए जाने वाले एक मानकीकृत इंटरफ़ेस (कंप्यूटिंग) को परिभाषित करता है।

एफएमआई का दृष्टिकोण इस दृष्टिकोण का समर्थन करना है: यदि वास्तविक उत्पाद को जटिल तरीकों से बातचीत करने वाले भागों की एक विस्तृत श्रृंखला से इकट्ठा किया जाना है, प्रत्येक को भौतिक कानूनों के एक जटिल सेट द्वारा नियंत्रित किया जाता है, तो एक आभासी उत्पाद बनाना संभव होना चाहिए मॉडलों के एक सेट से इकट्ठा किया जा सकता है, जिनमें से प्रत्येक भागों के संयोजन का प्रतिनिधित्व करता है, प्रत्येक भौतिक कानूनों का एक मॉडल और साथ ही नियंत्रण प्रणालियों का एक मॉडल ( इलेक्ट्रानिक्स, जलगति विज्ञान और डिजिटल सॉफ़्टवेयर  का उपयोग करके) डिजिटल रूप से इकट्ठा किया जाता है। इस प्रकार एफएमआई मानक सिस्टम के मॉडल आधारित विकास के लिए साधन प्रदान करता है और उदाहरण के लिए वाहनों के अंदर इलेक्ट्रॉनिक उपकरणों (जैसे ईएसपी नियंत्रक, सक्रिय सुरक्षा प्रणाली, दहन नियंत्रक) द्वारा संचालित कार्यों को डिजाइन करने के लिए उपयोग किया जाता है। सिस्टम मॉडलिंग, सिमुलेशन, सत्यापन और परीक्षण की गतिविधियों को एफएमआई आधारित दृष्टिकोण के साथ कवर किया जा सकता है। एफएमआई मानक बनाने के लिए, बड़ी संख्या में सॉफ्टवेयर कंपनियों और अनुसंधान केंद्रों ने एक यूरोपीय संघ के माध्यम से स्थापित एक सहयोग परियोजना में काम किया है जिसे मॉडलिसर के नाम से डसॉल्ट सिस्टम्स द्वारा संचालित किया गया है। MODELISAR परियोजना 2008 में FMI विशिष्टताओं को परिभाषित करने, प्रौद्योगिकी अध्ययन प्रदान करने, कंसोर्टियम भागीदारों द्वारा विस्तृत उपयोग के मामलों के माध्यम से FMI अवधारणाओं को साबित करने और उपकरण विक्रेताओं को उन्नत प्रोटोटाइप या कुछ मामलों में उत्पाद बनाने में सक्षम बनाने के लिए शुरू की गई थी। एफएमआई विशिष्टताओं के विकास का समन्वय डेमलर एजी द्वारा किया गया था। 2011 में मॉडलिसर परियोजना की समाप्ति के बाद, एफएमआई को मॉडलिका एसोसिएशन प्रोजेक्ट (एमएपी) के रूप में प्रबंधित और विकसित किया गया है।

असेंबल करने योग्य मॉडल बनाने के लिए आवश्यक चार एफएमआई पहलुओं को मॉडलिसर परियोजना में शामिल किया गया है:
 * मॉडल एक्सचेंज के लिए एफएमआई,
 * सह सिमुलेशन के लिए एफएमआई,
 * अनुप्रयोगों के लिए एफएमआई,
 * उत्पाद जीवन चक्र प्रबंधन (विपणन) के लिए एफएमआई (उत्पाद जीवन-चक्र प्रबंधन में मॉडल और संबंधित डेटा का एकीकरण)।

व्यवहार में, एक सॉफ्टवेयर मॉडलिंग टूल द्वारा एफएमआई कार्यान्वयन एक सिमुलेशन मॉडल के निर्माण को सक्षम बनाता है जिसे आपस में जोड़ा जा सकता है या एफएमयू (फंक्शनल मॉक-अप यूनिट) नामक एक सॉफ्टवेयर लाइब्रेरी का निर्माण किया जा सकता है।

एफएमआई दृष्टिकोण
विशिष्ट एफएमआई दृष्टिकोण को निम्नलिखित चरणों में वर्णित किया गया है:
 * एक मॉडलिंग वातावरण समय, स्थिति और चरण-घटनाओं के साथ अंतर, बीजीय और असतत समीकरणों द्वारा उत्पाद उप-प्रणाली का वर्णन करता है। ये मॉडल ऑफ-लाइन या ऑन-लाइन सिमुलेशन में उपयोग के लिए बड़े हो सकते हैं या एम्बेडेड नियंत्रण प्रणालियों में उपयोग किए जा सकते हैं;
 * एक विकल्प के रूप में, एक इंजीनियरिंग उपकरण वाहन प्रणाली को नियंत्रित करने के लिए नियंत्रक कोड को परिभाषित करता है;
 * ऐसे उपकरण एफएमयू (फंक्शनल मॉक-अप यूनिट) में घटक उत्पन्न और निर्यात करते हैं;
 * फिर एक एफएमयू को निष्पादित करने के लिए दूसरे वातावरण में आयात किया जा सकता है;
 * कई एफएमयू - इस तरह - सह-सिमुलेशन वातावरण के माध्यम से रनटाइम पर सहयोग कर सकते हैं, उनके इंटरफेस की एफएमआई परिभाषाओं के लिए धन्यवाद।

लाइसेंस
FMI विनिर्देश ओपन सोर्स लाइसेंस के तहत वितरित किए जाते हैं:
 * विनिर्देशों को CC BY-SA (क्रिएटिव कॉमन्स एट्रिब्यूशन-शेयरलाइक 3.0 अनपोर्टेड) ​​क्रिएटिव कॉमन्स लाइसेंस के तहत लाइसेंस प्राप्त है|CC BY-SA 3.0
 * इस दस्तावेज़ के साथ आने वाली सी-हेडर और एक्सएमएल-स्कीमा फ़ाइलें BSD लाइसेंस के तहत उपलब्ध हैं, इस एक्सटेंशन के साथ संशोधन भी प्रदान किए जाने चाहिए। बीएसडी लाइसेंस.

वास्तुकला
प्रत्येक एफएमयू (फंक्शनल मॉक-अप यूनिट) को .fmu एक्सटेंशन के साथ एक ज़िप (फ़ाइल प्रारूप) में वितरित किया जाता है जिसमें शामिल हैं: * एक XML फ़ाइल जिसमें अन्य चीज़ों के अलावा FMU द्वारा उपयोग किए जाने वाले वेरिएबल्स की परिभाषा शामिल है;
 * मॉडल द्वारा उपयोग किए गए सभी समीकरण (सी (प्रोग्रामिंग भाषा) फ़ंक्शन के एक सेट के रूप में परिभाषित);
 * वैकल्पिक अन्य डेटा, जैसे पैरामीटर टेबल, उपयोगकर्ता इंटरफ़ेस, दस्तावेज़ीकरण जिनकी मॉडल को आवश्यकता हो सकती है।

उदाहरण
नमूना से जारी एफएमआई मॉडल विवरण का एक उदाहरण नीचे दिया गया है।

Simulink एस-फ़ंक्शंस की तुलना
एफएमआई की तुलना अक्सर सिमुलिंक एस-फंक्शन से की जाती है क्योंकि दोनों तकनीकों का उपयोग तीसरे पक्ष के टूल को एक साथ एकीकृत करने के लिए किया जा सकता है। एस-फ़ंक्शन का उपयोग किसी गतिशील सिस्टम के कंप्यूटर भाषा विवरण को निर्दिष्ट करने के लिए किया जाता है। उन्हें MEX-फ़ाइलों के रूप में संकलित किया जाता है जो ज़रूरत पड़ने पर गतिशील रूप से MATLAB में लिंक हो जाते हैं। एस-फ़ंक्शन एक कॉलिंग सिंटैक्स का उपयोग करते हैं जो सिमुलिंक के समीकरण सॉल्वरों के साथ इंटरैक्ट करता है। यह इंटरेक्शन बिल्ट-इन सिमुलिंक ब्लॉक और सॉल्वर के बीच होने वाले इंटरेक्शन के समान है। एफएमआई समर्थकों ने बताया कि सिमुलिंक एस-फ़ंक्शंस की तुलना में एफएमआई मॉडल के कई फायदे हैं:
 * एस-फ़ंक्शन प्रारूप मालिकाना है, जबकि एफएमआई स्कीमा को बीएसडी लाइसेंस के तहत लाइसेंस प्राप्त है।
 * एस-फ़ंक्शंस के बिल्डिंग ब्लॉक एफएमआई की तुलना में बहुत अधिक जटिल हैं, जिससे सिमुलिंक के अलावा अन्य सिमुलेटरों में इसे एकीकृत करना बहुत मुश्किल हो जाता है।
 * इसके अलावा, एस-फंक्शन प्रारूप सिमुलिंक के लिए विशिष्ट है।
 * एस-फ़ंक्शन के मेमोरी ओवरहेड के कारण, एस-फ़ंक्शन अंतः स्थापित प्रणाली  के लिए उपयुक्त नहीं हैं।

एफएमआई/एफएमयू का उपयोग करते समय कई सीमाएँ भी उद्धृत की गई हैं:
 * मेमोरी - पैरामीटर, स्थिति, इनपुट और आउटपुट सीधे बाहर के संपर्क में नहीं आते हैं, जो कि पारदर्शिता, सरलता और दक्षता की अनुमति देने के लिए मेमोरी के संबंध में ईसीयू सॉफ़्टवेयर को सामान्य रूप से व्यवस्थित करने के तरीके के विपरीत है।
 * इवेंट हैंडलिंग - इवेंट अप्रत्याशित तरीके से रीयल-टाइम सिस्टम के लिए रनटाइम बढ़ा सकते हैं।
 * संभावित रूप से खतरनाक सुविधाओं को ईसीयू पर शामिल किया जा सकता है - कुछ विशेषताएं जो ऑफ़लाइन सिमुलेशन के लिए समझ में आती हैं, उन्हें ईसीयू पर मौजूद नहीं होना चाहिए। उन सुविधाओं के उदाहरण जो एफएमआई में समर्थित हैं या स्पष्ट रूप से निषिद्ध नहीं हैं, उनमें लॉगिंग और आई/ओ ऑपरेशन जैसे प्रिंट शामिल हैं।
 * डेटा प्रकार समर्थन - अनुकूलित कोड के लिए अधिक समर्थित डेटा प्रकार आवश्यक हैं। उदाहरण के लिए, uint8 और uint32 वेरिएबल के बीच अंतर करने का कोई तरीका नहीं है।

सिस्टम संरचना और पैरामीटरीकरण (एसएसपी)
सिस्टम संरचना और पैरामीटरीकरण (एसएसपी) एफएमआई का एक सहयोगी मानक है जो जटिल, पदानुक्रमित (तकनीकी) प्रणालियों का वर्णन करने के लिए एक मानकीकृत, खुले फ़ाइल प्रारूप को परिभाषित करता है, जिसे अनुकरण किया जा सकता है। SSP फ़ाइल में सिस्टम की परिभाषाएँ होती हैं आर्किटेक्चर, सिस्टम तत्वों के इंटरफेस, और उनके कनेक्शन और पैरामीटराइजेशन। एसएसपी का उद्देश्य इसमें उपयोग किए जाने वाले सिस्टम तत्वों के आदान-प्रदान और एकीकरण को सरल बनाना है विभिन्न प्रकार के उपकरणों का उपयोग करके अनुकरण किए जाने वाले सिस्टम का वितरित विकास। एसएसपी को मॉडलिका एसोसिएशन की एक परियोजना के रूप में विकसित किया जा रहा है और यह आधारित है एफएमआई विनिर्देश पर. एफएमआई व्यक्तिगत सिमुलेशन के आदान-प्रदान को सक्षम बनाता है घटक, जबकि एसएसपी संपूर्ण सिमुलेशन सिस्टम, उनके वेरिएंट और के आदान-प्रदान को सक्षम बनाता है पैरामीटरीकरण. एसएसपी में वर्णित सिमुलेशन प्रणाली के सिमुलेशन घटक भी हो सकते हैं एफएमआई से स्वतंत्र और अन्य कार्यान्वयन के लिए मानचित्र।

एसएसपी विशिष्ट आवश्यकताओं या डोमेन-विशिष्ट एक्सटेंशन का समर्थन करने के लिए विस्तार योग्य है: उदाहरण के लिए। ओएसआई, आवश्यकताओं का दस्तावेजीकरण, पता लगाने की क्षमता या प्रक्रिया चरण आदि। एसएसपी घटक प्रारूपों के संबंध में खुला है। हालाँकि यह एफएमआई पर आधारित था, इसका उपयोग किसी अन्य प्रारूप के घटक विनिर्देशों के साथ भी किया जा सकता है।

मानकों और सिफ़ारिशों के साथ
मई 2014 में, ProSTEP iViP एसोसिएशन के प्रोजेक्ट ग्रुप स्मार्ट सिस्टम्स इंजीनियरिंग (SmartSE) ने क्रॉस-कंपनी व्यवहार मॉडल एक्सचेंज के लिए अपनी अनुशंसा PSI 11 प्रकाशित की। इस प्रकार एफएमआई तकनीकी आधार है। पीएसआई 11 इंटरैक्शन परिदृश्यों, उपयोग के मामलों, एक संदर्भ प्रक्रिया और टेम्पलेट्स को निर्दिष्ट करता है, जिससे औद्योगिक अनुप्रयोग को आसान बनाया जा सकता है। 2016 के अंत में समूह ने एक फिल्म प्रकाशित की, जिसमें औद्योगिक लाभों पर प्रकाश डाला जाना चाहिए।

यह भी देखें

 * 20-सिम
 * मॉडलिका
 * सिमुलिंक

बाहरी संबंध

 * FMI main site
 * SSP main site