OpenModelica/C2/Control-flow-and-Event-handling/Hindi

From Script | Spoken-Tutorial
Revision as of 01:10, 28 December 2017 by Shruti arya (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
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 यह स्क्रिप्ट विकास द्वारा अनुवादित है। आई आई टी बॉम्बे से मैं श्रुति आर्य आपसे विदा लेती हूँ, धन्यवाद।

Contributors and Content Editors

Shruti arya, Vikaskothiyara