Простое моделирование MATLAB / Octave - PullRequest
4 голосов
/ 25 января 2010

Это должен быть очень простой вопрос для любого, кто имеет некоторый опыт в этой области, но я все еще новичок в этом.

У меня есть следующая система (или вот изображение с лучшим разрешением ):

альтернативный текст http://img199.imageshack.us/img199/2140/equation1.png

С учетом следующего ввода:

u = min(2 - t/7.5, 2*(mod(t, 2) < 1));

Мне нужно построить вывод системы y .

Я описываю систему с помощью следующей функции:

function xprime = func(t, x)
    u = min(2 - t/7.5, 2*(mod(t, 2) < 1));
    xprime = [
        x(2);
        x(3);
        0.45*u - 4*x(3)^2 - x(2)*x(1) - 4*x(2) - 2*x(1);
        x(5);
        sin(t) - 3*x(5)*x(1);
    ];

и имитация с ode23, вот так:

[tout, xout] = ode23(@func, [0 15], [1.5; 3; -0.5; 0; -1])

После моделирования xout будет иметь пять столбцов. У меня вопрос: как мне узнать, какой из них y системы?

РЕДАКТИРОВАТЬ: Хорошо, проще говоря, я хотел бы построить решение так:

a = 1 % what goes here? 1, 2, 3, 4 or 5?
plot(tout, xout(:,a))

Ответы [ 2 ]

3 голосов
/ 25 января 2010

Тот, который соответствует y, который, кажется, x (1), конечно.

Если вы сравните ваш код с уравнениями, вы увидите, что x (1) появляется в коде в каждом месте, где y появляется в уравнениях. Это было бы моим лучшим предположением.

1 голос
/ 25 января 2010

[T, Y, TE, YE, IE] = ode23 (odefun, tspan, y0, options)

В следующей таблице перечислены выходные аргументы для решателей.

  • T Вектор столбца временных точек.
  • Y Массив решения. Каждая строка в Y соответствует решению за раз, возвращенный в соответствующей строке T.
  • TE Время, когда происходит событие.
  • YE Решение во время события.
  • IE Индекс i функции события, которая исчезает.

Isten fizesse!

...