реклама на сайте
подробности

 
 
> Настройка хитрого ПИД регулятора, для электронного дросселя
K.Viktor
сообщение Dec 5 2011, 19:50
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 5-12-11
Из: Россия, Москва
Пользователь №: 68 694



Здравствуйте!

Возможно, кто-нибудь из вас сталкивался с подобной проблемой.

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

Соответственно, мотор заслонки управляется с микроконтроллера при помощи ШИМ сигнала.

Реализован "классический" алгоритм ПИД-регулятора, вот кусок си-кода:

Код
en0=angle - servo_pos;
integral_term = SumE / 73.5;                    // Divide by the sampling frequency
derivative_term = en0 - en1;
integral_term = integral_term * ki;            //  Ki
derivative_term = derivative_term * kd;        // Kd
Cn = en0 + integral_term + derivative_term;    // Sum the terms
Cn = (Cn * kp);                         //Kp
en1 = en0;


Где, angle - требуемое положение, servo_pos - фактическое положение сервы
сооветственно Cn - выход на ШИМ, ki kd kp - коэффициента ПИДа.

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

НО. У нее есть как-бы люфт. То есть, если нажать на заслонку пальцем - она сначала поворачивается, потом из-за накопления ошибки I-звена плавно возвращается на заданное положение. Такое ощущение что недостаточно большой коэффициент P.
Но проблема в том, что любое дальнейшее увеличение любого коэффициента приводит к "раскачке" системы - возникает довольно длительный переходный процесс, или вообще незатухающие колебания.
Так же был опробован "частотный" метод подбора коэффициентов ПИДа - безрезультатно. Заслонка работает, но есть "люфт".

Проблема не в "механике". Точно на той же плате и заслонке абсолютно нормально работает "заводской" софт, у заслонки "люфта" нет вообще. То есть, проблема явно в реализации алгоритма.

Подскажите, пожалуйста - в какую сторону копать... Вообще, применим ли пид в подобных системах?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
K.Viktor
сообщение Dec 6 2011, 07:17
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 5-12-11
Из: Россия, Москва
Пользователь №: 68 694



Сдаётся мне никто не будет разбираться с вашим замечательным кодом.

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


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

Спасибо, сегодня попробую!

Вот попробуйте приложить постоянную силу к заслонке... Или пружинку. Или током...

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

3. Скорость лучше извлекать из противоЭДС двигателя.

Нереально. Стоит задача повторить "заводской" алгоритм управления, используемый в серийных авто. Там аппаратная часть вполне определенная, и не подразумевает измерение противо-ЭДС.

Попробуйте сначала убрать интегральный член.
Почитайте у Microchip application note по поводу управления перевернутым маятником...


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

Собственно, кусочек кода в первом сообщение это и есть микрочиповский код sm.gif
Go to the top of the page
 
+Quote Post
SergCh
сообщение Dec 6 2011, 08:08
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 475
Регистрация: 6-02-10
Из: Москва
Пользователь №: 55 343



Цитата(K.Viktor @ Dec 6 2011, 11:17) *
Это обычный PID. В коде ошибок нет, т.к. на нем нормально работают несколько других алгоритмов - например, положение регулятора холостого хода, стабилизация давления наддува и т.п. То есть в работоспособности кода сомнений нет.
Вопрос в том, применим ли "классический" пид для такого сервопривода.

Так я не сомневаюсь что сама программа рабочая, я сомневаюсь в том что параметры "обычного" пида выбраны верно.
Go to the top of the page
 
+Quote Post
Andron55
сообщение Dec 7 2011, 10:30
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 168
Регистрация: 22-05-09
Из: Киев
Пользователь №: 49 392



Цитата(SergCh @ Dec 6 2011, 11:08) *
Так я не сомневаюсь что сама программа рабочая, я сомневаюсь в том что параметры "обычного" пида выбраны верно.


Совершенно верно.
Прежде, чем бросаться крутить ручки втёмную желательно познакомиться с объектом управления.
Нужно узнать его Ке, электрическую и электромеханическую постоянные.
По ходу ознакомления нарисуются Lя – индуктивность якоря, Rя – сопротивление якоря.
Если механическая и электрическая постоянные разнесены на порядок, то объект управления можно условно считать звеном первого порядка, при условии, что влияние электрической постоянной будет глубоко закопано на (-12 – (-20))дБ полосы авторегулирования. Естественно, я надеюсь, туда уже закопана и частота ШИМ.
Тогда мы имеем дело только с электромеханической постоянной, звеном первого порядка, для которого применяем корректирующее ПИ – звено. Не ПИД!
Д – может сбить Вас с толку, запутать, причём с Вашим счастьем, это сделается легко.

