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

From Script | Spoken-Tutorial
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 અને Ubuntu Operating સીસ્ટમ આવૃત્તિ 14.04.
00:30 પરંતુ, આ પ્રક્રિયા Windows, Mac OS X અથવા ARM પરની FOSSEE OS માં એકસમાન છે.
00:38 આ ટ્યુટોરીયલને સમજવા તથા તેનો અભ્યાસ કરવા માટે, તમને આપેલ વિશે જાણકારી જરૂરી છે: ભૌતિક સિસ્ટમોની સમીકરણ-આધારિત modeling,
00:47 કોઈપણ પ્રોગ્રામિંગ ભાષામાં શાખાપદ્ધતિ, Modelica માં class વ્યાખ્યા
00:53 પૂર્વ-જરૂરીયાત ટ્યુટોરીયલોને Spoken Tutorial વેબસાઈટ પર ઉલ્લેખિત કરાયા છે. કૃપા કરી તેનાં મારફતે જાવ.
01:00 freeFall ક્લાસને પાછલા ટ્યુટોરીયલોમાં પહેલાથી જ ચર્ચા કરાયું હતું.
01:05 હવે, ચાલો તેમાં constraint ઉમેરીએ.
01:08 t = 0.5 સેકેંડ સુધી દડો વિશ્રામ અવસ્થામાં છે. gravity હેઠળ મુક્ત રીતે પડવું સમય t = 0.5 સેકેંડે શરુ થાય છે.
01:19 મેં timeEventExample નામથી એક model બનાવી છે જે આ સ્થિતિને સિમ્યુલેટ કરે છે.
01:25 timeEventExample ફાઈલ એ spoken tutorial વેબસાઈટ પર આવેલ Code Files લીંકમાં ઉપલબ્ધ છે.
01:32 કૃપા કરી Code Files લીંકમાં આવેલ તમામ ફાઈલોને ડાઉનલોડ કરો અને સંગ્રહો.
01:38 તમારી સુવિધા માટે, freeFall class ને પણ ઉપલબ્ધ કરાયો છે.
01:43 હવે ચાલો હું OMEdit પર જાઉં.
01:45 મેં તેનો પ્રારંભ મારી સીસ્ટમ પર પહેલાથી જ કરી દીધો છે.
01:49 Ubuntu Operating System પર 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 નોંધ લો timeEventExampleLibraries browser માં દ્રશ્યમાન થયું છે.
02:39 આ આઇકોન પર જમણું-ક્લિક કરો અને View class પસંદ કરો.
02:44 મોડેલ હવે Diagram view માં ખુલ્યું છે.
02:47 ત્રીજા બટન પર ક્લિક કરો જે કે Text View છે.
02:51 આપણે એ પહેલાથી જ ચર્ચા કરી ચુક્યા છીએ કે model અને classModelica માં સમાનાર્થે વપરાય છે.
02:58 model નું નામ timeEventExample છે.
03:02 આ પ્રકારની Comments ને, model અથવા class ની પહેલી લાઈનમાં લખી શકાય છે.
03:08 h, v અને gfreeFall class માં આપ્યા પ્રમાણે, સમાન પરિમાણ રજુ કરે છે.
03:16 initial equation વિભાગ શરૂઆતી અવસ્થાઓ ધરાવે છે.
03:21 t = 0 સમયે h ની વેલ્યુ 30m છે.
03:26 t = 0 સમયે v ની વેલ્યુ 0 છે.
03:31 Equation એ આ model નાં સમીકરણ વિભાગની શરૂઆત દર્શાવે છે.
03:36 હવે, ચાલો જોઈએ કે સ્લાઈડમાં સમજાવેલ constraint ને કેવી રીતે દાખલ કરવું છે.
03:43 નોંધ લો દર્શાવ્યા પ્રમાણે equation વિભાગમાં એક if-else block છે.
03:48 ચાલો આ if-else block નાં દરેક સ્ટેટમેંટને સમજવાનો પ્રયાસ કરીએ.
03:53 if statementtime વેરીએબલ પર constraint મુકે છે.
03:58 timeModelica માં ઇન-બિલ્ટ (આંતરિક) વેરીએબલ છે.
04:01 તેને class કે model માં નિશ્ચિતપણે ઘોષિત કરવાની જરૂર નથી.
04:06 દડો 0.5 સેકેંડ સમય પછી મુક્ત રીતે પડવાનું ચાલુ કરે છે.
04:12 તેથી, આ બે સમીકરણો freeFall class માં આવેલ પ્રમાણે સમાન સમીકરણો રજુ કરે છે.
04:19 else branchequations ધરાવે છે જે સમય 0.5 સેકેંડથી ઓછો હોય ત્યારે એક્ઝીક્યુટ થાય છે.
04:27 સમય 0.5 સેકેંડથી ઓછો હોય ત્યારે દડો વિશ્રામ સ્થિતીમાં રહે છે.
04:32 તેથી, આ કિસ્સામાં આ બે equations બરાબર છે.
04:36 end ifif-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 એરર મેસેજ એ કહે છે કે દરેક 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 ને બે statements દ્વારા બદલી કરી શકાવાય છે.
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 વપરાશકર્તાઓ આ ફાઈલને ખોલવા માટે Notepad નો અથવા એવા જ કોઈ ટેક્સ્ટ એડીટરનો ઉપયોગ કરી શકે છે.
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 માંનાં equations ની સંખ્યા else branch માના સમીકરણોની સંખ્યા બરાબર હોવી જોઈએ.
08:03 અને આ બંને class અથવા model માના વેરીએબલોની સંખ્યા બરાબર હોવા જોઈએ.
08:10 Event એ સીસ્ટમની વર્તણુકમાં એકાએક થયેલ ફેરફાર છે.
08:15 Events નું વર્ગીકરણ સમય બનાવ અને સ્થિતી બનાવ તરીકે થઇ શકે છે.
08:20 time event માં, બનાવ થવાનાં સમયની ચોક્કસપણે જાણકારી હોય છે.
08:25 timeEventExamplet = 0.5 સેકન્ડે સમય બનાવને નિયંત્રિત કરે છે.
08:32 state event ત્યારે ઉદ્દભવે છે જ્યારે સીસ્ટમ વેરીએબલ અમુક ચોક્કસ વેલ્યુને વટાવે છે.
08:38 ચાલો એક ઉદાહરણ વડે સ્થિતી બનાવને સમજવાનો પ્રયાસ કરીએ.
08:43 મુક્ત રીતે પડવાના અંતર્ગત દડો, જમીનનાં સ્પર્શ થવા પર state event નો સામનો કરે છે.
08:48 આપેલ વર્તનનું અવલોકન થાય છે જ્યારે તે જમીન પર પટકાય છે.
08:52 દડાની ગતિ દિશામાં ફેરવાય છે.
08:55 અથડામણ જો બિન-સ્થિતિસ્થાપક હોય તો ગતિની તીવ્રતા બદલાય છે.
09:00 આ વર્તનને સિમ્યુલેટ કરવા માટે મેં bouncingBall નામનું એક model બનાવ્યું છે.
09:06 આ ફાઈલ Spoken Tutorial વેબસાઈટ પર ઉપલબ્ધ છે.
09:10 model ને જોવા અને તેને સિમ્યુલેટ કરવા માટે, ચાલો હું OMEdit પર પાછો જાઉં.
09:15 OpenModel/LIbrary File ટૂલ પર ક્લિક કરો.
09:19 bouncingBall ફાઈલને તમારી સીસ્ટમમાં શોધો અને Open પર ક્લિક કરો.
09:25 Libraries browser માં bouncingBall આઇકોન પર જમણું-ક્લિક કરો અને View Class પસંદ કરો.
09:33 model જો Text View માં ન ખુલે તો, modeling area માં ટોંચે જાવ અને Text View બટન પર ક્લિક કરો.
09:41 e એ પૃથ્વી સાથે બોલની બિન-સ્થિતિસ્થાપક અથડામણ માટે પુન: પ્રાપ્તિનો ગુણાંક છે.
09:48 તે એક પરિમાણ છે અને તેની વેલ્યુ સમગ્ર સિમ્યુલેશન રન દરમ્યાન 0.8 પર અચલ રહે છે.
09:56 radius એ દડાની ત્રિજ્યા m માં દર્શાવે છે.
10:00 h, v અને gtimeEventExample માં આવેલ પ્રમાણે સમાન માત્રા રજુ કરે છે.
10:07 ગતિનાં આ બે સમીકરણોની ચર્ચા freeFall class માં પહેલાથી જ થઇ ચુકી છે.
10:13 when statement નો ઉપયોગ બનાવનાં સંકેત હેતુ થાય છે.
10:17 બનાવ ઉદ્દભવવા પર શું ક્રિયા કરવી છે તેને તે સ્પષ્ટ કરે છે.
10:22 h <= radiustrue રહે છે જ્યારે દડો જમીનથી સંપર્કમાં હોય છે.
10:29 જ્યારેપણ બનાવ ઉદ્દભવે ત્યારે આ statement એક્ઝીક્યુટ થાય છે.
10:34 reinit() ફંક્શનનો ઉપયોગ વેરીએબલને ફરીથી પ્રારંભિત કરવા માટે થાય છે.
10:39 અહીં, તે e નાં નકારાત્મક ગુણન સાથે દડાની ગતિને તથા જમીનને સ્પર્શ કરવા પહેલા દડાની ગતિને ફરીથી પ્રારંભિત કરે છે.
10:49 આ મોડેલને સિમ્યુલેટ કરવા માટે ટૂલબારમાં આવેલ Simulation Setup બટન પર ક્લિક કરો.
10:55 General ટેબ અંતર્ગત, Stop Time ફિલ્ડને ૩૦ એકમ બદલો અને 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 મોડેલ એ spoken tutorial વેબસાઈટ પર ઉપલબ્ધ છે.
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 તે Spoken Tutorial પ્રોજેક્ટનો સારાંશ આપે છે
12:42 અમે સ્પોકન ટ્યુટોરીયલનો ઉપયોગ કરીને વર્કશોપો આયોજિત કરીએ છીએ, પ્રમાણપત્રો આપીએ છીએ, કૃપા કરી અમને સંપર્ક કરો.
12:48 જો તમારી પાસે આ ટ્યુટોરીયલને લગતા કોઈ પ્રશ્નો છે તો, કૃપા કરી આપેલ વેબસાઈટની મુલાકાત લો.
12:55 Textbook Companion Project અંતર્ગત અમે વિખ્યાત પુસ્તકોનાં ઉકેલાયેલા ઉદાહરણોનાં કોડીંગનું સંકલન કરીએ છીએ.
13:03 જેઓ આ કરે છે તેમને અમે માનદ તથા પ્રમાણપત્રો આપીએ છીએ. વધુ વિગત માટે કૃપા કરી આપેલ વેબસાઈટનો સંદર્ભ લો.
13:10 Lab Migration Project અંતર્ગત અમે વ્યવસાયિક સીમ્યુલેટર લેબોને ઓપનમોડેલીકામાં સ્થાનાંતરિત કરવામાં મદદ કરીએ છીએ.
13:17 વધુ વિગત માટે કૃપા કરી વેબસાઈટની મુલાકાત લો.
13:21 Spoken Tutorial Project ને આધાર NMEICT, MHRD, ભારત સરકાર દ્વારા આપવામાં આવ્યો છે.
13:28 અમે OpenModelica ની ડેવલપમેંટ (વિકાસ) ટીમનો, તેમનાં સહકાર બદ્દલ આભાર માનીએ છીએ.
13:33 IIT Bombay તરફથી ભાષાંતર કરનાર હું, ભરત સોલંકી વિદાય લઉં છું. જોડાવાબદ્દલ આભાર.

Contributors and Content Editors

Bharat636