OpenModelica/C2/Control-flow-and-Event-handling/Hindi
From Script | Spoken-Tutorial
Revision as of 01:15, 27 December 2017 by Shruti arya (Talk | contribs)
Time | Narration |
00:01 | Control flow and Event handling पर स्पोकन ट्यूटोरियल में आपका स्वागत है। |
00:07 | इस ट्यूटोरियल में, हम सीखेंगे, if-else स्टेटमेंट का उपयोग कैसे करें, time और state इवेंट्स कैसे हैंडल करें, when स्टेटमेंट का उपयोग कैसे करें? |
00:19 | इस ट्यूटोरियल को रिकॉर्ड करने के लिए मैं उपयोग कर रही हूँ OpenModelica 1.9.2 और उबंटु ऑपरेटिंग सिस्टम वर्जन 14.04. |
00:30 | लेकिन यह प्रक्रिया Windows, Mac OS X या ARM पर FOSSEE OS में समान है। |
00:38 | इस ट्यूटोरियल को समझने और अभ्यास करने के लिए आपको निम्न की जानकारी होनी चाहिए physical systems की इक्वेशन आधारित modeling, |
00:47 | किसी भी प्रोग्रामिंग लैंग्वेज में ब्रांचिंग, Modelica में क्लास की परिभाषा। |
00:53 | पूर्वापेक्षा ट्यूटोरियल्स स्पोकन ट्यूटोरियल वेबसाइट पर हैं, कृपया उन्हें देखें। |
01:00 | freeFall क्लास की चर्चा पिछले ट्यूटोरियल में की जा चुकी है। |
01:05 | अब इसमें constraint जोड़ें। |
01:08 | बॉल t = 0.5 सैकेंड तक रूकती है। gravity में Free fall t = 0.5 सैकेंड पर शुरू होता है। |
01:19 | मैंने timeEventExample नामक एक मॉडल बनाया है, जो इस कंडिशन को सेम्युलेत करता है। |
01:25 | timeEventExample फाइल स्पोकन ट्यूटोरियल पर Code Files लिंक में उपलब्ध है। |
01:32 | कृपया डाउनलोड करें और सभी फाइल्स को Code Files लिंक में सेव करें। |
01:38 | आपकी सहूलियत के लिए freeFall class भी उपलब्ध है। |
01:43 | अब OMEdit पर चलते हैं। |
01:45 | मैंने इसे पहले ही मेरे सिस्टम पर रखा है। |
01:49 | उबंटू ऑपरेटिंग सिस्टम पर OMEdit खोलने के लिए ऊपर बाईँ ओर पर Dash Home आइकन पर क्लिक करें। |
01:58 | सर्च बार में OMEdit टाइप करें और OMEdit आइकन पर क्लिक करें। वापस जाएँ। |
02:06 | नोटः विंडो यूजर उसी तरह Start मैन्यू में OMEdit खोजें और इसे खोलें। |
02:13 | timeEventExample फाइल खोलने के लिए,Open Model/Library File नामक टूल पर क्लिक करें। |
02:21 | अपने सिस्टम में timeEventExample फाइल खोजें और Open पर क्लिक करें। |
02:28 | आप इस फाइल को खोलने के लिए वैकल्पिक रूप में File मैन्यू का उपयोग भी कर सकते हैं। |
02:34 | ध्यान दें timeEventExample Libraries browser में प्रदर्शित होती है। |
02:39 | इस आइकन पर राइट-क्लिक करें और View class चुनें। |
02:44 | मॉडल अब Diagram view में खुलता है। |
02:47 | तीसरे बटन Text View पर क्लिक करें। |
02:51 | हम पहले ही चर्चा कर चुके हैं कि Modelica में model और class समानार्थी रूप से उपयोगित हैं। |
02:58 | इस मॉडल का नाम timeEventExample है। |
03:02 | इस प्रकार के Comments, model या class की पहली लाइन में लिखे जा सकते हैं। |
03:08 | h, v और g freeFall class में समान मान प्रदर्शित करता है। |
03:16 | initial equation सेक्शन में इनिशियल कंडिशन्स होती हैं। |
03:21 | h की वेल्यू t = 0 टाइम पर 30m है। |
03:26 | v की वेल्यू t = 0 टाइम पर 0 है। |
03:31 | Equation इस model के इक्वेशन सेक्शन की शुरूआत प्रकट करता है। |
03:36 | अब देखते हैं कि स्लाइड में वर्णित constraint को प्रविष्ट कैसे करें। |
03:43 | ध्यान दें कि यहां इक्वेशन सेक्शन में एक if-else block है। |
03:48 | इस if-else block के प्रत्येक स्टेटमेंट को समझने का प्रयास करते हैं। |
03:53 | if statement time वेरिएबल पर constraint रखता है। |
03:58 | time Modelica में बिल्ट-इन वेरिएबल है। |
04:01 | इसे class या model में स्पष्ट रूप से घोषित करने की आवश्यकता नहीं है। |
04:06 | ball समय 0.5 सैकेंड के बाद free fall का अनुभव करता है। |
04:12 | इसलिए ये दो इक्वेशन freeFall class के समान इक्वेशन्स प्रदर्शित करते हैं। |
04:19 | else branch में equations हैं, जो निष्पादित होती हैं, जब समय 0.5 सैकेंड से कम होता है। |
04:27 | ball रूक जाता है,जब समय 0.5 सैकेंड से कम होता है। |
04:32 | इस मामले में ये दो equations सही हैं। |
04:36 | end if if-else block का अंत दर्शाता है। |
04:41 | model अब पूर्ण हो गया है। |
04:44 | Simulate बटन पर क्लिक करके इसे सेम्युलेट करते हैं। |
04:48 | Plotting perspective खुलता है। |
04:51 | Variables browser में h चुनें। |
04:55 | यह h versus time प्लॉट बनाता है। |
04:58 | चूंकि समय t=0.5 सैकेंड तक बॉल रूक जाता है, ऊँचाई समान रहती है। |
05:06 | परिणाम को डिलीट करने के लिए, Variables browser में timeEventExample पर राइट क्लिक करें और Delete Result चुनें। |
05:15 | Modeling perspective पर वापस जाने के लिए, नीचे दाईं ओर पर Modeling बटन पर क्लिक करें। |
05:21 | अब else branch में दूसरा equation डिलीट करते हैं। |
05:26 | इस model को सेव करने के लिए टूवबार में Save बटन पर क्लिक करें। |
05:31 | Simulate पर क्लिक करें। |
05:34 | सेम्युलेशन असफल हो गया है। |
05:37 | Messages browser पर जाएँ और एरर मैसेज देखने के लिए ऊपर स्क्रॉल करें। |
05:42 | एरर मैसेज दर्शाता है कि प्रत्येक branch में equations की संख्या समान होनी चाहिए। |
05:49 | इसलिए if और else branches में equations की संख्या वेरिएबल्स की संख्या के समान होनी चाहिए। |
05:58 | फिर से equation को इसकी जगह पर प्रविष्ट करें और Save बटन पर क्लिक करें। |
06:05 | ध्यान दें der(h) = v एक equation है, जो if और else branches दोनों के लिए समान है। |
06:14 | इसलिए if-else block को दो स्टेटमेंट द्वारा बदला जा सकता है। |
06:20 | मैं आपको दिखाती हूँ कि यह कैसे होता है। |
06:23 | पहले if-else block डिलीट करें। |
06:26 | यहाँ टाइप किए जाने वाले इक्वेशन्स if else-statement.txt नामक फाइल में उपलब्ध हैं। |
06:34 | ये फाइल Code Files लिंक में भी उपलब्ध है। |
06:39 | क्योंकि यह टेक्स्ट फाइल है, मैंने इसे खोलने के लिए gedit का उपयोग किया । |
06:45 | gedit पर जाएँ। |
06:47 | विंडोज़ यूजर्स Notepad या किसी अन्य टेक्स्ट एडिटर का उपयोग करके यह फाइल खोल सकते हैं। |
06:54 | दो इक्वेशन्स कॉपी करें। |
06:57 | OMEdit पर वापस जाएँ। |
07:00 | राइट-क्लिक करें और Paste चुनें। |
07:04 | फिर से टूलबार में Save बटन पर क्लिक करें। |
07:08 | Simulate पर क्लिक करें। |
07:11 | pop up विंडो बंद करें। |
07:14 | फिर से Variables browser में hचुनें। |
07:18 | ध्यान दें कि h versus time प्लॉट पिछले मामले के समान है, जो दर्शाता है कि दोनों मॉडल्स समान हैं। |
07:27 | परिणाम को डिलीट करने के लिए timeEventExample पर राइट-क्लिक करें और Delete Result चुनें। |
07:34 | नीचे दाईं ओर Modeling बटन पर क्लिक करें। |
07:38 | यह एक if-else statement है, जो दर्शाता है कि यदि time >= 0.5 dv/dt = g अन्यथा dv/dt = 0. |
07:52 | अब स्लाइड्स पर वापस आते हैं। |
07:55 | कृपया ध्यान दें कि if branch में इक्वेशन्स की संख्या else branch में इक्वेशन्स की संख्या के समान होनी चाहिए। |
08:03 | और दोनों class या model में वेरिएबल्स की संख्या के समान होने चाहिए। |
08:10 | Event सिस्टम के व्यवहार में अप्रत्यासित बदलाव है। |
08:15 | Events को time events और state events में वर्गीकृत किया जा सकता है। |
08:20 | time event में, इवेंट होने का समय निश्चित पता होता है। |
08:25 | timeEventExample t = 0.5 सैकेंड पर टाइम इवेंट नियंत्रित करता है। |
08:32 | state event तब होता है जब सिस्टम वेरिएबल कोई वेल्यू क्रॉस करता है। |
08:38 | एक उदाहरण का उपयोग करके स्टेट इवेंट को समझने का प्रयास करते हैं। |
08:43 | free fall में बॉल, ग्राउंड छूने पर state event का सामना करता है। |
08:48 | निम्न व्यवहार देखा गया जब यह ग्राउंड को हिट करता है। |
08:52 | गेंद की गति दिशा में बदलती है। |
08:55 | गति का परिणाम बदलता है यदि टक्कर स्थिर है। |
09:00 | मैंने इस व्यवहार को सेम्युलेट करने के लिए bouncingBall नामक मॉडल बनाया है। |
09:06 | यह फाइल स्पोकन ट्यूटोरियल वेबसाइट पर उपलब्ध है। |
09:10 | इस मॉडल को देखने और इसे सेम्युलेट करने के लिए OMEdit पर वापस जाते हैं। |
09:15 | OpenModel/LIbrary File टूल पर क्लिक करें। |
09:19 | अपने सिस्टम पर bouncingBall फाइल खोजें और Open पर क्लिक करें। |
09:25 | Libraries browser में bouncingBall आइकन पर राइट-क्लिक करें और View Class चुनें। |
09:33 | यदि मॉडल Text View में नहीं खुलता है, तो modeling area के शीर्ष पर जाएँ और Text View बटन पर क्लिक करें। |
09:41 | e पृथ्वी के साथ बॉल की असफल टक्कर के लिए क्षतिपूर्ति का गुणांक है। |
09:48 | यह एक पैरामीटर है और पूरे सेम्युलेशन के समय इसकी वेल्यू 0.8 पर स्थिर रहती है। |
09:56 | radius m में बॉल के radius को प्रदर्शित करता है। |
10:00 | h, v और g timeEventExample के समान मान प्रदर्शित करते हैं। |
10:07 | मोशन्स के इन दो इक्वेशन्स की चर्चा freeFall class में कर चुके हैं। |
10:13 | when statement इवेंट के सिग्नल के लिए उपयोगित है। |
10:17 | इसका उपयोग इवेंट घटित होते समय लिए जाने वाले एक्शन को निर्दिष्ट करने के लिए किया जाता है। |
10:22 | h <= radius true रखता है, जब बॉल का संपर्क ग्राउंड से होता है। |
10:29 | यह statement निष्पादित होता है, जबभी इवेंट घटित होता है। |
10:34 | reinit() फंक्शन का उपयोग वेरिएबल को इनिशिलाइज करने के लिए किया जाता है। |
10:39 | यहाँ यह e के नकारात्मक उत्पाद के साथ बॉल के वेग और ग्राउंड छूने से पहले बॉल के वेग को इनिशिलाइज करता है। |
10:49 | इस मॉडल को सेम्युलेट करने के लिए टूलबार में Simulation Setup बटन पर क्लिक करें। |
10:55 | General टैब में, Stop Time फिल्ड 30 units में बदलें और Simulate पर क्लिक करें। |
11:04 | pop-up विंडो बंद करें। |
11:06 | Variables browser में h चुनें। |
11:10 | ध्यान दें h जीरो के नीचे हैं, जो स्वीकार्य नहीं है। |
11:16 | freeFall class सेम्युलेट करते समय हमने समान व्यवहार देखा है। |
11:21 | यह गलत व्यवहार न्यूमेरिकल एरर्स के कारण है। |
11:25 | न्यूमेरिकल एरर्स की चर्चा इस ट्यूटोरियल के दायरे से बाहर है। |
11:30 | कृपया अच्छे से समझने के लिए बाउंसिंग बॉल के Zeno व्यवहार का अनुशरण करें। |
11:36 | h को अचयनित करें। |
11:39 | स्लाइड्स पर वापस जाएँ। |
11:42 | when statement का उपयोग एक इवेंट के सिग्नल के लिए किया जाता है। |
11:45 | reinit(a,b) b की वेल्यू वेरिएबल aको असाइन करता है और सेम्युलेशन को पुनः आरंभ करता है। |
11:54 | pre(a) इवेंट से पहले वेरिेएबल की वेल्यू a वापस करता है। |
11:59 | उदाहरणस्वरूप reinit(a, 10)' इवेंट होते समय a को 10 वेल्यू असाइन करता है। |
12:08 | bouncingBall मॉडल का त्रुटिपूर्ण व्यवहार bouncingBallWithHysteresis में सही होता है। |
12:15 | bouncingBallWithHysteresis मॉडल स्पोकन ट्यूटोरियल वेबसाइट पर उपलब्ध है। |
12:21 | bouncingBallWithHysteresis सेम्युलेट करें और h versus time प्लॉट बनाएँ। |
12:27 | bouncingBall और bouncingBallWithHysteresis के बीच का अंतर ज्ञात करें। |
12:33 | इसी के साथ हम इस ट्यूटोरियल के अंत में आ गए हैं। |
12:36 | निम्नलिखित लिंक पर उपलब्ध वीडियो देखें http://spoken-tutorial.org/ http://spoken-tutorial.org] /What\_is\_a\_Spoken\_Tutorial |
12:40 | यह स्पोकन ट्यूटोरियल प्रोजेक्ट को सारांशित करता है। |
12:42 | स्पोकन ट्यूटोरियल प्रोजेक्ट टीम- स्पोकन ट्यूटोरियल का उपयोग कर कार्यशालाएं आयोजित करती है। ऑनलाइन परीक्षा पास करने वालों को प्रमाण पत्र देती है। अधिक जानकारी के लिए, कृपया contact@spoken-tutorial.org पर लिखें। |
12:48 | यदि आपके पास इस स्पोकन ट्यूटोरियल से संबंधित कोई प्रश्न हो तो कृपया निम्न वेबसाइट पर जाएँ। |
12:55 | Under Textbook Companion Project के तहत हम लोकप्रिय किताबों के हल किये हुए उदाहरणों के कोडिंग का समन्वयन करते हैं। |
13:03 | हम ऐसे लोगों को मानदेय और प्रमाण पत्र देते हैं जो ऐसा करते हैं। अधिक जानकारी के लिए, कृपया इस साइट पर जाएं। |
13:10 | Lab Migration Project के तहत हम वाणिज्यिक सिम्युलेटर प्रयोगशालाओं को OpenModelica में माइग्रेट करने में सहायता करते हैं। |
13:17 | अधिक जानकारी के लिए, कृपया इस साइट पर जाएँ। |
13:21 | स्पोकन ट्यूटोरियल प्रोजेक्ट आईसीटी के माध्यम से राष्ट्रीय शिक्षा मिशन,एमएचआरडी, भारत सरकार द्वारा समर्थित है। |
13:28 | हम OpenModelica टीम को उनके समर्थन के लिए धन्यवाद देते हैं। |
13:33 | यह स्क्रिप्ट विकास द्वारा अनुवादित है। हमसे जुडने के लिए धन्यवाद। |