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

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> ПИД регулятор на ARM
_Pasha
сообщение Jul 21 2008, 19:45
Сообщение #31


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(маша @ Jul 21 2008, 15:00) *
Ограничение интеграла - это алгоритмическое действие. И может применяться и в плавучке и в целых. В данном случае происходит не ограничение-замораживание интеграла, а его ограничение-коррекция.

smile3009.gif
Нет, давайте, все-таки, поспорим.
Я исхожу из
1. Нельзя объять необъятное, и ситуации, когда выход долго находится в насыщении, отслеживаются не ПИД, а тупо тайм-аутами, например, либо иным доступным способом. А ограничение интеграла в плавучке вызовет лишь видимость, что "все под контролем". И теряется "кумулятивный эффект" интегрального терма.
2. Другое дело целые числа. Здесь наскочить на арифметическое переполнение - легко. Поэтому для адекватности вычислений надо вводить ограничение, иначе - конопляные поля Галуа smile.gif
Ждем-с контраргументов...
Go to the top of the page
 
+Quote Post
Dir
сообщение Jul 21 2008, 19:52
Сообщение #32


Местный
***

Группа: Свой
Сообщений: 201
Регистрация: 6-01-05
Пользователь №: 1 830



Цитата(_Pasha @ Jul 21 2008, 09:18) *
Ну нельзя же так отжигать, право слово... lol.gif
Там нету накапливающего суммирования
pid->fSumError не участвует как приемник данных ни в одном выражении


Чето я вас не понимаю. Ну нет у моего процесса ограничения и насыщения как сверху так и снизу. Регулирование осуществляется в диапазоне значений. Поэтому и искусственно ограничивать интегральный терм смысла нет. Я же согласился с вами, что в "ваших" случаях при наличии ограничений это обязательно beer.gif Чего же вы пытаетесь найти несуществующую ошибку у меня. Просто вынимательнее рассмотрите программу и найдете то, чего так настойчиво не хотите видеть smile.gif
Ну не работала бы она с ошибкой так долго lol.gif
Go to the top of the page
 
+Quote Post
alexander55
сообщение Jul 22 2008, 05:29
Сообщение #33


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(_Pasha @ Jul 21 2008, 23:45) *
Нет, давайте, все-таки, поспорим.

Давайте.

Цитата(_Pasha @ Jul 21 2008, 23:45) *
1. Нельзя объять необъятное

Точно.

Цитата(_Pasha @ Jul 21 2008, 23:45) *
когда выход долго находится в насыщении,

Интеграл интегрирует и интегрирует, интегрирует и интегрирует, интегрирует и интегрирует ...
Представьте себе теперь, что будет когда рассогласование изменит знак (т.е. уже надо бы при пропорциональном воздействии менять знак на ШИМ на минус). Реакция будет через очень продолжительное время, т.к. долго будет списываться интеграл, а ШИМ будет стоять на максимуме, но со знаком плюс. Я это объясняю на пальцах для ясности. Прочувствовать влияние несогласоапнных ограничений можно моделированием.
Результат. Сделали из устойчивой в малом замкнутой системы неустойчивую при больших воздействиях.

Цитата(_Pasha @ Jul 21 2008, 23:45) *
2. Другое дело целые числа. Здесь наскочить на арифметическое переполнение - легко. Поэтому для адекватности вычислений надо вводить ограничение, иначе - конопляные поля Галуа smile.gif
Ждем-с контраргументов...

Правильно. Но это только один аспект.
Как же без функционально необходимых ограничений по ШИМ. Это, если хотите нормализация для правильной работы.
ШИМ бесконечной разрядности в природе не существует.
Go to the top of the page
 
+Quote Post
маша
сообщение Jul 22 2008, 05:38
Сообщение #34


Участник
*

Группа: Свой
Сообщений: 45
Регистрация: 7-11-05
Пользователь №: 10 537



Цитата(_Pasha @ Jul 21 2008, 23:45) *
smile3009.gif
Нет, давайте, все-таки, поспорим.
Я исхожу из
1. Нельзя объять необъятное, и ситуации, когда выход долго находится в насыщении, отслеживаются не ПИД, а тупо тайм-аутами, например, либо иным доступным способом. А ограничение интеграла в плавучке вызовет лишь видимость, что "все под контролем". И теряется "кумулятивный эффект" интегрального терма.
2. Другое дело целые числа. Здесь наскочить на арифметическое переполнение - легко. Поэтому для адекватности вычислений надо вводить ограничение, иначе - конопляные поля Галуа smile.gif
Ждем-с контраргументов...

