МАТЛАБ: Используете решения ODE? - PullRequest
1 голос
/ 18 декабря 2008

Это действительно простой вопрос, но я впервые использую MATLAB и застрял. Мне нужно смоделировать простую серию RC-сети, используя 3 различных метода численного интегрирования. Я думаю, что понимаю, как использовать решатели Ода, но я не знаю, как ввести дифференциальное уравнение системы. Нужно ли делать это через m-файл?

Это просто RC-схема в виде:

RC dy(t)/dt + y(t) = u(t)

с нулевыми начальными условиями. У меня есть значения для R, C, длины шага и времени моделирования, но я не знаю, как использовать MATLAB особенно хорошо.

Любая помощь очень ценится!

Ответы [ 2 ]

4 голосов
/ 18 декабря 2008

Вам понадобится файл функции, который принимает t и y в качестве входных данных и дает dy в качестве выходных данных. Это будет собственный файл со следующим заголовком.

function dy = rigid(t,y)

Сохраните его как hard.m на пути MATLAB.

Оттуда вы бы вставили свое дифференциальное уравнение. Теперь у вас есть функция. Вот простой:

function dy = rigid(t,y)

dy = sin(t);

Из командной строки или скрипта вам нужно запустить эту функцию через ODE45

[T,Y] = ode45(@rigid,[0 2*pi],[0]);

Это даст вам вашу функцию (hard.m), работающую с время 0 через время 2 * pi с начальным y, равным нулю .

Сюжет:

plot(T,Y)

alt text

Больше документации MATLAB здесь:

http://www.mathworks.com/access/helpdesk/help/techdoc/ref/ode23tb.html

1 голос
/ 18 декабря 2008

Официальный ускоренный курс по Matlab (предупреждение в формате PDF) содержит раздел, посвященный решению проблем ODE, а также множество других ресурсов, которые я нашел полезными при запуске Matlab.

...