LINUX.ORG.RU

Как к регулировке оборотов привернуть ограничение мощности?

 


0

1

Допустим, надо регулировать обороты двигателя. Мы их вычисляем через BackEMF, или с тахогенератора если повезет. Короче, мерять параметры умеем. Дальше смотрим ошибку, подаем ее на ПИД и все зашибись.

Теперь хочется добавить еще одно условие - ограничить максимальную потребляемую мощности двигателя. Ну, чтобы если в нее уперлись, то обороты не росли (или даже сбрасывались). Двойной ПИД делать категорически не хочется.

Это можно реализовать на одном ПИД-е или задача не имеет внятного аналитического решения? Например, какой-то сумматор «оборотов с ваттами» слепить, на входе ПИД-а. У меня не получается формулу микшера нарисовать, чтобы ограничитель ваттов был «главнее», но перескок обратно на обороты происходил гладко, без рывка.

★★★★★

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

Покажи текущие составляющие твоего сумматора. Но сдается мне там будет очень много неизвестных

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

Да, совсем забыл, речь о двигателе переменного тока с подмагниниванием (из бормашинки), регулятор с тиристором.

Текущая составляющая пока одна - обороты (величина ошибки). Сложить с ваттами пока не получается. Размерности не совпадают :)

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

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

ну так вынеси К за сумму составляющих pid и крути ее уже другой величиной. В данном случае ты крутишь безразмерное. Что-то на пальцах пока не соображу, но думается надо топать в эту сторону

Поправил, а то можно не так подумать

Morin ★★★★
()
Последнее исправление: Morin (всего исправлений: 1)
Ответ на: комментарий от Morin

Надо бы готовую формулу. Советы в формулу преобразовать не получается, уже пробовал :)

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

(Вт(уст)-Вт(изм))/Вт(уст)

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

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

Изменение K тут не поможет. Регулятор с любым K все равно будет выводить двигатель на заданную скорость, на которой мощность превышена. А надо заставить регулятор скидывать скорость.

curufinwe ★★★★★
()

1. Возьми провода потоньше.
2.При росте тока у тебя на проводах будет больше падать напряжения.
3. ?????
4. Профит

Изи.

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

ну хрень же, это никогда не работает в пределах температурного диапазона, только в частном случае с заданной величиной Токр.ср.

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

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

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

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

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

С чего это? Экскаваторные характеристики знаешь что такое?

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

да

я так понимаю контрошка все равно есть, так что фильтр сделать не проблема для звена с мощностью.

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

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

Вот бы найти максимально простое и красивое решение.

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

ну один пид уже написан :) не думаю, что проблема поковырять второй, отсекаем все что ниже 0,8-0,9 уставки, все что выше в вычисление ошибки

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

Проблема может быть в расчете коэффициентов и согласовании этого всего, чтобы гарантированно на разных вариантах дрели один код работал. Чтобы не дергало при изменении скорости, сбросе и набросе нагрузки. С одним ПИДом все-таки попроще значительно.

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

Это не проблема, пока на словах. Как только пытаешься нарисовать блок-схему для двух сигналов ОС и записать правила в виде простых формул, наступает жопа.

Я ж не просто так тему создал. Интересует простой регулятор, а не «ставим последовательно 2 пида и потом пусть другие долбятся с настройкой как хотят».

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

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

Iron_Bug ★★★★★
()

У меня не получается формулу микшера нарисовать, чтобы ограничитель ваттов был «главнее», но перескок обратно на обороты происходил гладко

(targetRpm - currentRpm) / targetRpm = 1 - currentRpm / targetRpm = Q(t)
1 - currentPower / maxPower = P(t)

e(t) = A*Q(t) - B*exp(-C*P(t))
drsm ★★
()
Ответ на: комментарий от drsm

Ну ок, все нормализуется в проценты от максимума. Логично. Но как потом A, B, C вывести?

В идеале хочется следующего - юзер настраивает PI для нормальной работы мотора (коэфициенты P, I). И указывает лимит мощности (в паспорте есть). Вроде иметь отдельные настройки PI для ограничилки мощности при этом не надо (но доказать не могу). То есть, с юзера 2 параметра PI + параметры мотора, остальное «само» - это желаемая цель.

Тут возникла мысль схимичить другой вариант - взять 2 одинаковых пида параллельно, один по % оборотов, другой по % превышения мощности, и выходы объединить по min(PI_1_out, PI_2_out). Это нормально или бред?

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

Варианты решения зависят от определения «простоты» формул. ОС по мощности вероятно должна быть существенно нелинейной.

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

Это здорово, но не на таких вычислительных мощностях, либо считаем заранее и составляем таблицу, либо отбрасываем сильно нелинейный участок фильтром, в конце концов делается «отсечка»

Morin ★★★★
()

Сглаженная ступенька - это 1 + th(a x). Соответственно, 1/(1 + th(a * (мощность - предел мощности)) - это выражение, к-рое нужно прибавить к оборотам. Не соображу, нужен ли здесь только один параметр или два. Но один точно нужен, т.к. попробуй ответить на вопрос: при мощности 90% от номинальной, должно ли уже начинаться действие ступеньки? Ясно, что это должен выбрать пользователь.

Ты можешь как-то вычислять a из других параметров, но всё же один параметр точно нужен, скажем, «жёсткость регулирования».

Но не факт, что тут не возникнет каких-то автоколебаний - похоже, анонимус был в чём-то прав :)

den73 ★★★★★
()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

Я не понял твоего потока сознания :). Можешь полную формулу обертки вокруг пида написать?

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

Насколько я помню определение потока сознания - это не он :) ПИД не меняется, меняется то, что мы подаём ему на вход.

(целевые обороты - обороты) - 1/(1 + th(a * (макс.мощность - мощность)))

Без гарантии :) Т.е. нужно на самом деле составить модель и изучить на предмет автоколебаний :) Ну и вопрос, как ты померяешь мощность, тут не рассмотрен.

Насчёт разной размерности - вероятно, a нужно как-то вычислять из целевых оборотов и макс. мощности, исходя из того, чему равна производная th(a) в нуле (в точке достижения максимальной мощности).

И на самом деле нужна не макс. мощность, а мощность, чуть меньшая, чтобы макс. мощность не была достижима. Или тебе нужно, чтобы макс. мощность была в точности достижима, а дальше - ни-ни?

В общем, наверное, зря я тебе морочу голову, правильно сказали - любите книгу, источник знаний :) Я не спец. в этом, просто я знаю, как сделать безконечно гладкую ступеньку произвольной крутизны из гиперболического тангенса.

den73 ★★★★★
()

Как в одном анекдоте:
Сколько нужно ТАУ инженеров, чтобы синтезировать регулятор?

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