OpenModelica/C2/Control-flow-and-Event-handling/Gujarati
From Script | Spoken-Tutorial
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 | નોંધ લો timeEventExample એ Libraries browser માં દ્રશ્યમાન થયું છે. |
02:39 | આ આઇકોન પર જમણું-ક્લિક કરો અને View class પસંદ કરો. |
02:44 | મોડેલ હવે Diagram view માં ખુલ્યું છે. |
02:47 | ત્રીજા બટન પર ક્લિક કરો જે કે Text View છે. |
02:51 | આપણે એ પહેલાથી જ ચર્ચા કરી ચુક્યા છીએ કે model અને class એ Modelica માં સમાનાર્થે વપરાય છે. |
02:58 | આ model નું નામ timeEventExample છે. |
03:02 | આ પ્રકારની Comments ને, model અથવા class ની પહેલી લાઈનમાં લખી શકાય છે. |
03:08 | h, v અને g એ freeFall 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 statement એ time વેરીએબલ પર constraint મુકે છે. |
03:58 | time એ Modelica માં ઇન-બિલ્ટ (આંતરિક) વેરીએબલ છે. |
04:01 | તેને class કે model માં નિશ્ચિતપણે ઘોષિત કરવાની જરૂર નથી. |
04:06 | દડો 0.5 સેકેંડ સમય પછી મુક્ત રીતે પડવાનું ચાલુ કરે છે. |
04:12 | તેથી, આ બે સમીકરણો freeFall class માં આવેલ પ્રમાણે સમાન સમીકરણો રજુ કરે છે. |
04:19 | else branch એ equations ધરાવે છે જે સમય 0.5 સેકેંડથી ઓછો હોય ત્યારે એક્ઝીક્યુટ થાય છે. |
04:27 | સમય 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 વિરુદ્ધ 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 | timeEventExample એ t = 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 અને 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 ફિલ્ડને ૩૦ એકમ બદલો અને 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 તરફથી ભાષાંતર કરનાર હું, ભરત સોલંકી વિદાય લઉં છું. જોડાવાબદ્દલ આભાર. |