OpenModelica/C2/Control-flow-and-Event-handling/Marathi
From Script | Spoken-Tutorial
Revision as of 17:27, 19 February 2018 by Latapopale (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 | हे ट्युटोरिअल समजून घेण्यासाठी व सराव करण्यासाठी, तुम्हांला खालील गोष्टी माहित असणे आवश्यक आहे : फिझिकल सिस्टमची इक्वेशनवर आधारीत modeling. |
00:47 | कोणत्याही प्रोग्रामिंग भाषेत ब्रांचिग, Modelica मध्ये class ची परिभाषा. |
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 | Search bar मध्ये OMEdit टाईप करा आणि OMEdit आयकॉनवर क्लिक करा. मी परत जातो. |
02:06 | नोट: Windows वापरणारे तशाचप्रकारे 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 | freeFall class मध्ये, h, v आणि g सम प्रमाणात प्रतिनिधित्व करतात. |
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 | लक्षात घ्या की दाखविल्याप्रमाणे येथे, equation सेक्शनमध्ये if-else block आहे. |
03:48 | ह्या if-else block चे प्रत्येक स्टेटमेंट समजण्याचा प्रयत्न करू. |
03:53 | if statement हे time व्हेरिएबलवर constraint ठेवते. |
03:58 | time हे मॉडेलिकामधील बिल्ट-इन व्हेरिएबल आहे. |
04:01 | हे class किंवा model मध्ये स्पष्टपणे घोषित करण्याची आवश्यकता नाही. |
04:06 | बॉल, टाईम 0.5 सेकंदांनंतर free fall चा अनुभव घेतो. |
04:12 | म्हणूनच, ही दोन इक्वेशन्स freeFall class सारखी इक्वेशन्स दर्शवतात. |
04:19 | else branch मध्ये अशी इक्वेशन्स आहेत ज्यांची 0.5 सेकंदांपेक्षा कमी वेळेत अंमलबजावणी होते. |
04:27 | जेव्हा वेळ 0.5 सेकंदापेक्षा कमी असते तेव्हा ball थांबतो. |
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 वर्सेस time प्लॉट बनवते. |
04:58 | तरी वेळ t=0.5 सेकंदापर्यंत बॉल थांबतो, उंची समान राहते. |
05:06 | रिझल्ट डिलीट करण्यासाठी, व्हेरिएबल ब्राऊझरमध्ये 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 | एरर मेसेजमध्ये असे म्हटले आहे की प्रत्येक शाखेत इक्वेशन्सची संख्या समान असणे आवश्यक आहे. |
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 | Windows वापरणारे नोटपॅड किंवा इतर टेक्स्ट एडिटर वापरून ही फाईल उघडू शकतात. |
06:54 | दोन इक्वेशन्स कॉपी करा. |
06:57 | OMEdit वर परत जा. |
07:00 | राईट-क्लिक करा आणि Paste निवडा. |
07:04 | पुन्हा एकदा टूलबारवरील Save बटणावर क्लिक करा. |
07:08 | Simulate वर क्लिक करा. |
07:11 | पॉप अप विंडो बंद करा. |
07:14 | पुन्हा एकदा Variables browser मध्ये h निवडा. |
07:18 | लक्षात घ्या की h वर्सेस 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 | आपण उदाहरणाद्वारे state events समजण्याचा प्रयत्न करू. |
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 मध्ये बॉलचे रेडिअस दर्शविते. |
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 युनिट्समध्ये बदला आणि Simulate वर क्लिक करा. |
11:04 | पॉप-अप विंडो बंद करा. |
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) इव्हेंट घडताना 10 ला a ची वॅल्यू असाईन करतो. |
12:08 | bouncingBall मॉडेलची सदोष वर्तन bouncingBallWithHysteresis मध्ये बरोबर असते. |
12:15 | bouncingBallWithHysteresis मॉडेल स्पोकन ट्युटोरिअल वेबसाईटवर उपलब्ध आहे. |
12:21 | bouncingBallWithHysteresis सिम्युलेट करा आणि h वर्सेस 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 | आम्ही स्पोकन ट्युटोरिअलचा उपयोग करून कार्यशाळा चालवितो. प्रमाणपत्रेदेखील देतो. कृपया आमच्याशी संपर्क साधा. |
12:48 | या स्पोकन ट्युटोरिअलशी संबंधित आपले काही प्रश्न असल्यास, कृपया खालील वेबसाईटला भेट द्या. |
12:55 | Textbook Companion Project अंतर्गत आम्ही लोकप्रिय पुस्तकांची सोडवलेल्या उदाहरणांच्या कोडिंगचे समन्वय करतो. |
13:03 | आम्ही अशा लोकांना मानधन आणि प्रमाणपत्रे देतो. अधिक माहितीसाठी कृपया खालील वेबसाईटला भेट द्या. |
13:10 | Lab Migration Project अंतर्गत आम्ही वाणिज्यिक सिम्युलेटर लॅब OpenModelica वर स्थलांतर करण्यास मदत करतो. |
13:17 | अधिक माहितीसाठी कृपया वेबसाईटला भेट द्या. |
13:21 | स्पोकन ट्युटोरिअल प्रोजेक्ट NMEICT, MHRD, भारत सरकारद्वारे समर्थित आहे. |
13:28 | त्यांच्या समर्थनासाठी आम्ही OpenModelica च्या विकसनशील टीमचे आभारी आहोत. |
13:33 | हे स्क्रिप्ट लता पोपळेद्वारे अनुवादित आहे. सहभागासाठी धन्यवाद. |