Тут Вам советовали завести дополнительную верёвку по ЭДС, хотя это и не предусмотрено в «оригинале».
Хочу напомнить, что ОС по ЭДС вращения для коллекторных машин может быть замечена, когда её значение превышает падение напряжения на щётках.
U = E + I*Rя + Uщ.

U – напряжене, приложенное к машине.
E – ЭДС.
I – ток.
Rя – сопротивление якоря.
Uщ – дифференциальное падение напряжения на щётках.

Совершенно очевидно, что при определённых моментах (токах) нагрузки и «малых или ползучих» оборотах вала, ЭДС «прячется» за падением напряжения на щётках.
Начиная с каких-то «эффективных» оборотов вала и дружественных токов нагрузки, ЭДС «выходит из тени», но погрешность её измерения столь велика, что сводит на пшик все потуги измерения.
ОС по ЭДС эффективно применять для скоростей средних и выше. При этом погрешность измерения, в любом случае, оставляет желать лучшего, да и сам метод измерения скорости вращения вала по ЭДС есть дерьмо, в сравнении с классическим методом измерения по специализированным для этого случая датчикам (тах, импульсный датчик и т.д.)
Не забываем, что задача про сервак, то есть – основная работа в районе «ползучих» скоростей, где ЭДС не сыскать и днём с огнём.

Теперь про пружину.
Ту её так хвалили, что пройти мимо этих од сложно.
Смотрите, пружина как нагрузка есть колебательное звено, звено второго порядка.
Об этом не следует забывать.
Если её резонансная частота (не дай бох) попадает в полосу авторегулирования, то с этим нужно, что-то делать, это нужно обязательно учесть.
Либо сузить полосу, так чтобы закопать резонанс пружины глубоко под 0дБ, либо вводить корректирующее Д-звено (вот оно – то самое счастье), так чтобы наклон разомкнутой ЛАЧХ пересекал 0дБ усиления под углом -20дБ/дек. Тут Вам крепко «повезло», ибо не во всех случаях удаётся справиться с норовистыми пружинами с помощью простого ПИДа.
Но будем надеяться, что редуктор ослабит её дурное влияние.
Go to the top of the page
 
+Quote Post
Andron55
сообщение Dec 7 2011, 11:26
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 168
Регистрация: 22-05-09
Из: Киев
Пользователь №: 49 392





PS
Забыл сказать про редуктор.
Не доведи хоспадя, если редуктор имеет механический люфт!
Это означает, что ОС по положению не жесткая в ноле, «в люфте» привязана на рзиночке.
Качания при условно широкой (нужной для эффективного регулирования) полосе авторегулирования и эффективном усилении обеспечены автоматом.
Про датчик положения.
Лучше всего поставить инкрементальный датчик на валу двигателя, - самое идеальное снятие ОС и эффективное управление – непосредственное воздействие на объект управления, с которого снимается ОС.
Ваш потенциометр стоит на валу редуктора, что уже не есть хорошо, а больше плохо.
Редуктор значительно ослабляет значение ОС (воздействуем на двигатель, а ОС снимаем с редуктора, ошибка регулирования начинает теряться в шумах), делая замкнутую систему вялой и «мягкой».

Сообщение отредактировал Andron55 - Dec 7 2011, 11:27
Go to the top of the page
 
+Quote Post
Tanya
сообщение Dec 7 2011, 11:42
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Andron55 @ Dec 7 2011, 15:26) *
PS
Забыл сказать про редуктор.

