2017-02-16 6 views
0

Я использую recusive наименьшие квадраты (RLS) для определения параметров системы для динамической системы. Алгоритм RLS реализуется в дискретное время, а реальная система непрерывна. На практике это легко сделать, но как я могу имитировать эти два вместе? Последовательное решение не помогает, так как я хочу использовать оценку RLS для влияния на вход системы.Дискретная и динамическая система Matlab

Встроенное событие-триггер может только остановить интеграцию, если я получил это право. Таким образом, мне пришлось бы остановиться в каждой точке выборки алгоритма RLS, а затем решить оду между образцами. -> Как это реализовано в Simulink?

ответ

0

Единственное реальное решение, которое я нашел, это реализовать собственный RK45 с адаптивным размером шага. Он предназначен для принятия дискретных и непрерывных систем (оде и разностных уравнений) и решает с адаптивным размером шага до тех пор, пока не будет сделан новый образец. Этот метод работает как шарм - с медленной динамикой только дискретные точки отбираются при достаточно малых временах выборки, а быстрая динамика дает небольшие размеры шага интеграции, как и ожидалось!

Также реализация была намного меньше усилий, чем ожидалось, и на удивление хорошо сравнивается с матрицами ode45, т.е. более низкая вычислительная стоимость, более высокая точность, меньше колебаний после дискретных прыжков в оде!

Смежные вопросы