maniac.gif
1. Про переполнение целых чисел здесь речь не идет (я не виду), дабы это просто необходимость нормальной работы самого математического аппарата целочисленного ПИД регулятора.
2. Я согласна, что вариант тайм-аутама, отслеживающего знак ошибки и последующим запрещением интегрирования должен быть. Но после смены знака изменения ошибки возможны переходные выбросы, которые скорее всего необходимо гасить алгоритмами безударного перехода, что приведет к затягиванию процесса.
3. А можно не просто запрещать интегрирование, а корректировать значение интеграла (или ввести дополнительную обратную связь по исполнительному устройству), если изменение ошибки сохраняет знак.
Пример: дизель-генератор. Регулятор частоты тупо держит частоту, и нагрузка начинает ее давить. Тайм-аут отследил и заморозил интеграл, а частота продолжает падать...После уменьшения нагрузки (сменился знак изменения ошибки) регулятор продолжает "газовать" на том же уровне (разомкнут) , пока не сменится знак ошибки, а при этом дизель ускорится и улетит... А если интеграл корректировать, то после смены знака изменения ошибки, регулятор сразу вступит в работу.

Сильно не бейте...
Go to the top of the page
 
+Quote Post
alexander55
сообщение Jul 22 2008, 05:45
Сообщение #35


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(Dir @ Jul 21 2008, 23:52) *

Я уже не знаю с кем спорю.

Цитата(маша @ Jul 22 2008, 09:38) *
3. А можно не просто запрещать интегрирование, а корректировать значение интеграла

В обоих случаях стрктура ПИ регулятора изменяется на П.
Насчет корректирования, наверное, имеется ввиду ограничение, иначе ничего не понятно.
Go to the top of the page
 
+Quote Post
маша
сообщение Jul 22 2008, 06:19
Сообщение #36


Участник
*

Группа: Свой
Сообщений: 45
Регистрация: 7-11-05
Пользователь №: 10 537



Цитата(alexander55 @ Jul 22 2008, 09:45) *
Насчет корректирования, наверное, имеется ввиду ограничение, иначе ничего не понятно.

Кажется пора кондишн включать smile.gif Сама себя запутала... Корректирование - это ограничение интеграла при достижении выхода регулятора мин или макс значения, I = Umax(min) - P (- D).

Вобщем мысль была такая: при ограничении интеграла по знаку ошибки, необходимо учитывать и величину ошибки... всё.
Go to the top of the page
 
+Quote Post
alexander55
сообщение Jul 22 2008, 06:28
Сообщение #37


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(маша @ Jul 22 2008, 10:19) *
Вобщем мысль была такая: при ограничении интеграла по знаку ошибки, необходимо учитывать и величину ошибки... всё.

Тоже не очень понятно, но на уровне подсознания все понятно на 100 %. biggrin.gif
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jul 22 2008, 07:39
Сообщение #38


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(alexander55 @ Jul 22 2008, 08:29) *
долго будет списываться интеграл, а ШИМ будет стоять на максимуме, но со знаком плюс.
Результат. Сделали из устойчивой в малом замкнутой системы неустойчивую при больших воздействиях.


В смысле - а ШИМ будет стоять на максимуме, но с противоположным знаком, стремиться вернуть домой отвязавшийся параметр. Обратите внимание, что необходимые запасы по динамическому диапазону воздействий закладываются изначально.

Цитата(маша @ Jul 22 2008, 08:38) *
Пример: дизель-генератор.


В принципе, совершенно нормальный аргумент, но если сказать другими словами:
Вышли из зоны регулирования - ПИД выключается - вошли обратно - ПИД включился.
Мораль: спорим о разных вещах. Любая нелинейщина кроме ограничения по выходу и подключения интегратора - выделяется в отдельный функциональный блок.
Go to the top of the page
 
+Quote Post
alexander55
сообщение Jul 22 2008, 08:44
Сообщение #39


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(_Pasha @ Jul 22 2008, 11:39) *
В смысле - а ШИМ будет стоять на максимуме, но с противоположным знаком, стремиться вернуть домой отвязавшийся параметр.

