Modelica
મોડલિકા એ જટિલ પ્રણાલીઓના ઘટક-લક્ષી મોડેલિંગ માટે ઓબ્જેક્ટ-ઓરિએન્ટેડ, ઘોષણાત્મક, મલ્ટી-ડોમેન મોડેલિંગ ભાષા છે, દા. ત., યાંત્રિક, વિદ્યુત, ઇલેક્ટ્રોનિક, હાઇડ્રોલિક, થર્મલ, નિયંત્રણ, વિદ્યુત શક્તિ અથવા પ્રક્રિયા-લક્ષી પેટા ઘટકો ધરાવતી પ્રણાલીઓ. મફત મોડલિકા ભાષા બિન-નફાકારક મોડલિકા એસોસિએશન દ્વારા વિકસાવવામાં આવી છે. મોડલિકા એસોસિએશન મફત મોડલિકા સ્ટાન્ડર્ડ લાઇબ્રેરી પણ વિકસાવે છે જેમાં આશરે 1400 સામાન્ય મોડલ ઘટકો અને વિવિધ ક્ષેત્રોમાં 1200 કાર્યો છે. લાક્ષણિકતાઓ જ્યારે મોડલિકા ઓબ્જેક્ટ-ઓરિએન્ટેડ પ્રોગ્રામિંગ ભાષાઓ જેવી છે, જેમ કે સી + + અથવા જાવા, તે બે મહત્વપૂર્ણ બાબતોમાં અલગ પડે છે. પ્રથમ, મોડલિકા એ પરંપરાગત પ્રોગ્રામિંગ ભાષાને બદલે મોડેલિંગ ભાષા છે. મોડલિકા વર્ગો સામાન્ય અર્થમાં સંકલિત કરવામાં આવતા નથી, પરંતુ તેમને વસ્તુઓમાં અનુવાદિત કરવામાં આવે છે જેનો ઉપયોગ પછી સિમ્યુલેશન એન્જિન દ્વારા કરવામાં આવે છે. સિમ્યુલેશન એન્જિન ભાષા દ્વારા નિર્દિષ્ટ નથી, તેમ છતાં કેટલીક જરૂરી ક્ષમતાઓની રૂપરેખા આપવામાં આવી છે. બીજું, વર્ગોમાં પ્રોગ્રામિંગ ભાષાઓમાં નિવેદનો અથવા બ્લોક જેવા અલ્ગોરિધમિક ઘટકો હોઈ શકે છે, તેમ છતાં તેમની પ્રાથમિક સામગ્રી સમીકરણોનો સમૂહ છે. લાક્ષણિક સોંપણી નિવેદનથી વિપરીત, જેમ કે x: = 2 + y; જ્યાં નિવેદનની ડાબી બાજુએ જમણી બાજુની અભિવ્યક્તિમાંથી ગણવામાં આવેલ મૂલ્ય સોંપવામાં આવે છે, ત્યાં સમીકરણમાં તેની જમણી અને ડાબી બંને બાજુએ અભિવ્યક્તિઓ હોઈ શકે છે, ઉદાહરણ તરીકે, x + y = 3 * z; સમીકરણો સોંપણીનું વર્ણન કરતા નથી પરંતુ સમાનતાનું વર્ણન કરે છે. મોડલિકાના શબ્દોમાં, સમીકરણોમાં કોઈ પૂર્વ-નિર્ધારિત કાર્યકારણ નથી. સિમ્યુલેશન એન્જિન સમીકરણોને તેમના અમલના ક્રમ અને સમીકરણમાં કયા ઘટકો ઇનપુટ્સ છે અને કયા આઉટપુટ છે તે નિર્ધારિત કરવા માટે પ્રતીકાત્મક રીતે હેરફેર કરી શકે છે (અને સામાન્ય રીતે કરવું જોઈએ). મોડલિકા ડિઝાઇનનો પ્રયાસ સપ્ટેમ્બર 1996માં હિલ્ડિંગ એલ્મક્વિસ્ટ દ્વારા શરૂ કરવામાં આવ્યો હતો. તેનો ધ્યેય તકનીકી પ્રણાલીઓના મોડેલિંગ માટે ઓબ્જેક્ટ-ઓરિએન્ટેડ ભાષા વિકસાવવાનો હતો જેથી પ્રમાણભૂત સ્વરૂપમાં ગતિશીલ પ્રણાલીના નમૂનાઓનો ફરીથી ઉપયોગ અને વિનિમય કરી શકાય. મોડલિકા 1 એ હિલ્ડિંગ એલ્મક્વિસ્ટના પીએચડી થીસીસ અને મોડેલિંગ ભાષાઓ એલન, ડાયમોલા, એન. એમ. એફ. ઓબ્જેક્ટમેથ, ઓમોલા, સિડોપ્સ + અને સ્માઇલના અનુભવ પર આધારિત છે. હિલ્ડિંગ એલ્મક્વિસ્ટ એ મોડલિકાના મુખ્ય આર્કિટેક્ટ છે, પરંતુ અન્ય ઘણા લોકોએ પણ યોગદાન આપ્યું છે (મોડલિકા સ્પષ્ટીકરણમાં એપેન્ડિક્સ ઇ જુઓ). સપ્ટેમ્બર 1997માં, મોડલિકા સ્પષ્ટીકરણનું સંસ્કરણ 1 બહાર પાડવામાં આવ્યું હતું, જે વ્યાપારી ડાયમોલા સોફ્ટવેર સિસ્ટમમાં પ્રોટોટાઇપ અમલીકરણ માટેનો આધાર હતો. વર્ષ 2000 માં, બિન-નફાકારક મોડલિકા એસોસિએશનની રચના સતત વિકસતી મોડલિકા ભાષા અને મફત મોડલિકા સ્ટાન્ડર્ડ લાઇબ્રેરીના વિકાસનું સંચાલન કરવા માટે કરવામાં આવી હતી. તે જ વર્ષે, ઔદ્યોગિક ઉપયોગોમાં મોડલિકાનો ઉપયોગ શરૂ થયો. આ કોષ્ટક મોડલિકા સ્પષ્ટીકરણ ઇતિહાસની સમયરેખા રજૂ કરે છેઃ મોડલિકા માટે અમલીકરણ વ્યાવસાયિક ફ્રન્ટ-એન્ડમાં ફ્રેન્ચ કંપની ઇમેજિન એસએ (હવે સિમેન્સ ડિજિટલ ઇન્ડસ્ટ્રીઝ સોફ્ટવેરનો ભાગ) માંથી એમેસિમ, સ્વીડિશ કંપની ડાયનાસિમ એબી (હવે ડેસોલ્ટ સિસ્ટમ્સનો ભાગ) માંથી ડાયમોલા, સ્વીડિશ કંપની વોલ્ફ્રમ મેથકોર એબી (હવે વોલ્ફ્રમ રિસર્ચનો ભાગ) માંથી વોલ્ફ્રમ સિસ્ટમમોડેલર (અગાઉ મેથમોડેલિકા), જર્મન કંપની ઇએસઆઈ આઈટીઆઈ જીએમબીએચમાંથી સિમ્યુલેશનએક્સ, કેનેડિયન કંપની મેપલસોફ્ટમાંથી મેપલસિમ, JModelica.org (ઓપન સોર્સ, બંધ) અને સ્વીડિશ કંપની મોડલન એબીમાંથી મોડલન ઇમ્પેક્ટ અને ડેસોલ્ટ સિસ્ટમ્સમાંથી સીએટીઆઈએ સિસ્ટમ્સનો સમાવેશ થાય છે. ઓપનમોડેલિકા એ એક ઓપન-સોર્સ મોડલિકા-આધારિત મોડેલિંગ અને સિમ્યુલેશન વાતાવરણ છે જે ઔદ્યોગિક અને શૈક્ષણિક ઉપયોગ માટે બનાવાયેલ છે. તેના લાંબા ગાળાના વિકાસને બિન-નફાકારક સંસ્થા-ઓપન સોર્સ મોડલિકા કન્સોર્ટિયમ (OSMC) દ્વારા ટેકો આપવામાં આવે છે. ઓપનમોડેલિકાના પ્રયાસ સાથેનો ધ્યેય સંશોધન, શિક્ષણ અને ઔદ્યોગિક ઉપયોગ માટે દ્વિસંગી અને સ્રોત કોડ સ્વરૂપમાં વિતરિત મફત સોફ્ટવેર પર આધારિત વ્યાપક ઓપન સોર્સ મોડલિકા મોડેલિંગ, સંકલન અને સિમ્યુલેશન વાતાવરણ બનાવવાનો છે. મુક્ત સિમ્યુલેશન વાતાવરણ સાયકોસ ઘટક મોડેલિંગ માટે મોડલિકાના સબસેટનો ઉપયોગ કરે છે. મોડલિકા ભાષાના મોટા ભાગ માટે ટેકો હાલમાં વિકાસ હેઠળ છે. તેમ છતાં, મોડેલિકા ભાષાને લગતા તમામ વિવિધ સાધનો વચ્ચે હજુ પણ કેટલીક અસંગતતા અને અલગ અર્થઘટન છે. ઉદાહરણો નીચેનો કોડ ટુકડો ફર્સ્ટ ઓર્ડર સિસ્ટમ () નું ખૂબ જ સરળ ઉદાહરણ દર્શાવે છેઃ મોડેલ ફર્સ્ટ ઓર્ડર પરિમાણ રિયલ c = 1 "સમય અચળાંક"; રિયલ x (પ્રારંભ = 10) "અજ્ઞાત"; સમીકરણ ડેર (x) =-c * x "પ્રથમ ક્રમ વિભેદક સમીકરણ"; એન્ડ ફર્સ્ટ ઓર્ડર; નીચેનો કોડ ટુકડો નીચે લખેલા પ્રોગ્રામને વિકસાવવાના સાધન તરીકે, OMShell નો ઉપયોગ કરીને, ત્રિકોણમિતીય કાર્યના બીજા વ્યુત્પન્નની ગણતરી કરવા માટે એક ઉદાહરણ દર્શાવે છે. આ ઉદાહરણ વિશે નોંધવા જેવી રસપ્રદ બાબતો 'પરિમાણ' ક્વોલિફાયર છે, જે સૂચવે છે કે આપેલ ચલ સમય-અપરિવર્તનશીલ છે અને 'ડેર' સંચાલક છે, જે ચલના સમય વ્યુત્પન્નને (પ્રતીકાત્મક રીતે) રજૂ કરે છે. દસ્તાવેજોની સ્ટ્રિંગ્સ પણ નોંધવા યોગ્ય છે જે ઘોષણાઓ અને સમીકરણો સાથે સંકળાયેલી હોઈ શકે છે. મોડલિકાનું મુખ્ય ઉપયોગ ક્ષેત્ર ભૌતિક પ્રણાલીઓનું મોડેલિંગ છે. સૌથી મૂળભૂત માળખાકીય વિભાવનાઓ વિદ્યુત ક્ષેત્રના સરળ ઉદાહરણોના હાથમાં દર્શાવવામાં આવી છેઃ બિલ્ટ-ઇન અને વપરાશકર્તા વ્યુત્પન્ન પ્રકારો મોડલિકામાં ચાર બિલ્ટ-ઇન પ્રકારો રિયલ, ઇન્ટિજર, બુલિયન, સ્ટ્રિંગ છે. લાક્ષણિક રીતે, વપરાશકર્તા-નિર્ધારિત પ્રકારો ભૌતિક જથ્થા, એકમ, નજીવા મૂલ્યો અને અન્ય વિશેષતાઓને સાંકળવા માટે મેળવવામાં આવે છેઃ પ્રકાર વોલ્ટેજ = વાસ્તવિક (જથ્થો = "ઇલેક્ટ્રિકલ પોટેન્શિયલ", એકમ = "V"); પ્રકાર કરંટ = વાસ્તવિક (જથ્થો = "ઇલેક્ટ્રિકલ કરેન્ટ", એકમ = "A"); ભૌતિક ક્રિયાપ્રતિક્રિયાને વર્ણવતા કનેક્ટર્સ અન્ય ઘટકો સાથેના ઘટકની ક્રિયાપ્રતિક્રિયાને ભૌતિક બંદરો દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે, જેને કનેક્ટર્સ કહેવાય છે, દા. ત., વિદ્યુત પિનને કનેક્ટર પિન "ઇલેક્ટ્રિકલ પિન" વોલ્ટેજ v "પિન પર સંભવિત" તરીકે વ્યાખ્યાયિત કરવામાં આવે છે; પ્રવાહ પ્રવાહ i "ઘટકમાં વહેતો પ્રવાહ"; અંતિમ પિન; જ્યારે બંદરો વચ્ચે જોડાણ રેખાઓ દોરવામાં આવે છે, ત્યારે તેનો અર્થ એ છે કે "પ્રવાહ" ઉપસર્ગ વિના અનુરૂપ કનેક્ટર ચલો છે. પ્રેરણા અનંત નાના જોડાણ બિંદુ પર સંબંધિત સંતુલન સમીકરણોને આપમેળે પૂર્ણ કરવાની છે. મૂળભૂત મોડેલ ઘટકો મૂળભૂત મોડેલ ઘટકને એક મોડેલ દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે અને તેમાં એવા સમીકરણો હોય છે જે સંયોજક ચલ વચ્ચેના સંબંધને ઘોષણાત્મક સ્વરૂપમાં વર્ણવે છે (એટલે કે, ગણતરી ક્રમમાં સ્પષ્ટ કર્યા વિના): મોડેલ કેપેસિટર પરિમાણ ક્ષમતા C; વોલ્ટેજ u "pin _ p અને pin _ n વચ્ચે વોલ્ટેજ ડ્રોપ"; pin pin _ p, pin _ n; સમીકરણ 0 = pin_p.i + pin_n.i; u = pin_p.v-pin_n.v; C * der (u) = pin_p.i; અંતિમ કેપેસિટર; ધ્યેય એ છે કે મોડેલ ઘટકોનો જોડાયેલ સમૂહ વિભેદક, બીજગણિત અને સ્વતંત્ર સમીકરણોના સમૂહ તરફ દોરી જાય છે જ્યાં અજ્ઞાતની સંખ્યા અને pin _ n ની સંખ્યા. મોડલિકામાં, આ કહેવાતા સંતુલિત નમૂનાઓની જરૂરિયાત દ્વારા પ્રાપ્ત થાય છે. સંતુલિત નમૂનાઓને વ્યાખ્યાયિત કરવા માટેના સંપૂર્ણ નિયમો ખૂબ જ જટિલ છે, અને વિભાગ 4.7 માંથી વાંચી શકાય છે. જો કે, મોટાભાગના કિસ્સાઓમાં, એક સરળ નિયમ જારી કરી શકાય છે, જે મોટાભાગના સિમ્યુલેશન સાધનોની જેમ જ ચલ અને સમીકરણોની ગણતરી કરે છેઃ જ્યારે તેના સમીકરણોની સંખ્યા તેના ચલની સંખ્યા જેટલી હોય ત્યારે એક મોડેલ સંતુલિત થાય છે. ચલ અને સમીકરણોની ગણતરી નીચેના નિયમ અનુસાર થવી જોઈએ તે જોતાંઃ-> મોડલ સમીકરણોની સંખ્યા = મોડલમાં વ્યાખ્યાયિત સમીકરણોની સંખ્યા + બહારના જોડકોમાં પ્રવાહ ચલની સંખ્યા-> મોડલ ચલની સંખ્યા = મોડલમાં વ્યાખ્યાયિત ચલની સંખ્યા (ભૌતિક જોડકોમાં ચલ સહિત) નોંધ લો કે પ્રમાણભૂત ઇનપુટ જોડકો (જેમ કે રિયલઇનપુટ અથવા ઇન્ટિજરઇનપુટ) ચલની ગણતરીમાં ફાળો આપતા નથી કારણ કે તેમની અંદર કોઈ નવા ચલ વ્યાખ્યાયિત નથી. આ નિયમનું કારણ ઉપર વ્યાખ્યાયિત કેપેસિટર વિશે વિચારીને સમજી શકાય છે. તેની પિનમાં પ્રવાહ ચલ હોય છે, એટલે કે. એક વર્તમાન, દરેક. જ્યારે આપણે તેને તપાસીએ છીએ, ત્યારે તે કંઈપણ સાથે જોડાયેલ નથી. આ દરેક પિન માટે સમીકરણ pin.i=0 સુયોજિત કરવા માટે અનુરૂપ છે. તેથી જ આપણે દરેક પ્રવાહ ચલ માટે એક સમીકરણ ઉમેરવું જોઈએ. દેખીતી રીતે ઉદાહરણ અન્ય કિસ્સાઓમાં વિસ્તૃત કરી શકાય છે, જેમાં અન્ય પ્રકારના પ્રવાહ ચલો સામેલ છે (દા. ત. દળો, ટોર્ક, વગેરે). જ્યારે આપણું કેપેસિટર તેની એક પિન દ્વારા બીજા (સંતુલિત) મોડેલ સાથે જોડાયેલ હોય, ત્યારે એક જોડાણ સમીકરણ પેદા થશે જે જોડાયેલ પિનના બે i = 0 સમીકરણોને બદલશે. જોડાણ સમીકરણ બે સ્કેલર સમીકરણોને અનુરૂપ હોવાથી, જોડાણ કામગીરી સંતુલિત મોટા મોડેલને છોડી દેશે (આપણા કેપેસિટર અને તેની સાથે જોડાયેલ મોડેલ દ્વારા રચાયેલ). ઉપરનું કેપેસિટર મોડેલ સંતુલિત છે, કારણ કે સમીકરણોની સંખ્યા = 3 + 2 = 5 (પ્રવાહ ચલાંકઃ pin_p.i, pin_n.i, u) ચલાંકની સંખ્યા = 5 (u, pin_p.u, pin_p.i, pin_n.u, pi_n.i) આ મોડેલની ઓપનમોડેલિકાનો ઉપયોગ કરીને ચકાસણી આપે છે, હકીકતમાં વર્ગ કેપેસિટર પાસે 5 સમીકરણ (ઓ) અને 5 ચલ (ઓ) છે. આમાંથી 3 તુચ્છ સમીકરણો છે. ઇનપુટ કનેક્ટર્સ અને ભૌતિક કનેક્ટર્સ બંને ધરાવતું બીજું ઉદાહરણ મોડલિકા સ્ટાન્ડર્ડ લાઈબ્રેરીનું નીચેનું ઘટક છેઃ મોડલ સિગ્નલ વોલ્ટેજ "સ્રોત વોલ્ટેજ તરીકે ઇનપુટ સિગ્નલનો ઉપયોગ કરતા સામાન્ય વોલ્ટેજ સ્રોત" Interfaces.PositivePin p; Interfaces.NegativePin n; Modelica.Blocks.Interfaces.RealInput v (એકમ = "V") "ઇનપુટ સિગ્નલ તરીકે પિન p અને n વચ્ચેનો વોલ્ટેજ"; SI.Current i "પિન p થી પિન n સુધી વહેતો કરંટ"; સમીકરણ v = p. v-n. v; 0 = p. i + n. i; i = p. i; એન્ડ સિગ્નલ વોલ્ટેજ; ઘટક સિગ્નલ વોલ્ટેજ સમીકરણોની સંખ્યા = 3 + 2 = 5 થી સંતુલિત છે. આમાંથી 4 તુચ્છ સમીકરણો છે. શ્રેણીબદ્ધ મોડેલ મૂળભૂત મોડેલોમાંથી, મૂળભૂત મોડેલોને ત્વરિત કરીને, મોડેલ પરિમાણો માટે યોગ્ય મૂલ્યો પ્રદાન કરીને અને મોડેલ કનેક્ટર્સને જોડીને એક શ્રેણીબદ્ધ મોડેલ બનાવવામાં આવે છે. એક લાક્ષણિક ઉદાહરણ નીચેની વિદ્યુત સર્કિટ છેઃ મોડેલ સર્કિટ કેપેસિટર C1 (C = 1e-4) "ઉપરના મોડેલમાંથી એક કેપેસિટર ઉદાહરણ"; કેપેસિટર C2 (C = 1e-5) "ઉપરના મોડેલમાંથી એક કેપેસિટર ઉદાહરણ"; સમીકરણ કનેક્ટ (C1.pin_p, C2.pin_n);. અંતિમ સર્કિટ; ભાષા તત્વ એનોટેશન (.) દ્વારા, વ્યાખ્યાઓ એવા મોડેલમાં ઉમેરી શકાય છે જેનો સિમ્યુલેશન પર કોઈ પ્રભાવ નથી. એનોટેશન્સનો ઉપયોગ ગ્રાફિકલ લેઆઉટ, દસ્તાવેજીકરણ અને સંસ્કરણ માહિતીને વ્યાખ્યાયિત કરવા માટે થાય છે. વિવિધ મોડેલિકા સાધનોમાં મોડેલોનો ગ્રાફિકલ દેખાવ અને લેઆઉટ સમાન છે તેની ખાતરી કરવા માટે ગ્રાફિકલ એનોટેશન્સનો મૂળભૂત સમૂહ પ્રમાણિત કરવામાં આવે છે. એપ્લિકેશન્સ મોડલિકા ડોમેન ન્યુટ્રલ બનવા માટે રચાયેલ છે અને પરિણામે, તેનો ઉપયોગ વિવિધ પ્રકારની એપ્લિકેશનોમાં થાય છે, જેમ કે પ્રવાહી પ્રણાલીઓ (ઉદાહરણ તરીકે, વરાળ પાવર જનરેશન, હાઇડ્રોલિક્સ, વગેરે). ), ઓટોમોટિવ એપ્લિકેશન્સ (ખાસ કરીને પાવરટ્રેન) અને મિકેનિકલ સિસ્ટમ્સ (ઉદાહરણ તરીકે, મલ્ટી-બોડી સિસ્ટમ્સ, મેકાટ્રોનિક્સ, વગેરે). ઓટોમોટિવ ક્ષેત્રમાં, ઘણા મુખ્ય ઓટોમોટિવ ઓઇએમ મોડલિકાનો ઉપયોગ કરી રહ્યા છે. તેમાં ફોર્ડ, જનરલ મોટર્સ, ટોયોટા, બીએમડબલ્યુ અને ડેમ્લેરનો સમાવેશ થાય છે. થર્મો-પ્રવાહી અને ઊર્જા પ્રણાલીઓના અનુકરણ માટે પણ મોડલિકાનો વધુને વધુ ઉપયોગ કરવામાં આવી રહ્યો છે. મોડલિકા (એકોઝલ, ઓબ્જેક્ટ-ઓરિએન્ટેડ, ડોમેન ન્યુટ્રલ) ની લાક્ષણિકતાઓ તેને સિસ્ટમ-લેવલ સિમ્યુલેશન માટે સારી રીતે અનુકૂળ બનાવે છે, એક ડોમેન જ્યાં મોડલિકા હવે સારી રીતે સ્થાપિત છે. એ. એમ. ઇ. એસ. એમ. એ. એમ. પી. એલ. એ. પી. મોનિટર એ. એસ. સી. ઇ. એન. ડી. ડોમેન-સ્પેસિફિક મોડેલિંગ ડી. એસ. એમ. ડાયમોલા ઇકોસિમપ્રોઃ સતત અને અલગ મોડેલિંગ અને સિમ્યુલેશન સોફ્ટવેર ઇ. એમ. એસ. ઓ. જી. એ. એમ. એસ. <આઇ. ડી. 1> ઓપનમોડેલિકા મેપલસિમ મેટલેબ સિમ્યુલેશનએક્સ સિમુલિંક વોલ્ફ્રેમ સિસ્ટમમોડેલર સાયલેબ/એક્સકોસ કેપ્લર (ટોલેમી) નોંધો બાહ્ય લિંક્સ મોડલિકા લેંગ્વેજ સ્પષ્ટીકરણ સંસ્કરણ 3.6 મોડલિકા એસોસિએશન, બિન-નફાકારક મોડલિકા એસોસિએશનનું હોમપેજ (મોડલિકા વિકસાવવું) મોડલિકા ઉદાહરણ દ્વારા મોડલિકા શીખવા માટે એક મફત ઇન્ટરેક્ટિવ એચ. ટી. એમ. એલ. પુસ્તક, માઇકલ ટિલર દ્વારા મોડલિકા સાથે શારીરિક મોડેલિંગનો પરિચય,