tôi có vấn đề với tọa độ cartesian con lắc EOM trong matlab [đã đóng]


0

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Tôi đã tạo mã của mình như thế này,

function DK = pendulum_cartesian(t,K)    
g = 9.8; l = sqrt(K(1)^2 + K(2)^2);  
DK = zeros(4,1);
DK(1) = K(3);
DK(2) = K(4);
DK(3) = ( (-K(1)*K(3)^2) - (K(1)*K(4)^2) + K(1)*K(2)*g )/(l^2);
DK(4) = ( (-K(2)*K(3)^2) - (K(2)*K(4)^2) - (K(1)^2)*g )/(l^2);

theta = atan(K(2)/K(1));

plot(t,theta);

end

và tôi đã gõ

[t, K] = ode45 (@pendulum_cartesian, [0,10], [0,1,0.00017,0.1,0])

nhưng không có giá trị trong theta, và không có gì.

vấn đề ở đâu


1
Thực tế là bạn không nhận được đầu ra cho thấy đây là một vấn đề mã hóa, không phải là vấn đề về phương pháp số kỹ thuật. Tôi sẽ đề nghị một diễn đàn khác, trợ giúp mã hóa là lạc đề ở đây.
BarbalatsDilemma

xin lỗi tôi xin lỗi ...
máy móc

không cần phải xin lỗi, tôi chỉ cho bạn biết
BarbalatsDilemma

Câu trả lời:


0

Giả sử phương trình của bạn và mã của bạn là chính xác.

Đây là những gì tôi đã sử dụng cho chức năng:

function DK = pendulum_cartesian(t,K)    
DK = zeros(4,1);
DK(1) = K(3);
DK(2) = K(4);
DK(3) = ( (-K(1)*K(3)^2) - (K(1)*K(4)^2) + K(1)*K(2)*9.81 )/(K(1)^2 + K(2)^2);
DK(4) = ( (-K(2)*K(3)^2) - (K(2)*K(4)^2) - (K(1)^2)*9.81 )/(K(1)^2 + K(2)^2);
end

Sau đó chạy với:

[t,K] = ode45(@pendulum_cartesian, [0,10], [0.1;0.00017;0.1;0]);
theta = atan(K(:,2)/K(:,1));
plot(t,theta);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.