मैं एक डबल-पेंडुलम जैसी प्रणाली के व्यवहार का अनुकरण करना चाहता हूं। प्रणाली एक 2-डिग्री-ऑफ-फ्रीडम रोबोट मैनिपुलेटर है जिसे सक्रिय नहीं किया जाता है और इसलिए, गुरुत्वाकर्षण से प्रभावित एक डबल-पेंडुलम की तरह व्यवहार करते हैं। एक डबल-पेंडुलम के साथ एकमात्र मुख्य अंतर यह है कि यह द्रव्यमान के दो केंद्रों में द्रव्यमान और जड़ता गुणों के साथ दो कठोर निकायों से बना है।
मूल रूप से, मैंने ode45
निम्न प्रकार के ODEs की एक प्रणाली को हल करने के लिए मतलाब के तहत प्रोग्राम किया:
जहाँ क्षैतिज के संबंध में पहले शरीर का कोण है, पहले शरीर का कोणीय वेग है; पहले शरीर के संबंध में दूसरे शरीर का कोण है, और दूसरे शरीर का कोणीय वेग है। सभी गुणांक निम्नलिखित कोड में rhs
और fMass
मेरे द्वारा बनाए गए कार्यों में निर्दिष्ट हैं ।
clear all
opts= odeset('Mass',@fMass,'MStateDependence','strong','MassSingular','no','OutputFcn',@odeplot);
sol = ode45(@(t,x) rhs(t,x),[0 5],[pi/2 0 0 0],opts);
function F=rhs(t,x)
m=[1 1];
l=0.5;
a=[0.25 0.25];
g=9.81;
c1=cos(x(1));
s2=sin(x(3));
c12=cos(x(1)+x(3));
n1=m(2)*a(2)*l;
V1=-n1*s2*x(4)^2-2*n1*s2*x(2)*x(4);
V2=n1*s2*x(2)^2;
G1=m(1)*a(1)*g*c1+m(2)*g*(l*c1+a(2)*c12);
G2=m(2)*g*a(2)*c12;
F(1)=x(2);
F(2)=-V1-G1;
F(3)=x(4);
F(4)=-V2-G2;
F=F';
end
function M=fMass(t,x)
m=[1 1];
l=0.5;
Izz=[0.11 0.11];
a=[0.25 0.25];
c2=cos(x(3));
n1=m(2)*a(2)*l;
M11=m(1)*a(1)^2+Izz(1)+m(2)*(a(2)^2+l^2)+2*n1*c2+Izz(2);
M12=m(2)*a(2)^2+n1*c2+Izz(2);
M22=m(2)*a(2)^2+Izz(2);
M=[1 0 0 0;0 M11 0 M12;0 0 1 0;0 M12 0 M22];
end
ध्यान दें कि मैंने की प्रारंभिक स्थिति कैसे निर्धारित की है (क्षैतिज के संबंध में पहले शरीर का कोण) ताकि सिस्टम पूरी तरह से ऊर्ध्वाधर स्थिति में शुरू हो। इस तरह, चूंकि केवल गुरुत्वाकर्षण ही कार्य कर रहा है, इसलिए स्पष्ट परिणाम यह है कि सिस्टम को उस स्थिति से बिल्कुल भी नहीं हटना चाहिए।
नोट: नीचे दिए गए सभी ग्राफिक्स में, मैंने समय के संबंध में समाधान और को प्लॉट किया ।
ODE45
जब मैं 6 सेकंड के लिए सिमुलेशन चलाता हूं ode45
, तो मुझे बिना किसी समस्या के अपेक्षित समाधान मिलता है, सिस्टम जहां रहता है, वहीं रुकता है:
हालाँकि, जब मैं 10 सेकंड के लिए सिमुलेशन चलाता हूं, तो सिस्टम अनुचित रूप से चलना शुरू कर देता है:
ODE23
मैंने इसके बाद सिमुलेशन चलाया कि ode23
क्या समस्या बनी रहती है। मैं उसी व्यवहार के साथ समाप्त होता हूं, केवल इस बार विचलन 1 सेकंड बाद शुरू होता है:
ODE15s
मैंने इसके बाद सिमुलेशन चलाया कि ode15s
क्या समस्या बनी रहती है और नहीं, यह प्रणाली 100 सेकंड के दौरान भी स्थिर प्रतीत होती है:
ode15s
ode15s
MaxStep
ode45
ode23
आम तौर पर, इन सिमुलेशन का स्पष्ट परिणाम यह होगा कि सिस्टम अपनी प्रारंभिक स्थिति पर रहता है क्योंकि कुछ भी इसे खराब नहीं कर रहा है। यह विचलन क्यों हो रहा है? क्या इसका इस तथ्य से कोई लेना-देना है कि इस प्रकार की प्रणालियाँ प्रकृति में अराजक हैं? क्या ode
मतलाब में कार्यों के लिए यह एक सामान्य व्यवहार है ?
x1
और x3
। (किंवदंतियों या विवरण के बिना रेखांकन के बारे में सूखी टिप्पणी डालें।) (के निरपेक्ष मूल्यों) x2
और के लघुगणक की साजिश रचने का प्रयास करें x4
।