Я реализовал два контроллера в simulink; ПИД и нечеткий регулятор. оды для реализации обоих контроллеров разные. PID реализован в ode45, а нечеткий регулятор реализован в ode14x. Это делается для достижения желаемого отклика, т. е. сходимости к эталонному значению. Но все же я не могу понять, что означает изменение оды... Я знаю, что существуют разные методы решения од, но что именно я делаю, когда меняю оду в симулинке... направь меня.
Что означает изменение ОД в simulink
Ответы (2)
ОДУ являются решателями. Simulink вычисляет все шаг за шагом, поэтому ОДУ определяют длину шага (точка гнезда будет на 0,0001 секунды позже или на 0,5 позже?), а также произвел расчет числовых производных.
Например, ODE1 — это Эйлер. Производные самые простые: dF(n)=(F(n)-F(n-1))/At
и At
(шаг времени) всегда являются константами, определяемыми пользователем.
Конечно, ОДУ не всегда идеальны и не всегда работают во всех случаях, поэтому в Matlab их так много. и да, несколько раз ваш PID будет работать в ОДУ, но не в другом.
Кошмар отладки Simulink заключается в изменении вашей модели в течение нескольких дней, пока вы не поймете, что это ODE... Столько часов потрачено впустую...
Умеренно подробное описание/сравнение решателей можно найти на
http://www.mathworks.com/help/simulink/ug/choosing-a-solver.html