ПИД-алгоритмы - перевод статьи про PID

Автомат, адаптивный автомат ... разум

Re: Перевод статьи про ПИД-алгоритмы

Сообщение blindman » 05 авг 2008, 04:18

Просмотрел еще раз оригинал и перевод. В переводе много неточностей, которые сильно искажают смысл написанного. Например, в пояснении к рис. 3 говорится не о том, что двигатель поддерживает постоянную скорость, а о том, что положение вала изменяется с постоянной скоростью. Или рис. 7 - это не зависимость поведения от изменения Vd, а реакция системы на скачкообразное изменение Vd. Вечером если будет время поправлю.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Перевод статьи про ПИД-алгоритмы

Сообщение =DeaD= » 05 авг 2008, 07:49

avr123.nm.ru писал(а):Вы так и не поняли что не сама по себе инерция вызывает "перескок" !!!
А совокупность инерции и не нулевой скорости.

Я в шоке от гениальности этой мысли. Да ну неужели? А то я не знаю, что если система покоится, то инерция сама по себе не вызовет перелет? Вы что именно это пытались донести до меня все предыдущие сообщения в столь нервном тоне? Тогда уж скажите, что "Совокупность того, что инерция, ненулевая скорость и то что мы достигли при этой ненулевой скорости требуемого положения". А то знаете опять неточность.

avr123.nm.ru писал(а):
=DeaD= писал(а): Если каждый график разжёвывать с точки зрения матмодели, тогда это будет небольшая книжка а не статья и вся простота изложения скроется за тучей формул.

А нельзя ли вместо ПУСТОЙ АБСОЛЮТНО фразы: "Уравнения, описывающие движение такой системы достоточно просты." написать эти ПРОСТЫЕ уравнения ??? Вы ж математик !

Нельзя:
1. Потому что в исходном варианте их не было, а я перевод делал, а не свою статью писал;
2. Я считаю что образованному человеку формулы только помешают воспринять суть, мне например было вполне просто понять что и как без всяких формул, школьного курса физики вполне хватает, чтобы их самому выписать;

avr123.nm.ru писал(а):Кроме того вы не тупо игнорируете то что я вам написал что в примере с динамиком ОБЕЩАНОЙ параболы НЕ БУДЕТ.

Вы КАК МАТЕМАТИК когда это на клаве печатали НЕ ПОНИМАЛИ ?

Какая еще парабола? Её то вы откуда взяли? Я как математик этого не пойму.

Добавлено спустя 5 минут 23 секунды:
blindman писал(а):Просмотрел еще раз оригинал и перевод. В переводе много неточностей, которые сильно искажают смысл написанного. Например, в пояснении к рис. 3 говорится не о том, что двигатель поддерживает постоянную скорость, а о том, что положение вала изменяется с постоянной скоростью. Или рис. 7 - это не зависимость поведения от изменения Vd, а реакция системы на скачкообразное изменение Vd. Вечером если будет время поправлю.

Про рисунок 3 не понял почему это принципиально, учитывая описанную модель;
Про рисунок 7 - там нету слово "скачкообразно" вроде? А с учетом этого какая разница, что это за график "зависимость поведения системы" или "реакция системы"?

Общая то суть ПИД-контроллера стала ясна?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Перевод статьи про ПИД-алгоритмы

Сообщение Duhas » 05 авг 2008, 09:46

скачкообразное изменение задания важно, в тм и суть что характиристики системы смотрятся на скачкообразном изменении задания(которое называется единичной функцией в ТАУ)

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

время, за которое та кривулина, что получается на выходе САУ (системы автоматического управления) войдет в 5%-ную, в общем случае, зону называется временем регулирования...

ПС: в принципе может тогда уж мне сподобится и вообще статью по ТАУ сбацать?
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Перевод статьи про ПИД-алгоритмы

Сообщение =DeaD= » 05 авг 2008, 10:04

Ну вот это нормальный формат общения :)

Duhas писал(а):скачкообразное изменение задания важно, в тм и суть что характиристики системы смотрятся на скачкообразном изменении задания(которое называется единичной функцией в ТАУ)

