Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

ПИД регулятор на С

Непрочитано 02.03.2011, 13:55  
7Fantomas7
Почётный гражданин KAZUS.RUN
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию ПИД регулятор на С

Добрый всем день.
Вобщем дела такие,
есть результат АЦП 8 бит диапазон изменения 0-255 точность 1 единица
есть ШИМ 8 бит точность установки 1 единица.
ШИМ определяет измеряемую величину.
Как красиво организовать обратную связь.
Вообще то ПИД и не обязательно, но нужно чтоб стабильность была.
Вобщем может кто поделится информацией, лучше готовой формулой. А то интернет уже фактически сутки ковыряю и форум ковыряю,а понимания чего то нет.
Реклама:
7Fantomas7 вне форума  
Непрочитано 02.03.2011, 14:50  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,134
Сказал спасибо: 202
Сказали Спасибо 3,285 раз(а) в 2,151 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: ПИД регулятор на С

интересный вопрос
разные процессы по разному должны регулироваться, с разной тау
большинство процессов имхо без пида не нарегулируешь.
и самое главное надо довольно точно задавать время интегрирования и диференцирования. иначе вместо ровной линии получишь вечные качели с максимальной амплитудой
индюк вне форума  
Непрочитано 02.03.2011, 14:56  
7Fantomas7
Почётный гражданин KAZUS.RUN
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: ПИД регулятор на С

Цитата:
разные процессы по разному должны регулироваться
Процес измерения тока в сварочном инверторе. Измеряемая величина весьма динамичная. Амплитуда возможных изменений весь диапазон.
7Fantomas7 вне форума  
Непрочитано 02.03.2011, 16:49  
tanq
Гражданин KAZUS.RUN
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: ПИД регулятор на С

7Fantomas7,
Читай на тему Z-transfrom. Если у тебя есть аналоговая модель регулятора, то с помощью Z-transform переводишь ее в Z-домен. Коэффиценты полученной передаточной функции будут коэфициентами фильтра, который надо использовать.

Простейший вариант - чисто интегральный регулятор, без пропорционального звена. Алгоритм его работы такой:
e[1] = (v_ref - adc)‹‹8;
control += k * (e[1] + e[0]);
e[0] = e[1];
pwm = control››8;

Коэфициент усиления k - единственный регулировочный парметр. Уменьшай его до тех пор пока не пропадет самовозбуждение. Сдвиги в формуле нужны для реализации вычислений с фиксированной запятой, иначе будет потеря точности. Понятно, что нужно следить за отсутствие переолнения. Используя 32 битные числа все ОК, но на 8-битном МК лучше бы вписать диаппазон в 16 бит.
tanq вне форума  
Эти 3 пользователя(ей) сказали Спасибо tanq за это сообщение:
7Fantomas7 (02.03.2011), leoblp (03.03.2011), strvv (03.03.2011)
Непрочитано 02.03.2011, 17:22  
mironov
Вид на жительство
 
Регистрация: 07.03.2005
Сообщений: 300
Сказал спасибо: 13
Сказали Спасибо 117 раз(а) в 62 сообщении(ях)
mironov на пути к лучшему
По умолчанию Re: ПИД регулятор на С

На основе этого делал.
Вложения:
Тип файла: zip PID.ZIP (366.0 Кб, 1041 просмотров)
mironov вне форума  
Эти 12 пользователя(ей) сказали Спасибо mironov за это сообщение:
7Fantomas7 (02.03.2011), danilych2 (03.03.2011), Kosachoff (03.03.2011), leoblp (03.03.2011), NikBatch (03.03.2011), pifa (28.05.2011), sersne (14.06.2011), strvv (03.03.2011), Vlad German (03.03.2011), Woden (27.05.2011)
Непрочитано 02.03.2011, 17:59  
okt03
Временная регистрация
 
Регистрация: 13.05.2005
Сообщений: 50
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
okt03 на пути к лучшему
По умолчанию Re: ПИД регулятор на С

Отлично расписано ! Нечто подобное я делал
для управления двигателями.
okt03 вне форума  
Непрочитано 02.03.2011, 18:39  
7Fantomas7
Почётный гражданин KAZUS.RUN
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: ПИД регулятор на С

tanq,
Оно то все хорошо, только не смогли бы конкретизировать что такое Z-transfrom и что такое Z-домен. А то чет в сети рускоязычного на эту тему гулькин нос.
И значение элементов формулы не подскажете ли.
7Fantomas7 вне форума  
Непрочитано 02.03.2011, 18:43  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: ПИД регулятор на С

Я рекомендую другой способ. По прерыванию таймера сравниваем заданный результат и реальный. Если меньше, прибавляем 1. Если больше - вычитаем. Это очень быстрое действие. Далее запускаем АДС и пишем в таймер значение контанты К, которая будет определять коэффициент. Прерывание АДС записывает значение АЦП в переменную, которая будет использоваться в прерывании таймера. Таким образом два прерывания и очень короткое выполнение.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
leoblp (03.03.2011)
Непрочитано 02.03.2011, 19:16  
7Fantomas7
Почётный гражданин KAZUS.RUN
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: ПИД регулятор на С

Easyrider83,
Не поверите так и делаю. Только без прерываний. В качестве теста.
Только для регулировки тока сварочной дуги здается мало приемлемо. Нагрузка очень динамичная и непредсказуемаемая. И покуда мы будем 1 плюсовать или минусовать, 8 раз короткое случится и пропадет. Вобшем попробую такой вариант, но наверняка ничего не выйдет.

mironov,
Отлично расписано. Большое спасибо. Есть несколько вопросов.
Я не анализировал частоту прерываний таймера 0 но судя по всему 1 раз в 0.1 секунду.
С какой частотой должна выполнятся функция? И какая зависимость точности регулирования от частоты запуска функции?

Последний раз редактировалось 7Fantomas7; 02.03.2011 в 19:32.
7Fantomas7 вне форума  
Сказали "Спасибо" 7Fantomas7
leoblp (03.03.2011)
Непрочитано 02.03.2011, 19:38  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: ПИД регулятор на С

7Fantomas7, извините, но для короткого АЦП не подходит. Тут компаратор нужен и опять же - прерывание. Но можно попробовать и на АЦП короткое выловить, хоть это и не правильно. Просто добавить сравнение текущего значения с крайним. При превышении там же в прерывании отключать ток. А без прерываний это все реализовать сложно. Только в основном цикле. Но тогда и контроллер не нужен. Надо сразу все собирать на 494 - это вам и шим с пидом и компаратор ошибки.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
leoblp (03.03.2011)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПИД в PROTEUS Developer_ Proteus 30 04.09.2010 09:11
Регулятор мощности из Чипа и Дипа 2000Вт РегМощ Источники питания и свет 7 17.03.2010 08:59
Термокамера с ПИД регулятором нагрев/охлаждение andronio Микроконтроллеры, АЦП, память и т.д 3 14.10.2009 10:52


Часовой пояс GMT +4, время: 13:31.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.