Я работаю над регулятором скорости для робота, когда робот балансирует на колесах. Я разрабатываю контроллер как часть проекта курса линейного управления. Однако контроллер должен быть реализован на роботе и в программном обеспечении, предоставленном моим инструктором, поэтому у меня нет бесконечного пространства свободы. То, как я реализую свой контроллер, можно увидеть здесь: -
Как видите, я могу добавить усиления , интегратор и постинтегратор, термин опережения/запаздывания как в прямом, так и в обратном пути, предварительный фильтр и прямая связь. Вот и все. Я не могу изменить то, какую обратную связь я получаю, я могу только добавлять и корректировать условия контроллера.
Выполнение того, что предлагает 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);
График Боде с разомкнутой и замкнутой петлей для передаточной функции здесь:
Как вы можете видеть на графике Боде с обратной связью, в фазе есть большая долина, и это делает систему нестабильной (я думаю), а я этого не хочу.
Моя первоначальная идея состояла в том, чтобы добавить лаг-член к прямому пути. Запаздывающий член удаляет фазу, поэтому, если я размещу его прямо там, где находится впадина, пик должен стать меньше. Мой лаг-термин выглядит так: -
Но даже после добавления лаг-члена фаза все равно выглядит очень странно. Вот новый график Боде с замкнутым контуром:
Есть ли способ удалить эту фазовую долину и получить правильную стабильную систему?
Большая часть инженерного проектирования старается не изобретать велосипед, учиться на чужих прошлых ошибках и вносить улучшения. Существует множество нелинейных факторов, не включенных в вашу симуляцию, таких как гистерезис от трения и провисания в каждой движущейся части, а также отсутствие проектных спецификаций для входных и выходных ошибок. Одношаговая реакция на напряжение — не лучший тест, поскольку BEMF двигателя изменяет крутящий момент.
используйте управление током и обратную связь для плавного ускорения/торможения, а не ступенчатого напряжения.
Чтобы ускорить перевернутую руку, вы должны сначала вернуться назад, чтобы наклонить руку вперед, а затем разогнаться с максимальной скоростью, чтобы наклонить руку назад, готовясь к торможению в направлении целевого положения.
изучите выводы дюжины похожих, но разных диссертаций по перевернутой метле или маятнику и укажите недостатки и решения, которые вы предлагаете с несколькими контурами для идеального ускорения, скорости, угла наклона и горизонтального положения с допустимыми ошибками и допусками.
Вот один пример, который соответствовал некоторым критериям, но в итоге не стал надежным. Сначала прочитайте выводы каждой статьи и следуйте моему совету. Содержание даст вам некоторое понимание теории, но будет неполным.
Тони Стюарт EE75
Тони Стюарт EE75
АДЖН
АДЖН
АДЖН
Карл
АДЖН
АДЖН
ios
вам; или вы сами решили эти точки разрыва цикла?АДЖН
G(s)H(s)
и вообще не иметь самой верхней линии обратной связи на диаграмме.Карл
АДЖН
-G(s)H(s)
. Simulink не знает, что он должен игнорировать-ve
знак в суммирующем соединении при открытии цикла (по крайней мере, более старая версия Simulink этого не делала, я думаю). Положительная форма фазового графика заставляет меня поверить, что это так. Будь осторожен.Карл
АДЖН