Ну да, понятно что важно, однако оно же видно на графике, думаешь есть смысл еще и словами подписать что это именно оно?

Duhas писал(а):тот самый перелет называется перерегулированием, и в зависимости от системы оно может быть вообще недопустимо, а может быть приемлимо..

Есть смысл заменить слово перелёт общепринятым в этой области термином "перерегулирование"? Или просто сделать ссылку что такой термин используется по правильному?

Duhas писал(а):время, за которое та кривулина, что получается на выходе САУ (системы автоматического управления) войдет в 5%-ную, в общем случае, зону называется временем регулирования...

Ну 5% зона это конечно где как - в CNC станках думаю это не 5% будет, а 0.05% может быть.

Duhas писал(а):ПС: в принципе может тогда уж мне сподобится и вообще статью по ТАУ сбацать?

Вопрос в том, на какую аудиторию она будет рассчитана и что в ней давать? Я видел кучу статей по ТАУ, но как-то там всё сложно чисто визуально, некоторые статьи сразу начинаются с кучи формул с интегралами, что аж не хочется разбираться - что там и как, а тут всё просто и наглядно с картинками.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Перевод статьи про ПИД-алгоритмы

Сообщение blindman » 05 авг 2008, 11:14

=DeaD= писал(а):Про рисунок 3 не понял почему это принципиально, учитывая описанную модель;

Именно учитывая описанную модель, в которой целью регулирования является установка определенного положения вала.
=DeaD= писал(а):Про рисунок 7 - там нету слово "скачкообразно" вроде? А с учетом этого какая разница, что это за график "зависимость поведения системы" или "реакция системы"?

Разница очень существенная. На графике зависимость от времени , а в тексте - зависимость от управляющего воздействия.
=DeaD= писал(а):Общая то суть ПИД-контроллера стала ясна?

Более-менее. Я потому и говорю об этих неточностях в переводе. Я читал оригинальную статью давно, так и не разобрался. Почитал перевод - стало понятнее, но некоторые моменты все равно остались неясны. Поднял оригинал - и оказалось, что там в этих местах говорится совсем не то, что в переводе.
По своему опыту знаю, что переводить нужно или дословно, или, если уж позволяешь себе вольности в переводе, то нужно следить, чтобы они не нарушали общую линию изложения.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Перевод статьи про ПИД-алгоритмы

Сообщение =DeaD= » 05 авг 2008, 14:07

blindman писал(а):
=DeaD= писал(а):Про рисунок 3 не понял почему это принципиально, учитывая описанную модель;

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

Цитирую "Редуктор в этой схеме просто умножает скорость вращения двигателя на некоторую константу." Что значит, что если скорость одного постоянно, то скорость второго тоже.

blindman писал(а):
=DeaD= писал(а):Про рисунок 7 - там нету слово "скачкообразно" вроде? А с учетом этого какая разница, что это за график "зависимость поведения системы" или "реакция системы"?

Разница очень существенная. На графике зависимость от времени , а в тексте - зависимость от управляющего воздействия.

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

blindman писал(а):
=DeaD= писал(а):Общая то суть ПИД-контроллера стала ясна?

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

А какие моменты остались не ясны?

blindman писал(а):По своему опыту знаю, что переводить нужно или дословно, или, если уж позволяешь себе вольности в переводе, то нужно следить, чтобы они не нарушали общую линию изложения.

Так я вроде так и делал, не позволяя себе каких-то особых вольностей. Понятно что я не идеален и мог где-то ошибиться, но пока я не увидел явных ошибок, скорее кому-то кажется, что эту же мысль можно было бы выразить другими словами - по этому поводу готов обсудить и поправить статью, если что.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Перевод статьи про ПИД-алгоритмы

Сообщение Duhas » 05 авг 2008, 17:59

заменить на перерегулирование имеет смысл, оно просто и понтно и научно сразу )) + есть я рожу статейку по тау в доступной форме то и термины не будут отличаться...можно будет и статью скомпилировать с моими материалами...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Перевод статьи про ПИД-алгоритмы