Нет. Для простоты и понимания процесса пока забудем про П состовляющую.
ШИМ будет стоять на максимуме, т.к. интерграл глубоко в +.
Рассогласование уже стало со знаком -, но интерграл долго еще будет выходить из +, т.к. он глубоко ушел в +. Соответственно и ШИМ гонит в +, хотя надо уже в -.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 22 2008, 09:01
Сообщение #40


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(alexander55 @ Jul 22 2008, 12:44) *
ШИМ будет стоять на максимуме, т.к. интерграл глубоко в +.
Рассогласование уже стало со знаком -, но интерграл долго еще будет выходить из +, т.к. он глубоко ушел в +. Соответственно и ШИМ гонит в +, хотя надо уже в -.

А про Д-составляющую чё-то забыли?
Которая учитывает скорость изменения и "гасит" волновые процессы.
Вообще при правильно настроенных коэффициентах обычно никаких велосипедов придумывать не надо. Чем проще, тем лучше. Слишком "интеллектуальная" система иногда ведёт себя неадекватно.

Я недавно делал терморегулятор, наворотил там такого... режим начального прогрева, режим вывода на стационарный уровень, грубая подстройка, тонкая подстройка... ужос! 07.gif
Помучился месяц-другой, в результате всё переписал заново, осталось только 2 режима: прогрев с выходом в дельта-окрестность заданной температуры и собственно регулирование. И всё отлично работает!


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
alexander55
сообщение Jul 22 2008, 09:29
Сообщение #41


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(MrYuran @ Jul 22 2008, 13:01) *
А про Д-составляющую чё-то забыли?

С Д надо быть осторожным. Она чувствительна к помехам. А для устойчивости системы действительно помогает, т.к. уменьшает фазовый сдвиг разомкнутой системы.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jul 22 2008, 10:07
Сообщение #42


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(alexander55 @ Jul 22 2008, 12:29) *
С Д надо быть осторожным.


У меня все случаи применения ПИД в конце концов приходили к тому, что примерно Kd = - 0.5*Kp
Может, это со мной что-то не то smile.gif
Старинная аппликуха мелкомаленьких.
На всякий случай.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jul 22 2008, 10:16
Сообщение #43


Гуру
******

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



Цитата(MrYuran @ Jul 22 2008, 13:01) *
Я недавно делал терморегулятор, наворотил там такого... режим начального прогрева, режим вывода на стационарный уровень, грубая подстройка, тонкая подстройка... ужос! 07.gif
Помучился месяц-другой, в результате всё переписал заново, осталось только 2 режима: прогрев с выходом в дельта-окрестность заданной температуры и собственно регулирование. И всё отлично работает!

Пример разумного подхода. К сожалению, имеется огромное количество "высоконаучных" статей по выбору коэффициентов, их автоматической настройке, сравнению переходных процессов в "стационаре". Там эти коэффициенты с большой точностью подбирают/рассчитывают (вот откуда желание перейти на плавующую точку...), добиваясь никому не нужных рекордов по минимизации отклонений для малых переходных процессов. В результате (на практике) можно получить очень плохую устойчивость при немалых отклонениях (помехах), если не менять алгоритм. А разумный подход состоит в том, что нужно ответить на главный вопрос - что должна обеспечить система управления.
Еще замечу, что если есть некоторый (несколько неоптимальный в вышеупомянутом смысле) набор коэффициентов ПИДа, то примерно такую же переходную характеристику может дать другой набор параметров, которые отличаются процентов на 30, что косвенно свидетельствует о запасе грубости...
Go to the top of the page
 
+Quote Post
alexander55
сообщение Jul 22 2008, 10:17
Сообщение #44


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(_Pasha @ Jul 22 2008, 14:07) *
У меня все случаи применения ПИД в конце концов приходили к тому, что примерно Kd = - 0.5*Kp

Насчет - , я не понял.
Как Вы считаете диф. составляющую ?
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jul 22 2008, 10:32
Сообщение #45


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(alexander55 @ Jul 22 2008, 13:17) *
Насчет - , я не понял.
Как Вы считаете диф. составляющую ?

Обманул я. Минуса все-таки не было. Сорри.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 18:10
Рейтинг@Mail.ru


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