Удалить большую долину на фазовом графике

Я работаю над регулятором скорости для робота, когда робот балансирует на колесах. Я разрабатываю контроллер как часть проекта курса линейного управления. Однако контроллер должен быть реализован на роботе и в программном обеспечении, предоставленном моим инструктором, поэтому у меня нет бесконечного пространства свободы. То, как я реализую свой контроллер, можно увидеть здесь: -

введите описание изображения здесь

Как видите, я могу добавить усиления К п , интегратор и постинтегратор, термин опережения/запаздывания как в прямом, так и в обратном пути, предварительный фильтр и прямая связь. Вот и все. Я не могу изменить то, какую обратную связь я получаю, я могу только добавлять и корректировать условия контроллера.

Изменить - Поиск новой передаточной функции

Выполнение того, что предлагает AJN, дает мне гораздо более приятный сюжет:

введите описание изображения здесь

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

Новая передаточная функция:

num = [0 0 0 -3.5113e+07 -3.7165e+10 -2.0902e+12 -3.8701e+13 -1.5402e+14 2.5341e+15 2.2109e+16 3.3405e+16];
den = [1 2.4731e+03 1.4491e+06 2.5930e+08 1.2622e+10 9.9503e+10 -1.8488e+12 -1.0302e+13 0 0 0];
G2 = tf(num,den);

Ранняя форма вопроса, содержащая устаревшую информацию

num = [0 0 0 0 -2.3409e+07 -2.4777e+10 -1.3935e+12 -2.5801e+13 -1.0268e+14 1.6894e+15 1.4740e+16 2.2270e+16];
den = [1 2.4738e+03 1.4508e+06 2.6223e+08 1.5442e+10 6.8736e+11 2.6563e+13 5.2944e+14 4.0900e+15 8.1300e+15 3.7708e+15 1.1220e+13];
G2 = tf(num,den);

График Боде с разомкнутой и замкнутой петлей для передаточной функции здесь:

введите описание изображения здесь

Как вы можете видеть на графике Боде с обратной связью, в фазе есть большая долина, и это делает систему нестабильной (я думаю), а я этого не хочу.

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

введите описание изображения здесь

Но даже после добавления лаг-члена фаза все равно выглядит очень странно. Вот новый график Боде с замкнутым контуром:

введите описание изображения здесь

Есть ли способ удалить эту фазовую долину и получить правильную стабильную систему?

Это похоже на индуцированные гистерезисом резонансы, вызывающие инверсию фазы. И напоминает мне дипломную работу о сервопоезде с перевернутой метлой. Это было сделано много раз. Устранение провисания (гистерезиса) с натяжением толканием или натяжением и контуром обратной связи по скорости и положению даст лучшие результаты.
Использование управления положением со вторым интегралом тока приводит к плохому запасу по фазе. Попробуйте использовать обратную связь 1-го порядка, угол наклона рычага скорости, затем положение угла и транспортного средства. Т.е. несколько контуров при изменении нагрузки с изменением угла нелинейны.
Я начертил полюса и нули растения и заметил; нуль на правой стороне и два комплексно-сопряженных полюса на правой стороне. Систему будет довольно сложно стабилизировать, так как вам нужно привести полюса к RHP, удерживая полюса разомкнутого контура от смещения к нулю RHP в процессе замыкания контура.
« Как вы можете видеть на графике Боде с замкнутым контуром, в фазе есть большая впадина, и это делает систему нестабильной (я думаю), а я этого не хочу». Фазовый график замкнутого контура сюжет не может быть способом думать об этой проблеме.
« Я нашел передаточную функцию между углом наклона робота и скоростью вращения колеса ». Как вы ее нашли? Идентификация системы на основе некоторых тестовых входных и выходных данных. Или первые принципы математического моделирования?
@AJN Я добавил пояснение к своему вопросу.
Возможно, я не совсем понимаю диаграмму simulink, но почему есть две линии, возвращающиеся от tilt_angle ; а именно, выделенная синим цветом строка и другая строка, которая, кажется, входит в ref_tilt . Разве ref_tilt не будет предопределенным сигналом, таким как пошаговый ввод или что-то подобное? У меня нет большого опыта линеаризации систем в simulink.
Был ли задан разрыв цикла и контрольные точки, заданные iosвам; или вы сами решили эти точки разрыва цикла?
Я бы разорвал петлю сразу после суммирующего соединения, где присоединяется синяя линия, чтобы получить разомкнутую петлю G(s)H(s)и вообще не иметь самой верхней линии обратной связи на диаграмме.
@AJN Я сделал то, что вы предложили, и в результате получился «более приятный» сюжет. Наверное, я изначально неправильно нашел передаточную функцию.
это выглядит более разумно. однако будьте осторожны! Я не знаю, как работает Simulink, но, возможно, вы сейчас рисуете -G(s)H(s). Simulink не знает, что он должен игнорировать -veзнак в суммирующем соединении при открытии цикла (по крайней мере, более старая версия Simulink этого не делала, я думаю). Положительная форма фазового графика заставляет меня поверить, что это так. Будь осторожен.
@AJN Хотя сейчас я работаю с правильной функцией передачи, у меня все еще возникают проблемы с проектированием моего контроллера, потому что я не уверен, в каком направлении идти. Моей единственной мыслью было сгладить фазовый график, добавив лаг-член на холме. Но получается не так, как я хочу. Есть ли у вас какие-либо предложения?

Ответы (1)

Большая часть инженерного проектирования старается не изобретать велосипед, учиться на чужих прошлых ошибках и вносить улучшения. Существует множество нелинейных факторов, не включенных в вашу симуляцию, таких как гистерезис от трения и провисания в каждой движущейся части, а также отсутствие проектных спецификаций для входных и выходных ошибок. Одношаговая реакция на напряжение — не лучший тест, поскольку BEMF двигателя изменяет крутящий момент.

  • используйте управление током и обратную связь для плавного ускорения/торможения, а не ступенчатого напряжения.

  • Чтобы ускорить перевернутую руку, вы должны сначала вернуться назад, чтобы наклонить руку вперед, а затем разогнаться с максимальной скоростью, чтобы наклонить руку назад, готовясь к торможению в направлении целевого положения.

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

  • Вот один пример, который соответствовал некоторым критериям, но в итоге не стал надежным. Сначала прочитайте выводы каждой статьи и следуйте моему совету. Содержание даст вам некоторое понимание теории, но будет неполным.