Моделирование пространства состояний с возмущениями с использованием Matlab

Я делаю проект, который включает в себя моделирование квадрокоптера в форме пространства состояний с использованием Matlab. Сначала мне пришлось линеаризовать уравнения движения квадрокоптера, а теперь мне нужно реализовать их в системе пространства состояний Matlab.

Для этого мне нужно представить линеаризованные дифференциальные уравнения в следующем виде:

Икс ˙ "=" А Икс + Б ты
у "=" С Икс

Проблема, с которой я сталкиваюсь, заключается в том, что одно из моих уравнений состояния имеет постоянный член из-за ускорения из-за силы тяжести. Рассматриваемое уравнение показано ниже, где Vz, v1 ^ 2, v2 ^ 2, v3 ^ 2 и v4 ^ 2 являются переменными состояния, а все остальные константы:

В г ˙ "=" К г м В г + К С м м ( в 1 2 + в 2 2 + в 3 2 + в 4 2 ) г

Как я должен сопровождать этот термин (-g) в модели пространства состояний Matlab?

Моя единственная мысль - использовать модель пространства состояний с идентифицируемыми параметрами и включить константу в матрицу возмущений K, но я не знаю, как это сделать, поскольку никогда раньше не использовал матрицу возмущений.

Ответы (1)

У вас ненулевая рабочая точка. Если бы вы выбрали равновесную рабочую точку, этой ситуации не произошло бы.

С уравнением, которое вы дали, если вы выбираете состояния как { Икс 1 "=" г м К г + В г , Икс 2 "=" в 1 2 , Икс 3 "=" в 2 2 , Икс 4 "=" в 3 2 , Икс 5 "=" в 4 2 } вы получаете линейное уравнение состояния:

Икс ˙ 1 "=" К ( Икс 2 + Икс 3 + Икс 4 + Икс 5 ) С м м Икс 1 К г м

Я предполагаю, что это нарушит какое-то другое уравнение состояния. Затем вы должны рассмотреть все состояния и уравнения вместе. Но, как я уже говорил, лучший подход — сделать это на этапе линеаризации.

Итак, вы говорите, что я должен переопределить свои переменные состояния, чтобы удалить постоянный член из моих уравнений состояния? Или что я ошибся в линеаризации уравнений и должен переделать этот этап?
Вы обычно переопределяете переменные состояния и входные параметры как отклонения от некоторой рабочей точки во время линеаризации. Это было сделано неправильно, поэтому на этом этапе вам придется переопределить снова. Мое предложение состояло в том, чтобы правильно определить (выбрать) состояние и входные переменные.