OpenModelica/C2/Functions-and-Types/Hindi

From Script | Spoken-Tutorial
Jump to: navigation, search
Time Narration
00:01 नमस्कार, Functions and Types पर स्पोकन ट्यूटोरियल में आपका स्वागत है।
00:06 इस ट्यूटोरियल में, हम सीखेंगे कि function कैसे परिभाषित करना है
00:12 algorithm का उपयोग कैसे करना है। type कैसे परिभाषित करना है।
00:17 इस ट्यूटोरियल को रिकॉर्ड करने के लिए, मैं उपयोग कर रहा हूँ OpenModelica 1.9.2 और ऊबंटु ऑपरेटिंग सिस्टम वर्जन 14.04
00:27 लेकिन, यह प्रक्रिया Windows, Mac OS X या FOSSEE OS में समान है।
00:35 इस ट्यूटोरियल को समझने के लिए, आपको Modelica में क्लास को परिभाषित करने के ज्ञान की आवश्यकता है।
00:41 आपको किसी भी प्रोग्रामिंग लैंग्वेज में functions के ज्ञान की आवश्यकता है।
00:46 पूर्व-अपेक्षित ट्यूटोरियल का उल्लेख हमारी वेबसाइट पर किया गया है। कृपया उन्हें देखें।
00:52 अब function के बारे में चर्चा करते हैं।
00:55 Function एक विशिष्ट क्लास है जो इनपुट ले सकता है और आउटपुट रिटर्न कर सकता है।
01:01 इसमें algorithm सेक्शन शामिल होता है।
01:04 Function में समीकरण नहीं हो सकते हैं और इसे सिम्युलेट नहीं किया जा सकता है।
01:10 Function का सिंटेक्स दिखाया गया है।
01:15 अब polynomialEvaluator नामक फंक्शन लिखते हैं, जो x के रूप में इनपुट लेता है और f(x) = a x (squared) (plus) b x (plus) c रिटर्न करता है, जहाँ आउटपुट के रूप में a=1, b=2 और c=1 है।
01:36 polynomialEvaluator फाइल हमारी वेबसाइट पर उपलब्ध है।
01:40 कृपया Code Files लिंक में उपलब्ध सभी फाइल्स को डाउनलोड और सेव करें।
01:46 polynomialEvaluator फंक्शन को प्रदर्शित करने के लिए, OMEdit पर जाएँ।
01:52 OMEdit अब Welcome परिप्रेक्ष्य में खुला है।
01:56 आप केवल OMEdit विंडो का एक भाग देख रहे हैं क्योंकि मैंने इसे ज़ूम इन किया है।
02:02 जब भी आवश्यक हो तब विंडो को स्थानांतरित करके मैं आपको प्रासंगिक भाग दिखाऊंगी।
02:09 डाउनलोड फाइल को खोलने के लिए, 'Open Model/Library File टूल पर क्लिक करें।
02:16 मैंने सभी फाइल्स को एक फोल्डर में सेव किया है।
02:19 उन्हें एक साथ चुनें औरopen पर क्लिक करें।
02:24 यदि आपने इन फाइल्स को अलग-अलग फोल्डर्स में सेव किया है, तो आप इनको अलग-अलग करके खोल सकते हैं।
02:31 ध्यान दें, निम्नलिखित classes या functions अभी OMEdit में खुले हैं।
bouncingBallWithUserTypes , functionTester ,multipleFunctionTester,  multiplePolynomialEvaluator and  polynomialEvaluator.
02:51 PolynomialEvaluator फंक्शन को खोलने और देखने के लिए, Libraries Browser में आइकन पर राइट क्लिक करें औऱ View Class' चुनें।
03:02 यदि फंक्शन Text View में नहीं खुलता है, तो इसे Text View में खोलें।
03:08 इस फंक्शन का नाम polynomialEvaluator है जिसकी हमने पहले ही चर्चा की है।
03:14 x real वैरिएबल है।
03:17 Input एक कीवर्ड है जिसका उपयोगinput वैरिएबल्स को निर्दिष्ट करने के लिए किया जाता है।
03:22 इसीतरह, output एक कीवर्ड है जिसका उपयोग output वैरिएबल्स को निर्दिष्ट करने के लिए किया जाता है।
03:28 fx real वैरिएबल है जो f(x)' को प्रदर्शित करता है।
03:33 कोई भी वैरिएबल या पैरामीटर जो ना तो input और ना ही output है, protected कीवर्ड का उपयोग करके निर्दिष्ट किया जाता है
03:42 a 1 की वैल्यू के साथ real पैरामीटर है।
03:47 a, b और c की वैल्यू की चर्चा पहले ही स्लाइड्स में की गई है।
03:53 कृपया ध्यान दें a, b और c protected पैरामीटर्स हैं।
03:59 Algorithm function के algorithm सेक्शन की शुरूआत को प्रदर्शित करता है।
04:05 Algorithm सेक्शन में केवल assignment स्टेटमेंट शामिल हो सकता है।
04:10 यह चिन्ह assignment को दर्शाता है।
04:14 एक assignment स्टेटमेंट में, दाईं ओर की वैल्यू को बाईं ओर असाइन किया गया है।
04:20 बाईं ओर आमतौर पर एक अज्ञात चीज होती है।
04:25 इस केस में, fx अज्ञात वैरिएबल है।
04:29 दाईं ओर के एक्सप्रेशन की यहाँ गणना की जा सकती है यदि x की वैल्यू ज्ञात हो।
04:36 x को आमतौर पर function के input आर्ग्युमेंट के रूप में पास किया जाता है, जब भी इसे कॉल किया जाता है।
04:43 अब देखते हैं कि functionTester क्लास का उपयोग करके function कैसे कॉल करना है।
04:49 functionTester आइकन पहले से ही Libraries Browser में दिख रहा है, क्योंकि मैंने इसे पहले ही खोला है।
04:56 इस Class को खोलने के लिए, इसके आइकन पर डबल-क्लिक करें।
05:01 Class खोलने का यह वैकल्पिक तरीका है।
05:05 आप इसके आइकन पर राइट क्लिक भी कर सकते हैं औऱ 'View Class चुनें।
05:11 Z real वैरिएबल है।
05:14 polynomialEvaluator फंक्शन को 10 यूनिट्स के input आर्ग्युमेंट के साथ कॉल किया जाता है और यह z के बराबर है।
05:23 polynomialEvaluator की Input वैल्यू (वैरिएबल) जोकि x 10 यूनिट्स की वैल्यू लेता है।
05:31 अब इस class को सिमुलेट करें।
05:34 इस class को सिमुलेट करने के लिए, आपको Libraries Browser में functionTester आइकन पर राइट क्लिक करना होगा और Simulate चुनें।
05:45 क्लास अब सिमुलेट हो गया है।
05:47 आप class को सिमुलेट करने के लिए टूलबार में Simulate बटन का उपयोग भी कर सकते हैं।
05:53 अब मैं आपको Plotting perspective पूरी तरह से दिखाने के लिए OMEdit विंडो को बाईं ओर करती हूँ।
06:00 variables browser में z चुनें।
06:04 ध्यान दें, z की वैल्यू x = 10 पर f(x) की वैल्यू के बराबर है।
06:12 अब z को अचयनित करें और इस परिणाम को डिलीट करें।
06:18 Modeling perspective पर वापस जाएँ।
06:21 ऊपर polynomialEvaluator टैब पर क्लिक करें।
06:25 ध्यान दें polynomialEvaluator फंक्शन में केवल एक output वैरिएबल है।
06:31 अब मैं आपको दिखाती हूँ कि function का उपयोग करके दो या अधिक वैरिएबल को कैसे output करना है।
06:38 मैंने multiplePolynomialEvaluator नामक function बनाया है जिसमें दो output वैरिएबल्स हैं।
06:45 Function देखने से पहले, मैं PolynomialEvaluator और FunctionTester के टैब्स को बंद करें।
06:54 क्योंकि Libraries Browser दिखाई नहीं देता है, मैं विंडो को दाईं ओर ले जाती हूँ।
07:01 multiplePolynomialEvaluator, multipleFunctionTester और bouncingBallWithUserTypes पर डबल क्लिक करें।
07:11 विंडो को इसके स्थान पर वापस रख लें।
07:15 multiplePolynomialEvaluator टैब पर जाएँ।
07:19 यह function अतिरिक्त output वैरिएबल के अलावा polynomialEvaluator फंक्शन के समान है।
07:27 एक output वैरिएबल का नाम gx घोषित किया गया है।
07:32 gx को 'a x (squared) (minus) b x (plus) c की वैल्यू असाइन की गई है।
07:38 जिस क्रम में 'output' या 'input' वेरिएबल्स घोषित किए जाते हैं, वह महत्वपूर्ण है।
07:45 हम इसके बारे में अधिक समझेंगे जब हम multipleFunctionTester ' क्लास की चर्चा करेंगे।
07:51 अब multipleFunctionTester टैब पर जाएँ।
07:56 y और z real वैरिएबल के रूप में घोषित किया जाता है।
08:01 multiplePolynomialEvaluator फंक्शन 10 यूनिट्स के input आर्ग्युमेंट के साथ कॉल किया जाता है।
08:08 इसका मतलब है कि multiplePolynomialEvaluator का input वेरिएबल 10 यूनिट्स की वैल्यू लेता है।
08:17 y' और z x = 10 पर क्रमानुसार f(x) और g(x) की वैल्यू लेता है।
08:26 y आउटपुट वैरिएबल fx की वैल्यू लेता है, चूँकि function में gx घोषित होने से पहले fx घोषित किया जाता है।
08:37 अब इस class को सिमुलेट करें।
08:40 Simulate बटन पर क्लिक करें। पॉप-अप विंडो को बंद करें।
08:46 variables browser में ‘y और z चुनें।
08:51 ध्यान दें, y और z की वैल्यूज x = 10 पर क्रमानुसार f(x) और g(x) के समान हैं।
09:01 परिणाम डिलीट करें और Modeling Perspective पर वापस जाएँ।
09:06 अब, मुझे y और z के क्रम को बदलना चाहिए।
09:11 (y,z) डिलीट करें और (z,y) टाइप करें।
09:17 और Ctrl+S दबाकर इस क्लास को सेव करें।
09:22 इस class को एक बार फिर से सिमुलेट करें। पॉप-अप विंडो बंद करें।
09:28 एक बार फिर से variables browser में y और z चुनें।
09:33 ध्यान दें कि y और z की वैल्यूज पिछले केस की तुलना में बदल दिए गए हैं।
09:41 इस परिणाम को डिलीट करें औऱ Modeling Perspective पर वापस जाएँ।
09:47 स्लाइड्स पर वापस जाएँ।
09:50 Algorithm प्रक्रियात्मक प्रोग्रामिंग को सक्षम करने के लिए Modelica syntax element है।
09:56 केवल assignment स्टेटमेंट्स को algorithm सेक्शन में अनुमति है।
10:01 Assignment स्टेटमेंट निम्न सिंबल का उपयोग करता है।
10:06 Assignment स्टेटमेंट्स में डेटा फ्लो दाईं से बाईं ओर होता है।
10:10 Modelica में परिभाषित फंक्शन पर कुछ प्रतिबंध है।
10:16 फंक्शन में der() का उपयोग अमान्य है। time वैरिएबल के उपयोग की अनुमति नहीं है।
10:23 फंक्शन में when स्टेटमेंट्स के उपयोग की अनुमति नहीं है।
10:28 Function में एक से अधिक algorithm सेक्शन नहीं हो सकते हैं और Models arguments के रूप में पास नहीं हो सकते हैं।
10:36 Type Modelica में कस्टम 'data-types को परिभाषित करने के लिए एक विशिष्ट क्लास है।
10:42 उदाहरण के लिए, velocity' और current जैसी भौतिक मात्राओं को data-types के रूप में परिभाषित किया जा सकता है।
10:50 उनका उपयोग बाद में अन्य वैरिएबल्स को घोषित करने के लिए किया जा सकता है।
10:54 unit और start जैसी मॉडिलिका डेटा-टाइप के Attributes को तदनुसार बदला जा सकता है।
11:01 उदाहरण के लिए, उपरोक्त मामले में velocity 'को real data type के समान ही परिभाषित किया गया है।
11:08 लेकिन इसकी इकाई को m/s में संशोधित किया गया है।
11:12 मैंने टाइप डेफिनिएशन को सिमुलेट करने के लिए bouncingBallWithUserTypes नामक मॉडल बनाया है।
11:19 इस model को प्रदर्शित करने के लिए OMEdit पर वापस जाएँ।
11:24 bouncingBallWithUserTypes टैब पर क्लिक करें।
11:28 यह मॉडल bouncingBall मॉडल के समान है जिसकी चर्चा पिछले ट्यूटोरियल में की गयी है।
11:35 bouncingBall मॉडल को समझने के लिए कृपया पूर्वापेक्षा ट्यूटोरियल को देखें।
11:41 Length को m के लिए संशोधित अपनी यूनिट के साथ Real डेटा टाइप के रूप में परिभाषित किया गया है।
11:47 इसीतरह, Velocity को m/s के लिए संशोधित अपनी यूनिट के साथ Real के रूप में परिभाषित किया गया है।
11:54 'h' पृथ्वी की सतह से गेंद की ऊंचाई को दर्शाता है।
11:58 इसे length datatype के रूप में परिभाषित किया गया है।
12:02 इसीतरह v गेंद की गति को दर्शाता है।
12:05 इसे velocity datatype घोषित किया गया है।
12:09 इस model के शेष वैरिएबल डिक्लेरेशन्स और समीकरण bouncingBall मॉडल के समान हैं।
12:18 अब इसे simulate करें। पॉप-अप विंडो बंद करें।
12:24 Variables Browser में, ध्यान दें, h और v के पास अपने डेटा-टाइप के साथ संबंधित यूनिट्स हैं।
12:34 variables browser में 'h चुनें।
12:38 h बनाम time के प्लॉट bouncingBall मॉडल के समान है।
12:43 h को अचयनित करें।
12:46 अब स्लाइड्स पर वापस जाएँ।
12:49 नियत-कार्य के रूप में फ़ंक्शंस पर प्रतिबंध और उत्पादित एरर का पालन करने।
12:56 इसी के साथ हम ट्यूटोरियल के अंत में आ जाते हैं।
12:59 निम्नलिखित लिंक पर उपलब्ध वीडियो देखें। http://spoken-tutorial.org/ http://spoken-tutorial.org] /What\_is\_a\_Spoken\_Tutorial

