J'essaie de résoudre un problème de valeur limite d'un système q' = f(q(t), a(t))
avec une entrée a
en utilisant bvp4c dans Matlab. Où q = [q1, q2, q1_dot, q2_dot]'
Résoudre la valeur limite avec bvp4c Matlab
Mon code Matlab ne fonctionne pas correctement. Quelqu'un sait-il comment résoudre ceci?
img: System Equation of the One Pendulum
a
est une fonction d'entrée.
l'état initial: q1(0) = pi, q2(0) = 0, q1_dot(0) = 0, q2_dot(0) = 0.
l'état final: q1(te) = 0, q2(te) = 0, q1_dot(te) = 0, q2_dot(te) = 0.
: a(0) = 0,
et l'état final: a(te) = 0
.
J'ai au total 10 limites. one_pendulum_bc peut prendre seulement 5 et pas plus et moins.
function one_pendulum
options = []; % place holder
solinit = bvpinit(linspace(0,1,1000),[pi, 0, 0, 0],0);
sol = bvp4c(@one_pendulum_ode,@one_pendulum_bc,solinit,options);
t = sol.x;
plot(t, sol.y(1,:))
figure(2)
plot(t, sol.y(2,:))
figure(3)
plot(t, sol.y(3,:))
figure(4)
plot(t, sol.y(4,:))
% --------------------------------------------------------------------------
function dydx = one_pendulum_ode(x,y,a)
% Parameter of the One-Pendulum
m1 = 0.3583; % weight of the pendulum [kg]
J1 = 0.03799; % moment of inertia [Nms^2]
a1 = 0.43; % center of gravity [m]
d1 = 0.006588; % coefficient of friction [Nms]
g = 9.81; % gravity [m/s^2]
dydx = [ y(3)
y(4)
(a*a1*m1*cos(y(1)) + a1*g*m1*sin(y(1)) - d1*y(3))/(J1 + a1^2 *m1)
a ];
% --------------------------------------------------------------------------
function res = one_pendulum_bc(ya,yb,a)
res = [ya(1) - pi
ya(2)
ya(4)
yb(1)
yb(3)];
img: The result should look like this
Soyez plus précis au sujet de votre problème: Qu'est-ce qui ne fonctionne pas correctement? Est-ce que la sortie n'est pas ce que vous attendiez? Est-ce que le code renvoie une erreur? Et si oui, quelle commande le cause et quel est le message d'erreur? –
@LeanderMoesinger Désolé pour mon mauvais anglais. Je ne reçois aucun message d'erreur, c'est juste la sortie à laquelle je ne m'attendais pas. La sortie est erronée. – user3730973
Deux équations différentielles de deuxième ordre nécessitent seulement quatre conditions aux limites pour être uniques; plus de quatre rend le problème sur-déterminé. Vous sur-spécifiez le problème. – TroyHaskin