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

From Script | Spoken-Tutorial
Revision as of 17:27, 19 February 2018 by Latapopale (Talk | contribs)

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 हे ट्युटोरिअल समजून घेण्यासाठी व सराव करण्यासाठी, तुम्हांला खालील गोष्टी माहित असणे आवश्यक आहे : फिझिकल सिस्टमची इक्वेशनवर आधारीत 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 हे स्क्रिप्ट लता पोपळेद्वारे अनुवादित आहे. सहभागासाठी धन्यवाद.

Contributors and Content Editors

Latapopale, Ranjana