LINUX.ORG.RU

Посоветуйте алгоритм «самонастраивающегося» регулятора.

 


0

1

Есть тиристорный регулятор для коллекторника переменного тока (с последовательным возбуждением). В настойщий момент там PI-регулятор, работающий от ошибки скорости, плюс колхозная линеаризация параметров мотора. Все это работает, но… so-so…

Теоретически, если взять стенд, и для всех нагрузок/скоростей построить функцию

F(скорость, момент) => фаза симистора

то можно по такой табличке рулить с очень хорошей стабильностью.

  • скорость и момент мы опредлять умеем, оставим это за скобками

Но поскольку стенда нет, то хочется взять корявый тормозной PID, и на ходу подстраивать табличку. Если в табличке есть подходящие параметры - берем напрямую, минуя пид. Если нет - тогда на основе пида, и по мере подстройки запоминаем к чему стремиться, чтобы в следующий раз не ждать пока пид устаканится.

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

PS. Речь о регуле бормашинки. По задумке, когда ей начнут бормашинить, она постепенно начнет держать обороты все лучше и лучше. Как-то так.

★★★★★

Тоесть на бормашинке есть выставление скорости оборотов, когда её начинают работать обороты падают и автоматически поднимается напряжение до восстановления нужных оборотов в холостом ходу напряжение падает сразу до номинала так что скорость в среднем постоянна при работе и при холостом ходе?

Хз как то соотношения надо найти и lerp делать. Или типа вот задано 100 оборотов в секунду, бормашинка вжжжжж что-то и обороты упали до 60 ,напруга с шагом в 1 вольт в милисекунду начинает расти пока обороты не встанут на 100+/-5. Машинка перестаёт бурить обороты более 110 напруга с нагом 1 вольт в милисекунду падает пока снова 100+/-5 не станет. Тока вот тиристор как так крутить я хз ваще.

Тут надо что-то системы компенсации, палюбому такое есть. Ток вот где хз

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Табличка же двумерная (понятно что точки + интерполяция).

В рабочем режиме получается обратная связь по моменту. Если юзер нажал посильнее, смотрим по табличке (текущий момент, желаемая скорость) => сколько в симистор втулить (можно вместо фазы брать абстрактую мощность или напряжение, если так понятнее).

Фактически на моторе получим мгновенную компенсацию нагрузки, и скорость не будет падать.

Vit ★★★★★
() автор топика
Ответ на: комментарий от bga_

Угадай, почему P не увеличивают до бесконечности :) ? Потому что самовозбуждение начнется.

Вот при максимально возможном P отклик все равно херовый. Ограничение такое. Чтобы работало лучше - надо систему линеаризовать. А это мягко говоря нетривиальная задача. Есть подозрение, что проще ленивую отстройку таблички запилить. Только я не знаю умные слова, по которым гуглить. По fuzzy logic какой-то лютый понос.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Тогда увеличивай частоту семплирования и применения PID коррекции. Хотя с AC 50Гц выше этих 2 * 50ГЦ не увеличить :/
А вот на DC можно делать скорость отклика какой угодно

bga_ ★★★★
()
Ответ на: комментарий от bga_

Частота семплирования вообще ни на что не влияет. Если у тебя мотор от нуля до максимума разгоняется 5 секунд, то как не семплируй, он быстрее разогнаться физически не сможет. Мэээ… матчасть обнови что ли, тут вопросы уже продвинутого уровня, а ты на предыдущем буксуешь.

Vit ★★★★★
() автор топика

Короче, моя смелая идея зафейлилась. Момент нагрузки нельзя выразить через функцию первого порядка. Нужна производная тока или скорости. А при таком раскладе проще заменить PID на ADRC и не лепить лисапедов.

Vit ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.