2015-11-09 9 views
0

Я использую функциональный блок simulink для имитации дифференциального уравнения xdot = -x+x^2 И в то же время я генерирую эту же функцию вручную, используя множитель и компаратор. В обоих симуляциях используется блок интегратора для вычисления производной xdot, где начальное условие интегратора установлено на интервал [-0.5:0.5:0.5].Функция неполадки Simulink

Я не могу понять, почему я получаю разные ответы от этих подобных симуляций? обратите внимание, что ответ моделирования моделирования вручную является правильным.

Вот Simulink модель: diff equa model

+0

Можете ли вы опубликовать то, что находится в той ссылке, на которую вы ссылались на вопрос? – Dethariel

+0

Хорошо, я смотрел вашу модель и не вижу никаких блоков шума или smth, которые имеют разные значения в разных симуляциях ... Может, я понял что-то неправильно? –

+0

@Mikhail_Sam: Вы имеете в виду, что вы получаете одинаковые кривые в двух областях? Я не! Скажите, пожалуйста, какую версию Matlab вы используете? – amin

ответ

0

AHA! Я получил это. Посмотрите на это (это симуляция в первый тайм): enter image description here Теперь мы видим проблему - Fcn блок не понимает, что u - это вектор! Таким образом, он работает только с первым элементом вашего вектора!

Я нашел это странно и зарегистрирую помощь: matlab official. И мы можем видеть это:

u - Вход в блок. Если u - вектор, то u (i) представляет элемент it вектора; u (1) или u представляет собой первый элемент.

So. Я думаю, что нижняя часть модели работает так, как вы хотите!

+0

Спасибо за ваш ответ – amin