Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
23.01.2009, 00:15
|
|
Временная регистрация
Регистрация: 13.07.2006
Сообщений: 90
Сказал спасибо: 10
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Далее складываемсигналы Uвых(nT)пропорциональной и интегральной части и опять ограничиваем выход на уровне ограничения интегратора. Диф. часть надо будет еще повспоминать (опять проклятое пиво ..)... Но она Вам явно понадобится - тепловой объект - довольно инерционаая зараза - иногда нужна форсировка... Правда реализовывать можно по разному.
И главное не забывать про период квантования. Скорее всего надо реализовывать в функции обработки прерывания таймера - главное выдержать промежутки вызова ПИДа - т.е. Т.
|
|
|
|
23.01.2009, 04:02
|
|
Вид на жительство
Регистрация: 11.12.2006
Сообщений: 317
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
|
xinod, спасибо, завтра подолбу на свежую голову... может и подойдет
Еще вопрос.
Сумму инт (сумму ошибок) когда обнулять или ограничивать его надо? (ведь можно досуммировать до бесконечности )
|
|
|
|
23.01.2009, 14:37
|
|
Вид на жительство
Регистрация: 11.12.2006
Сообщений: 317
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
|
Мда, еще один вопрос.
И так.
Примером имеем ПИД регулятор с настройками:
П=0.5% на градус Цельсия
И = 200 сек
Д = 0 (пускай ноль, пока не рассматриваем)
Полоса интегрирования равна 10 градусов Цельсия.
Период запуска регулятора равен 2 сек.
Ошибка в установившемся режиме не превышает 1 градус Цельсия
И так, поправте если я не прав:
1. максимум интегральной суммы ошибки (integral:=integral+error) будет состоять с суммы 100 ошибок (коэффициент "И" делится на период запуска регулятора)?
2. Сумма n ошибок в integral не должна превышать значение полосы интегрирования (в нашем случае 10 градусов). Если выше - то тогда сумма равна 10 градусов, если ниже, равна -10 градусов?
if integral › 10 then integral:= 10
if integral ‹ -10 then integral:=-10
Или это максимальное значение ошибки не должно превышать значение полосы интегрирования?
if error › 10 then error:= 10
if error ‹ -10 then error:=-10
integral:=integral+error
Или при выходе ошибки за пределы полосы интегрирования должна сумма онулятся (отключает тем самым интегральное звено)?
if error › 10 then integral:=0
else
integral:=integral+error
if error ‹ -10 then integral:=0
else
integral:=integral+error
3. Ошибка вычисляется каждый раз при запуске регулятора с периодом в 2 сек?
error:=set_position - current_position
4. Регулятор за 200 секунд должен выйти на необходимую величину отработав ошибку. Следующий запуск регулятора должен произойти только после того, как будет выход за ошибку в установившемся режиме?
|
|
|
|
24.01.2009, 00:35
|
|
Временная регистрация
Регистрация: 16.06.2006
Адрес: Даугавпилс
Сообщений: 52
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Привет. Тоже хочу разобраться с ПИДом. К сожалению с моделированием не знаком, потому, если прогоните не обижусь. Расскажу, что знаю. Лучше ПИД разделить на составные части. Итак возьмём П. Для наглядности нагреем нагреватель с 20 до 200 градусов. Управлять напряжением на нагревателе будем 10 битным ШИМом.
P = (setpoint - currentpoint);
P = 200 - 20 = 180;
Явно мало. Поэтому в формуле есть некий коэффициент - Kp.
Для примера - будем греть до 150 полной мощностью, а затем её снижать.
Kp = 1023 / 50 ~ 20
Получаем
P = (setpoint - currentpoint) * Kp = (200 - 20) * 20 и т.д.
и ограничиваем сверху 1023, а снизу пока 0.
Это моделируется ? Подбором Kp и ограничения снизу можно получить неплохое качество регулирования.
В данном случае ШИМ = P.
|
|
|
|
24.01.2009, 01:52
|
|
Вид на жительство
Регистрация: 11.12.2006
Сообщений: 317
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
|
Мда...., не густо в нас знатоков ПИД регулятора
Ну хоть тупой вопрос...
Что будет віходом ПИД регулятора? Насколько я понял - будет "нечто" не привязано ни ко входу ни к выходу.
Для примера я подаю на вход значение температуры (Т заданное). На выходе должен получить что?
а) значение нарастающей температуры которая с перерегулированием приближается к заданной температуре.
(заданна для примера 100 градусов. на выходе будет последовательность 0,30,60,90,120,110,105,98,99,100,100,100,100)
б) некоторое процентное соотношение относительно входного сигнала (0.0 ,0.3, 0.6, 0.9, 1.2, 1.1, 1.05, 0.98, 0.99, 1.0, 1.0, 1.0, 1.0, 1.0 ) а дальше умножаешь на ту величину которую тебе нада (например на тот же 1024 значения 10-ти битки ЦАП или ШИМ)
|
|
|
|
24.01.2009, 02:58
|
|
Временная регистрация
Регистрация: 16.06.2006
Адрес: Даугавпилс
Сообщений: 52
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
На выходе "ПИД"а мы и получаем этот самый "ШИМ" который управляет этим самым нагревателем. А эту температуру "а" мы замеряем на нагревателе и используем для подсчета ошибки. Если взять только "П" колбасить будет немного дольше. Или вообще не выйдет на заданную температуру при малом "Kp". Необходимо подобрать коэффициент таким, чтобы температура попала в зону интегрирования. Здесь будет более точно регулировать "И" составляющая. Я так понимаю это дело.
|
|
|
|
24.01.2009, 09:07
|
|
Вид на жительство
Регистрация: 03.06.2007
Сообщений: 368
Сказал спасибо: 3
Сказали Спасибо 59 раз(а) в 52 сообщении(ях)
|
Хотелось бы узнать,для какой цели вы хотите использовать ПИД регулирование.Если,например,для поддержки определённой температуре в котле,то можно воспользоваться следующей методой.
К примеру необходимо поддержка температуры в 70 градусов.Устанавливаете два значения температуры-верхнее t=70,2С и нижние t=69,8С.
До нижнего предела температуры нагрев идёт постоянно,в полосе регулирования питание ТЭНов осуществляется импульсным током,частота которого зависит от разности температуры в объёме и верхнего установленного.
Для более серьёзного предприятия можно приобрести ТРМ-10 фирмы ОВЕН
|
|
|
|
24.01.2009, 15:08
|
|
Временная регистрация
Регистрация: 16.06.2006
Адрес: Даугавпилс
Сообщений: 52
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Ну, чайник ещё проще устроен. Давайте возьмём что посложнее. Например такое регулирование.
http://monitor.net.ru/forum/files/irsoft_668.gif
|
|
|
|
25.01.2009, 16:46
|
|
Прописка
Регистрация: 11.09.2007
Сообщений: 104
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Короче самое простой способ:
выставляешь коэффициенты: P=2;I=1;D=0
|
|
|
|
26.01.2009, 00:44
|
|
Временная регистрация
Регистрация: 13.07.2006
Сообщений: 90
Сказал спасибо: 10
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Привет товарищу ua_gruzin - даю наколки по ПИДам:
1) _http://electronix.ru/forum/index.php?s=5ab5e9b1e2fb33a81c81840b722b3d47&showt opic=20413&st=0&p=149350entry149350
2) _http://electronix.ru/forum/index.php?showtopic=10330&st=15&p=69686entry6968 6
3) _http://electronix.ru/forum/index.php?showtopic=20413&st=0&p=149032entry1490 32
На первый взгляд все толково описано... само плохо могу объяснять, потому как изучал все самостоятельно.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
ПИД-регулятор и Proteus
|
oleg_harp |
Микроконтроллеры, АЦП, память и т.д |
16 |
01.07.2009 23:37 |
ПИД регулятор
|
masterpc |
Производственное оборудование |
14 |
05.03.2007 16:24 |
ПИД регулятор на AVR
|
mishutka |
Микроконтроллеры, АЦП, память и т.д |
40 |
31.12.2006 03:11 |
Пид-регулятор и AVR
|
French |
Микроконтроллеры, АЦП, память и т.д |
1 |
06.10.2004 23:30 |
Часовой пояс GMT +4, время: 15:21.
|
|