На самом деле мною двигали соображения второй части сообщения.
Управление электромагнитным клапаном на PIC16F873A
- Сообщения: 103
- Зарегистрирован: Пт фев 03, 2012 19:39:32
Очень надеюсь что это шутка.
На самом деле мною двигали соображения второй части сообщения.
На самом деле мною двигали соображения второй части сообщения.
- Реклама
- Сообщения: 103
- Зарегистрирован: Пт фев 03, 2012 19:39:32
Здравствуйте Soir!
Я с Вашего разрешения выложил эту разработку на профильном форуме и меня изрядно покритиковали.
Как оказалось я заложил устаревший алгоритм работы, как оказалось самый передовой алгоритм другой.
Поэтому и интерес никакой.
Принцип правильный, а метод другой, более оптимальный.
Если у Вас не пропал интерес, я могу выложить новое видение проблемы.
Было бы здорово изменить программу.
Я с Вашего разрешения выложил эту разработку на профильном форуме и меня изрядно покритиковали.
Как оказалось я заложил устаревший алгоритм работы, как оказалось самый передовой алгоритм другой.
Поэтому и интерес никакой.
Принцип правильный, а метод другой, более оптимальный.
Если у Вас не пропал интерес, я могу выложить новое видение проблемы.
Было бы здорово изменить программу.
Переписывать ее заново или что-то кардинально менять я не готов. Если что поправить - давайте, посмотрю...variaevg писал(а):...Было бы здорово изменить программу.
- Сообщения: 103
- Зарегистрирован: Пт фев 03, 2012 19:39:32
Принцип формирования управляющего клапаном импульса остается прежним.
d - время на которое клапан открыт
p - периодичность включения клапана
n - число от 1 до 1024
d=n*p/1024
1. При ручном управлении просто задаем число n0.
d=n0*p/1024
O=k*n0
2. При автоматическом управлении такая работа:
d=n*p/1024
O=k*n
- при переключении с ручного управления на автоматический (тумблер) запоминается текущая
температура Т0 и регулировка производится относительно ее.
- текущая температура Т поддерживается около Т0+0.05
- температура имеет тенденцию к медленному росту и при регулировке не должна падать до Т0.
- при Т=Т0+0.1 отбор закрывается (n=0) для исключения потери качества.
- для учета атмосферного влияния каждый час отбор закрывается (n=0) на 5 мин. В конце
этих 5 мин запоминается новая Т0 и процесс возобнавляется.
Принцип регулировки температуры ( пропорциональный, ПИД или другой) не могу сказать.
В настройках исключаем t0, t1, t2, n1, n2.
Остаются без изменений p, n0, k - размерности прежние.
Остальные сигналы:
При A/R = 1 автоматический режим
A/R = 0 ручной режим
При BLOC = 1 контроллер работает
BLOC = 0 клапан закрыт ( OUT = 0 ), на индикатор выводится "bloc".
При неисправности датчика температуры на выходе BUZ формируется 1 длительностью 30 сек,
на индикатор Err (при индикации температуры) .
Сигнал НОТ исключаем.
При нажатии на PLUS на индикатор выводятся показания О, при нажатии на MINUS текущая
температура с дискретностью 0,01.
Я знаю, что дискретность датчика DS18B20 0.06, но вычитал, что можно как то фильтровать
или делать несколько замеров и усреднять.
Поскольку процесс длительный, температура в кубе ( не та которую мы измеряем контроллером)
изменяется всего на 14 градусов за примерно двое суток то мне кажется, что 10 замеров в течении
10 сек будет нормально.
d - время на которое клапан открыт
p - периодичность включения клапана
n - число от 1 до 1024
d=n*p/1024
1. При ручном управлении просто задаем число n0.
d=n0*p/1024
O=k*n0
2. При автоматическом управлении такая работа:
d=n*p/1024
O=k*n
- при переключении с ручного управления на автоматический (тумблер) запоминается текущая
температура Т0 и регулировка производится относительно ее.
- текущая температура Т поддерживается около Т0+0.05
- температура имеет тенденцию к медленному росту и при регулировке не должна падать до Т0.
- при Т=Т0+0.1 отбор закрывается (n=0) для исключения потери качества.
- для учета атмосферного влияния каждый час отбор закрывается (n=0) на 5 мин. В конце
этих 5 мин запоминается новая Т0 и процесс возобнавляется.
Принцип регулировки температуры ( пропорциональный, ПИД или другой) не могу сказать.
В настройках исключаем t0, t1, t2, n1, n2.
Остаются без изменений p, n0, k - размерности прежние.
Остальные сигналы:
При A/R = 1 автоматический режим
A/R = 0 ручной режим
При BLOC = 1 контроллер работает
BLOC = 0 клапан закрыт ( OUT = 0 ), на индикатор выводится "bloc".
При неисправности датчика температуры на выходе BUZ формируется 1 длительностью 30 сек,
на индикатор Err (при индикации температуры) .
Сигнал НОТ исключаем.
При нажатии на PLUS на индикатор выводятся показания О, при нажатии на MINUS текущая
температура с дискретностью 0,01.
Я знаю, что дискретность датчика DS18B20 0.06, но вычитал, что можно как то фильтровать
или делать несколько замеров и усреднять.
Поскольку процесс длительный, температура в кубе ( не та которую мы измеряем контроллером)
изменяется всего на 14 градусов за примерно двое суток то мне кажется, что 10 замеров в течении
10 сек будет нормально.
- Вложения
-
- ТУ.txt
- (1.86 КБ) 207 скачиваний
Общее впечатление: Очень похоже на очередной тренировочный вариант. Надеюсь последний. Если не уверены, то лучше еще раз подумайте, больше я к этой теме возвращаться не буду.
Теперь вопросы.
Теперь вопросы.
А чем она поддерживается? Не вижу формулы, в которой участвуют T и T0.variaevg писал(а): - текущая температура Т поддерживается около Т0+0.05
Сотые получим, но система будет "тормознутая" на 10 сек. Не критично?variaevg писал(а):...10 замеров в течении 10 сек будет нормально.
- Реклама
- Сообщения: 103
- Зарегистрирован: Пт фев 03, 2012 19:39:32
Подобные методы используются, только реализацией не делятся.Очень похоже на очередной тренировочный вариант. Надеюсь последний.
Работать должно так:А чем она поддерживается? Не вижу формулы, в которой участвуют T и T0.
В ходе процесса смесь в кубе обедняется, температура кипения растет и Т имеет тенденцию к росту.
Т должно поддерживаться в диапазоне от Т0-0.03 до Т0+0.03. Мне кажется что пропорциональное регулирование наиболее правильное (так и у других).
Регулировка производится изменением числа n. Т.е. если температура выросла, то новое n(новое)=n(предыдущее) - n1, если снизилась то + n1.
Чтобы не получить вялое регулирование или перерегулирование надо дополнительно ввести в настройки:
- число n1 [1-100]
- периодичность внесения коррекции p1 [сек] от 10 до 100 с дискретностью 5.
Т.е. измерение собирается за 5 сек, если Т изменилось на 0.01 то коррекция на число n1 происходит с периодичностью p1.
Сотые получим, но система будет "тормознутая" на 10 сек. Не критично?
Давайте сделаем 5 сек.
На сколько выросла? Где пропорциональность? Дайте формулу, связывающую n, T0 и T.variaevg писал(а):Регулировка производится изменением числа n. Т.е. если температура выросла, то новое n(новое)=n(предыдущее) - n1, если снизилась то + n1.
Тогда забудьте про сотые.variaevg писал(а):Давайте сделаем 5 сек.
- Сообщения: 103
- Зарегистрирован: Пт фев 03, 2012 19:39:32
В диапазоне от Т0-0.03 до Т0+0.03 ничего не меняем.Дайте формулу, связывающую n, T0 и T.
Если Т=Т0+0.04 и больше текущее n уменьшается на n1
Если Т=Т0-0.04 и меньше текущее n увеличивается на n1
Т0 определяется при переключении с ручного режима на автоматический.
Начальное n тоже запоминается при переключении с ручного режима на автоматический.
n1 и p1 подбираются экспериментально.
Возвращаемся к 10 сек, сотые это обязательно.Тогда забудьте про сотые.
- Сообщения: 103
- Зарегистрирован: Пт фев 03, 2012 19:39:32
Забыл добавить. При выключении отбора каждый час текущее n запоминается и после включения через 5 мин регулирование начинается с него.
Ещё раз переспрошу для очистки совести, Вы уверены? Могу Вам гарантировать, что стабилизации практически не будет.variaevg писал(а): В диапазоне от Т0-0.03 до Т0+0.03 ничего не меняем.
Если Т=Т0+0.04 и больше текущее n уменьшается на n1
Если Т=Т0-0.04 и меньше текущее n увеличивается на n1
А какое n начальное в ручном режиме?variaevg писал(а):Начальное n тоже запоминается при переключении с ручного режима на автоматический.
- Сообщения: 103
- Зарегистрирован: Пт фев 03, 2012 19:39:32
Я извиняюсь. Протупил как дурак. Дал неправильную формулу.Могу Вам гарантировать, что стабилизации практически не будет.
Если Т=Т0+0.09 и больше текущее n уменьшается на n1
Если Т=Т0+0.03 и меньше текущее n увеличивается на n1
Отключение отбора при Т=Т0+0.12
А в связи с чем не будет стабилизации. Нужно поддерживать температуру в заданном диапазоне.
Это n0, которое задается в настройках.А какое n начальное в ручном режиме?
Формула никак не учитывает величину отклонения, а только факт. Если отклонение произошло на 0,01 град или на 0,1 град, то очевидно, что корректирующее воздействие на систему должно быть разное... Или Вы исключаете воздействие внешних факторов на процесс?variaevg писал(а):А в связи с чем не будет стабилизации. Нужно поддерживать температуру в заданном диапазоне.
Я попробую реализовать тот алгоритм, что Вы предлагаете, но, скорее всего, это напрасно потраченное время.
- Сообщения: 103
- Зарегистрирован: Пт фев 03, 2012 19:39:32
Я бы назвал это методом последовательного приближения.
У нас не разовая коррекция, а неоднократная, через каждые p1 сек на фиксированную величину n1, если того требует соотношение Т и Т0. А они подбираются для достижения более менее ровного процесса.
У нас не разовая коррекция, а неоднократная, через каждые p1 сек на фиксированную величину n1, если того требует соотношение Т и Т0. А они подбираются для достижения более менее ровного процесса.
Ради бога.variaevg писал(а):Я бы назвал это методом последовательного приближения.
То есть, как только перевели на автоматический режим (T=T0, n=n0), n сразу должно увеличиваться?variaevg писал(а):Если Т=Т0+0.03 и меньше текущее n увеличивается на n1
- Сообщения: 103
- Зарегистрирован: Пт фев 03, 2012 19:39:32
Да. В установленный диапазон.как только перевели на автоматический режим (T=T0, n=n0), n сразу должно увеличиваться?
В Вашем алгоритме не прописаны приоритеты при разных ситуациях, не буду их сейчас все перечислять. Пробуйте, а что не так - скажете, тогда и обсудим.
P.S.
Одна особенность. При включении питания достоверные значения температуры будут только спустя 10 успешных измерений. В это время управление запрещено, показания мигают.
P.S.
Одна особенность. При включении питания достоверные значения температуры будут только спустя 10 успешных измерений. В это время управление запрещено, показания мигают.
- Вложения
-
- Valve_control_PIC16F873A.zip
- (20.33 КБ) 167 скачиваний
Последний раз редактировалось Soir Ср фев 12, 2014 14:00:06, всего редактировалось 1 раз.
- Сообщения: 103
- Зарегистрирован: Пт фев 03, 2012 19:39:32
Форум пишет "Выбранное вложение отсутствует"
Перезалейте пожалуйста.
Перезалейте пожалуйста.
- Сообщения: 103
- Зарегистрирован: Пт фев 03, 2012 19:39:32
Индикатор мигает несколько раз, затем Err, затем мигает,снова Err и так по кругу.
Это в железе? А когда мигает, то сколько показывает? реальную температуру?
Последний раз редактировалось AlekseyEnergo Сб фев 15, 2014 17:11:32, всего редактировалось 1 раз.
Причина: Нарушение пункта 2.7 правил форума. Подредактировал. Предупрежден!
Причина: Нарушение пункта 2.7 правил форума. Подредактировал. Предупрежден!