Сообщение =DeaD= » 05 авг 2008, 19:50

Научно - это да, а вот просто и понятно.... народ, кто с ТАУ незнаком - слово перерегулирование если поставить вместо "перелёт" в статье лучше будет или хуже?

(ссылку на правильный термин при первом использовании я уже сделал).
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Перевод статьи про ПИД-алгоритмы

Сообщение EdGull » 05 авг 2008, 19:56

перелёт лучше потомучто понятней
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Перевод статьи про ПИД-алгоритмы

Сообщение rig » 17 авг 2008, 09:23

как бы это на приктике применить к примеру езда по линии
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

Re: Перевод статьи про ПИД-алгоритмы

Сообщение -= Александр =- » 17 авг 2008, 15:12

На днях успешно применил статью: сбацал алгоритм прогрева рентгеновской трубки! По сравнению с линейной регулировкой - в 3 раза быстрей выходит на режим! Огромный респект за статью!
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Re: Перевод статьи про ПИД-алгоритмы

Сообщение =DeaD= » 23 авг 2008, 21:05

rig писал(а):как бы это на приктике применить к примеру езда по линии

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

Добавлено спустя 3 минуты 52 секунды:
-= Александр =- писал(а):На днях успешно применил статью: сбацал алгоритм прогрева рентгеновской трубки! По сравнению с линейной регулировкой - в 3 раза быстрей выходит на режим! Огромный респект за статью!

Рад что пригодилось! А можно коротко - какие компоненты пользовал? (все три ПИД? или только ПИ?) какие коэффициенты получились и т.п. Чтобы народу так сказать примеры были как это в жизни получается... отлаживал коэффициенты как в статье указано?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Перевод статьи про ПИД-алгоритмы

Сообщение -= Александр =- » 27 авг 2008, 13:38

Да, все три.
Если кто не знает - рентгеновская трубка работает как обычный вакуумный диод. Выставляется анодное напряжение (25 кВ) а ток в цепи регулируется напряжением накала. Цепь накала довольно массивная и инерционная. Поэтому чтобы выставить 400 мкА нужен ПИД. Обратная связь берется по токовому резистору и мерится АЦП. Напряжение накала задается ЦАПом и дальше идет на ШИМ-контроллер.
Линейное регулирование тут непригодно - после вдувания энергии в накал ток начинает расти секунды через 3. Так что была реализована схема как на первой странице статьи. Коэффиценты получились такие:

kP1=40 //Линейный усилителя ошибки
kP2=2 //Линейный обратной связи
kI=1 //Интегратора
kDi=100 //Дифференциальный

Все реализовано на ATMEGA8535 (знаю что старая, но решили плату не переделывать) TL494 и внешних 12-битных АЦП и ЦАП. Схему увы привести не могу - секрет фирмы.
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Re: Перевод статьи про ПИД-алгоритмы

Сообщение celladon » 09 сен 2008, 13:21

Забавная программа по ПИД управлению заполнением бака. Написана на VB.
Вложения
pid_loop.zip
(22.17 КиБ) Скачиваний: 30
celladon
 
Сообщения: 37
Зарегистрирован: 17 дек 2007, 11:35
Откуда: СПб

Re: Перевод статьи про ПИД-алгоритмы

Сообщение Duhas » 02 дек 2008, 12:30

начал вот писать прошивку для телеги, что тусуется в проектах...

в планах 3-х контурное управление... положение, скорость и ток
думал думал и надумал вот такую формулу для регулятора

U(n)=U(n-1)+x(n)*k+(x(n)-U(n-1))*f
Хде
U(n) выходное воздействие
x(n) задание на входе регулятора (уже как разность между начальным заданием и сигналом обратной связи)
U(n-1) выходное воздействие на предыдущей итерации

мне вот кажется что это что-то типа ПД регулятора получилось.. ваши мысли?

был косячек в конце формулы у от н-1.. поправил ...
Последний раз редактировалось Duhas 02 дек 2008, 12:50, всего редактировалось 1 раз.
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Пред.След.

Вернуться в Алгоритмы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4