मैं संख्यात्मक दृष्टिकोण से हाइब्रिड मॉडलिंग (विशेष रूप से राज्य घटनाओं) के पीछे सामान्य विचार को समझना चाहता हूं (हालांकि मैं गणितज्ञ नहीं हूं :))।मॉडलिका घटनाएं और हाइब्रिड मॉडलिंग
model BouncingBall
constant Real g=9.81
Real h(start=1);
Real v(start=0);
equation
der(h)=v;
der(v)=-g;
algorithm
when h < 0 then
reinit(v,-pre(v));
end when;
end BouncingBall;
मैं when
और reinit
की अवधारणा को समझने: निम्नलिखित माडेलिका मॉडल को देखते हुए।
when
कथन में समीकरण केवल तभी सक्रिय होता है जब स्थिति सही हो जाती है?- मान लीजिए कि गेंद बिल्कुल
2sec
पर फर्श पर पहुंच जाएगी। चूंकि मैं मल्टी-स्टेप सॉल्वर का उपयोग कर रहा हूं, इसका मतलब यह है कि सॉल्वर "2 सेकंड से अधिक हो जाता है", यह पहचानता है किh<0
(सिमुलेशनtime = 2.5sec
,h = -0.7
पर मान लें)। इसका मतलब "घटना के लिए समय एक पार फंक्शन का उपयोग करके खोज कर रहा है? क्या करता है इसे आसानी से समझा (उदाहरण)? - solver अब वापस जाने? एक छोटे कदम आकार ले रहा है है?
pre()
करता क्या है ऑपरेशन का मतलब उस संदर्भ में है?noEvent()
: "पारगमन कार्यों को उत्पन्न करने के बजाय अभिव्यक्तियों को सचमुच लिया जाता है। चूंकि कोई क्रॉसिंग फ़ंक्शन नहीं है, इसलिए कोई आवश्यकता नहीं है कि अभिव्यक्ति का मूल्यांकन घटना सीमा से परे किया जा सकता है ": इसका क्या अर्थ है? बाउंसिंग बॉल के साथ एक ही उदाहरण को देखते हुए: सॉल्वर समय 2.5 पर एच = 0.7 का पता लगाता है। साथ औरnoEvent()
बिना के बीच का अंतर
मेरा सुझाव है कि आप मॉडलिका पुस्तक में पढ़ लें: http: //book.xogeny।कॉम/व्यवहार/असतत/ संक्षेप में: 1) हां 2) क्रॉसिंग फ़ंक्शन का अर्थ है कि जब एच शून्य को पार करता है, तो सॉल्वर सिग्नल के व्युत्पन्न का उपयोग कर रहा है ताकि छोटे चरण के आकार को महसूस किया जा सके, लेकिन यह इस पर निर्भर करता है सॉल्वर 3) दोनों, सॉल्वर के आधार पर 4) पूर्व पिछले चरण 5 से अलग चर का मान है) मूल रूप से सिग्नल शून्य पार होने पर कोई घटना उत्पन्न नहीं होती है, इसलिए सॉल्वर बंद नहीं होता है (कोई घटना नहीं) इसलिए मूल रूप से अभिव्यक्ति का मूल्यांकन किया जाता है केवल चरण सीमा पर –