А ТС написал, что пружина возвращает заслонку в некоторое нулевое положение при обесточенном двигателе.
Отсюда можно найти еще одну полезную функцию пружины - устранение люфта. Еще замечу, что при "простом" управлении ШИМом противоЭДС уменьшает ток и момент пропорционально скорости. Таким образом имеется еще одно "трение".
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- K.Viktor   Настройка хитрого ПИД регулятора   Dec 5 2011, 19:50
- - SergCh   Сдаётся мне никто не будет разбираться с вашим зам...   Dec 6 2011, 05:29
- - Fast   попробуйте добавлять шумы к servo_pos, когда засло...   Dec 6 2011, 05:38
- - Tanya   Цитата(K.Viktor @ Dec 5 2011, 23:50) Здра...   Dec 6 2011, 06:49
|- - Tanya   Цитата(K.Viktor @ Dec 6 2011, 11:17) В за...   Dec 6 2011, 07:37
|- - Tanya   Цитата(Andron55 @ Dec 7 2011, 14:30) Тут ...   Dec 7 2011, 11:06
||- - Andron55   Цитата(Tanya @ Dec 7 2011, 14:06) Почти в...   Dec 7 2011, 12:01
|||- - Tanya   Цитата(Andron55 @ Dec 7 2011, 16:01) Да, ...   Dec 7 2011, 12:19
||- - Andron55   Цитата(Tanya @ Dec 7 2011, 14:06) Еще мож...   Dec 7 2011, 13:03
||- - Tanya   Цитата(Andron55 @ Dec 7 2011, 17:03) Дина...   Dec 7 2011, 13:23
||- - Andron55   Цитата(Tanya @ Dec 7 2011, 16:23) Вот нес...   Dec 7 2011, 13:58
|||- - Tanya   Цитата(Andron55 @ Dec 7 2011, 17:58) Есть...   Dec 7 2011, 14:14
||- - Andron55   Цитата(Tanya @ Dec 7 2011, 16:23) Думаю, ...   Dec 7 2011, 14:18
||- - Tanya   Цитата(Andron55 @ Dec 7 2011, 18:18) Вы н...   Dec 7 2011, 14:28
||- - Andron55   Цитата(Tanya @ Dec 7 2011, 17:28) Ну... н...   Dec 7 2011, 15:29
||- - Tanya   Цитата(Andron55 @ Dec 7 2011, 19:29) Очен...   Dec 7 2011, 15:49
||- - Andron55   Цитата(Tanya @ Dec 7 2011, 18:49) Я обычн...   Dec 7 2011, 16:42
||- - Tanya   Цитата(Andron55 @ Dec 7 2011, 20:42) В ос...   Dec 7 2011, 16:57
||- - Andron55   Цитата(Tanya @ Dec 7 2011, 19:57) Все Вы ...   Dec 7 2011, 18:11
||- - Tanya   Цитата(Andron55 @ Dec 7 2011, 22:11) Нет,...   Dec 7 2011, 18:46
||- - Andron55   Цитата(Tanya @ Dec 7 2011, 21:46) Разницу...   Dec 7 2011, 19:30
||- - Tanya   Цитата(Andron55 @ Dec 7 2011, 23:30) И эт...   Dec 7 2011, 20:08
||- - Andron55   Цитата(Tanya @ Dec 7 2011, 23:08) Скорост...   Dec 7 2011, 20:30
||- - Tanya   Цитата(Andron55 @ Dec 8 2011, 00:30) Повт...   Dec 8 2011, 04:06
||- - SergCh   Цитата(Tanya @ Dec 8 2011, 08:06) Вы забл...   Dec 8 2011, 07:54
|||- - Tanya   Цитата(SergCh @ Dec 8 2011, 11:54) Приятн...   Dec 8 2011, 08:30
||- - Andron55   Цитата(Tanya @ Dec 8 2011, 07:06) Вы забл...   Dec 8 2011, 09:59
||- - Tanya   Цитата(Andron55 @ Dec 8 2011, 13:59) Как ...   Dec 8 2011, 11:36
- - K.Viktor   По противо эдс уверен. Схема очень примитивна, я е...   Dec 6 2011, 08:03
|- - Tanya   Цитата(K.Viktor @ Dec 6 2011, 12:03) По п...   Dec 6 2011, 08:16
|- - demiurg_spb   Цитата(K.Viktor @ Dec 6 2011, 12:03) То е...   Dec 6 2011, 09:28
- - K.Viktor   Огромное спасибо всем за советы по теме! Попр...   Dec 7 2011, 21:09
- - SNGNL   Цитата(K.Viktor @ Dec 5 2011, 23:50) Но п...   Dec 7 2011, 21:36
|- - Andron55   Цитата(SNGNL @ Dec 8 2011, 00:36) Сдается...   Dec 7 2011, 21:52
- - TSerg   >А вот на результат таки да. Приветствую приво...   Dec 8 2011, 12:53
|- - Tanya   Цитата(TSerg @ Dec 8 2011, 16:53) >А в...   Dec 8 2011, 13:07
|- - Andron55   Цитата(Tanya @ Dec 8 2011, 16:07) Вы про ...   Dec 8 2011, 20:50
||- - Tanya   Цитата(Andron55 @ Dec 9 2011, 00:50) Ну, ...   Dec 9 2011, 04:04
||- - SergCh   Цитата(Tanya @ Dec 9 2011, 08:04) Вот я н...   Dec 9 2011, 06:44
||- - Andron55   Цитата(Tanya @ Dec 9 2011, 07:04) Вот я н...   Dec 9 2011, 09:00
||- - Tanya   Цитата(Andron55 @ Dec 9 2011, 13:00) Что ...   Dec 9 2011, 10:06
||- - Andron55   Цитата(Tanya @ Dec 9 2011, 13:06) Не знаю...   Dec 9 2011, 11:16
||- - Tanya   Цитата(Andron55 @ Dec 9 2011, 15:16) Если...   Dec 9 2011, 11:21
||- - Andron55   Цитата(Tanya @ Dec 9 2011, 14:21) Они тут...   Dec 9 2011, 12:08
|- - TSerg   Цитата(Tanya @ Dec 8 2011, 17:07) Не нужн...   Dec 10 2011, 18:53
- - _gari   В задаче ТС почти "темный лес " с кинема...   Dec 8 2011, 19:53
- - _gari   Угу, пружинка тут очень странная даже с т.з. прост...   Dec 10 2011, 19:36
- - K.Viktor   Цитата(_gari @ Dec 10 2011, 22:36) Угу, п...   Dec 12 2011, 07:27
|- - Tanya   Цитата(K.Viktor @ Dec 12 2011, 11:27) Топ...   Dec 12 2011, 08:30
|- - TSerg   Цитата(K.Viktor @ Dec 12 2011, 11:27) Это...   Dec 12 2011, 09:40
- - _gari   Цитата(K.Viktor @ Dec 12 2011, 10:27) И к...   Dec 12 2011, 18:31
- - K.Viktor   Цитата(Tanya @ Dec 12 2011, 11:30) Совет ...   Dec 12 2011, 19:15
- - _gari   Цитата(K.Viktor @ Dec 12 2011, 22:15) И в...   Dec 12 2011, 21:12
- - K.Viktor   Цитата(_gari @ Dec 13 2011, 00:12) Так чт...   Dec 13 2011, 06:32
- - TSerg   >Речь про управление САМОЙ ЗАСЛОНКОЙ (электро)....   Dec 13 2011, 14:26
- - K.Viktor   Всем спасибо, проблема решена. Была недостаточно в...   Dec 17 2011, 08:42
|- - Tanya   Цитата(K.Viktor @ Dec 17 2011, 12:42) Все...   Dec 17 2011, 10:17
- - Herz   А что такое однобитный ШИМ?   Dec 17 2011, 10:25
|- - Tanya   Цитата(Herz @ Dec 17 2011, 14:25) А что т...   Dec 17 2011, 12:01
- - TSerg   Цитата(Herz @ Dec 17 2011, 14:25) А что т...   Dec 17 2011, 18:19
|- - Tanya   Цитата(TSerg @ Dec 17 2011, 22:19) Релейн...   Dec 17 2011, 18:47
|- - monos   Цитата(Tanya @ Dec 17 2011, 21:47) Обясни...   Dec 17 2011, 20:09
- - _gari   Принимайте поздравления, K.Viktor! Так софтовы...   Dec 18 2011, 02:31
- - K.Viktor   Цитата(TSerg @ Dec 17 2011, 21:19) Порой ...   Dec 18 2011, 08:46
|- - Tanya   Цитата(K.Viktor @ Dec 18 2011, 11:46) Но ...   Dec 18 2011, 11:38
- - _gari   Спасибо, K.Viktor, теперь все ясно.   Dec 18 2011, 10:39
- - K.Viktor   I звено в пиде имеет ограничитель, других нет. Ре...   Dec 18 2011, 16:29


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 09:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01512 секунд с 7
ELECTRONIX ©2004-2016