Исследуйте предсказание и пользовательские функции модели nlmpc или nlmpcMultistage объекты для потенциальных проблем
validateFunctions тестирует модель предсказания, пользовательскую стоимость, пользовательское ограничение и Функции Якоби нелинейного контроллера MPC для потенциальных проблем такой как, отсутствует ли информация, несовместимы ли аргументы ввода и вывода предоставленных функций любого пользователя с параметрами объекта или точен ли предоставленный аналитический Градиент/Функции Якоби пользователя численно. Когда вы сначала проектируете свой нелинейный контроллер MPC, или когда вы вносите существенные изменения в существующий контроллер, это - лучшая практика, чтобы подтвердить ваши функции контроллера.
validateFcns( тестирует функции нелинейного контроллера MPC nlmpcobj,x,mv)nlmpcobj для потенциальных проблем. Функции тестируются с помощью заданного состояния и значений переменных, которыми управляют, x и mv, соответственно. Эти значения могут представлять номинальные условия или произвольную рабочую точку. Используйте этот синтаксис, если у вашего контроллера нет измеренных воздействий и никаких параметров.
validateFcns( задает значения параметров. Если у вашего контроллера есть параметры, необходимо задать nlmpcobj,x,mv,md,parameters)parameters.
validateFcns( тестирует функции многоступенчатого нелинейного контроллера MPC nlmpcMSobj,x,mv)nlmpcMSobj для потенциальных проблем. Функции тестируются с помощью заданного состояния и значений переменных, которыми управляют, x и mv, соответственно. Эти значения могут представлять номинальные условия или произвольную рабочую точку. Используйте этот синтаксис, если у вашего контроллера нет измеренных воздействий и никаких параметров.
validateFcns( задает дополнительный nlmpcMSobj,x,mv,simdata)simdata структура. Если параметры необходимы для состояния и подготавливают функции, необходимо обеспечить их в simdata.
Когда вы обеспечиваете свои собственные аналитические Функции Якоби, особенно важно, чтобы эти функции возвратили допустимые якобиевские значения. Если validateFunctions обнаруживает значительные различия между значениями, возвращенными вашими пользовательскими Функциями Якоби и приближением конечной разности, проверьте код в своих якобиевских реализациях.
Для каждой функции контроллера, validateFunctions проверки, ли функция:
Существует на MATLAB® path
Имеет необходимое количество входных параметров
Может быть выполнен успешно без ошибок
Возвращает выходные аргументы с правильным размером и размерностями
Возвращает допустимые числовые данные; то есть, это не возвращает Inf или NaN значения
Для Функций Якоби, validateFunctions проверки, сопоставимы ли возвращенные значения с приближением конечной разности якобиевских значений. Эти значения конечной разности вычисляются с помощью числового возмущения.