Исследуйте модель предсказания и пользовательские функции 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
структура.
Когда вы предоставляете свои собственные аналитические якобианские функции, особенно важно, чтобы эти функции возвращали действительные якобианские значения. Если validateFunctions
обнаруживает большие различия между значениями, возвращенными определенными пользователем якобианскими функциями, и конечноразностным приближением, проверьте код в ваших реализациях на якобиане.
Для каждой функции контроллера, validateFunctions
проверяет, является ли функция:
Существует в MATLAB® путь
Имеет необходимое количество входных параметров
Может быть успешно выполнен без ошибок
Возвращает выходные аргументы с правильными размером и размерностями
Возвращает действительные числовые данные; то есть не возвращается Inf
или NaN
значения
Для якобианских функций, validateFunctions
проверяет, сопоставимы ли возвращенные значения с конечноразностным приближением якобиевых значений. Эти значения конечной разности вычисляются с помощью численного возмущения.