यह स्पोकन ट्यूटोरियल प्रोजेक्ट को सारांशित करता है।

13:05 हम स्पोकन ट्यूटोरियल का उपयोग कर कार्यशालाओं का आयोजन करते हैं। कृपया हमसे संपर्क करें।
13:10 यदि आपके इस स्पोकन ट्यूटोरियल में प्रश्न हैं, तो कृपया वेबसाइट पर जाएं।
13:15 हम लोकप्रिय किताबों के हल किये हुए उदाहरणों के कोडिंग का समन्वय करते हैं। कृपया अधिक जानकारी के लिए वेबसाइटों पर जाएं।
13:23 हम व्यावसायिक सिम्युलेटर लैब्स को OpenModelica में माइग्रेट करने में सहायता करते हैं
13:29 'स्पोकन ट्यूटोरियल प्रोजेक्ट' एनएमईआईसीटी, एमएचआरडी , भारत सरकार द्वारा समर्थित है I
13:36 हम उनके समर्थन के लिए OpenModelica में डेवलपमेंट टीम का धन्यवाद करते हैं।

यह स्क्रीप्ट विकास द्वारा अनुवादित है, आई आई टी बॉम्बे से मैं श्रुति आर्य आपसे विदा लेती हूँ, धन्यवाद।

Contributors and Content Editors

Devraj, Shruti arya, Vikaskothiyara