PDA

Просмотр полной версии : Вопрос по MATLAB Simulink


Ghost
13.01.2014, 15:37
Уважаемые знатоки!
Какие значения параметров в Solver options выставить для ode23tb ?
для моделирования электрической схемы с элементами силовой электроники

Uzanka
13.01.2014, 16:59
не хотите оставить default значения?

Commonly used options
are scalar relative error tolerance 'RelTol' (1e-3 by default) and vector
of absolute error tolerances 'AbsTol' (all components 1e-6 by default).
If certain components of the solution must be non-negative, use
ODESET to set the 'NonNegative' property to the indices of these
components. The 'NonNegative' property is ignored for problems
where there is a mass matrix.

Ghost
13.01.2014, 18:00
не хотите оставить default значения?
Да, но если грамотно выставить параметры расчета можно сократить время. Но в то же время нужно не переборщить, дабы не исказить результаты. У меня около 15 мин уходит на один расчет, комп не тянет :(

Uzanka
13.01.2014, 18:31
У меня около 15 мин уходит на один расчет, комп не тянет
это нормально для stiff проблем. Этот решатель создан для stiff задач, он выбирает очень маленький шаг, чтобы не потерять точность. Отсюда и время расчета.

Ghost
13.01.2014, 18:53
от этого симулинка проблем больше чем пользы :(

Uzanka, если вручную выставить max step size и min step size это сильно повлияет на результат?
Например min 1е-5, max 1е-3

Uzanka
13.01.2014, 22:17
Uzanka, если вручную выставить max step size и min step size это сильно повлияет на результат?
повлияет, конечно. Если задача stiff, то размер шагов должен быть маленький, иначе точность не обеспечите. Я бы не стала ставить ограничения на минимальный размер шага ...

Добавлено через 12 минут
По нашему опыту и экспериментам на разных задачах, ode15s лучше всех. Другие ученые тоже вроде бы именно его советуют. Муж тут подсказывает, что ode23tb очень плох. Лучше использовать ode15s .

Ограничение на шаг снизу я бы не ставила. Это плохо для точности. Ограничение на шаг сверху можно поставить. Как вам удобнее. Будет влиять на скорость счета. На счет AbsTol и RelTol мы ставили 1е-4. Можно и выше, но на скорость повлияет.

Вот код, к примеру:
оptions = odeset('AbsTol',1е-4,'RelTol',1е-4,'MaxStep',0.1);

[t,xx] = ODE15s(nameF,[t0 T],x0,options);

avz
14.01.2014, 09:00
У нас примерно одинаковые результаты с 23tb и 15s получались, что по погрешности, что по времени.

Ghost
14.01.2014, 12:13
Uzanka, спасибо за помощь
В интернете эксперты советуют для расчетов электрических схем целесообразно использовать ode23tb правда никак это не аргументируя

поменял на ode15s разницы пока не наблюдается