Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Отвлекитесь, эмбеддеры! Отвлеченные темы - обсудить проблемы тепловой смерти вселенной, или просто пиво. Этот раздел - для отдыха.

 
Опции темы
Непрочитано 12.12.2017, 21:45  
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от ALEGYR Посмотреть сообщение
Ну конечно! Это ведь это не ты, а я поумничал и написал
Я писал о правильной настройке и вырождении в простых системах ПИДа в ПИ, а ты пишешь о существующем только в твоей голове "вырождении из ПИД в ПД и даже в П". Разницу не замечаешь? Или у тебя так - "слова вроде похожие, дай напишу, типа я понял, что они значат" Афазия, коли так, - это хреново, дедуль. Это значит, что Альцгймер в твоей черепушке Паркинсона победил и быстро укрепляет свою власть...
AR_Favorit вне форума  
Непрочитано 12.12.2017, 21:49  
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от stalkernet Посмотреть сообщение
Бля ну наконецто до народа начало доходить... а я уж думал когда это случится. Господа брачующиеся поймите наконец свою главную ошибку. Вы сравниваете два разных регулятора. ОДНОСТОУПЕНЧАТЫЙ с ДВУХСТУПЕНЧАТЫМ!!!!!!!!

одноступенчатый это чистый ПИД!!!
двухступенчатый это обычный позиционный плюс ПИД включаемый при определенном условии!!!!!!!!

тотже чистый ПИД при определенном алгоритме может стать двухступенчатым регулятором. пример разгон идет при Кp › 0 Ki = 0 Kd › 0.(первая ступень) при достижении определенного условия переходит идет уже при Kp › 0 Ki › 0 Kd › 0. (вторая ступень)
Ой, ну вы уже не вводите тут нашего Саньбо в исушение обозвать свое поделие, в котором он не сумел настроить кефы, двухступенчатым регулятором

Ему, бедолаге, с классическим пидом в три строки из брошюрки с названием типа "ТАУ для умственно осталых, с цветными картинками и раскрасками" бы разобраться

Вы же в курсе, для чего такие сложности нужны - совсем не для прогревающегося за три минуты линейно, как по рельсам, фена
AR_Favorit вне форума  
Непрочитано 12.12.2017, 22:32  
ALEGYR
Вид на жительство
 
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
ALEGYR на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от AR_Favorit Посмотреть сообщение
Я писал о правильной настройке и вырождении в простых системах ПИДа в ПИ, а ты пишешь о существующем только в твоей голове "вырождении из ПИД в ПД и даже в П". Разницу не замечаешь?
Конечно замечаю!
Мы же тут вроде код ТВОЕГО правильного ПИДа обсуждаем, и о ТВОЕЙ правильной настройке говорим! А оно у тебя вдруг(!), с ТВОИХ же слов, вырождается из ПИДа в ПИ!!!
см свою цитату
Сообщение от AR_Favorit Посмотреть сообщение
В итоге правильно настроенный PID-алгоритм в данном случае вырождается в PI-алгоритм
ALEGYR вне форума  
Непрочитано 12.12.2017, 22:51  
ALEGYR
Вид на жительство
 
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
ALEGYR на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от AR_Favorit Посмотреть сообщение
165 итераций прибавляют в среднем 82 каждая. Без учета кефов за время нагрева интегральная составляющая накопит 165х82=13530.
Дурашка! У тебя же в твоем коде стоит условие

if (integral_err‹(EE_PID_TIME*2000)) integral_err += PID_curr_err;

и EE_PID_TIME = 1
см свою же цитату
Сообщение от AR_Favorit Посмотреть сообщение
Значит у меня будет EE_PID_TIME = 1
С чего же вдруг у тебя интегральная составляющая накопит 13530?

У тебя интегральная составляющая, секунд за 50 нагрева (!), накопит масксимально допустимое значение 2000, и с этого момента перестанет как либо влиять на управляющий сигнал ПИДа!!!

И что интересно, это чУдное превращение ПИДа в П произойдет даже раньше того как бачок с маслом нагреется до уставки в 75 градусов!!!
Вот беда-то, так беда!!!

Последний раз редактировалось ALEGYR; 12.12.2017 в 22:53.
ALEGYR вне форума  
Непрочитано 12.12.2017, 23:46  
ALEGYR
Вид на жительство
 
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
ALEGYR на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от AR_Favorit Посмотреть сообщение
Я предлагаю начать с Кп = 40, Ки = 44, Кд=0.
Спасибо!

Сообщение от AR_Favorit Посмотреть сообщение
При этом твою любимую строку
"if (integral_err‹(EE_PID_TIME*2000)) integral_err += PID_curr_err;", разумеется, придется скорректировать, ибо она предназначена для систем с на порядок меньшей интегральной составляющей.
я понимаю что с твоим костыльком придется повозиться!
Беда только в том, что мне твои костыльки не нужны, а вот твоему бачку с маслом, судя по ТВОЕМУ коду, они необходимы!

Я вот тут взял и быстренько написал кодик, чтобы оценить влияние твоего костылька
if (integral_err‹(EE_PID_TIME*2000)) integral_err += PID_curr_err;

Цитата:
int EE_FUEL_TARGET_TEMP = 75;// заданное значение уставки
int PID_curr_err = 0; // текущая ошибка рассогласования при нагреве
float temp = 20; // начальная температура нагрева бачка с маслом
float Speed_heating = 0.5; // скорость нагревания бачка с маслом
int integral_err = 0; // накопленная интегральная ошибка
int count = 0; // счетчик времени нагрева бачка с маслом

do{
PID_curr_err = EE_FUEL_TARGET_TEMP - temp;
integral_err += PID_curr_err;
temp = temp + Speed_heating;
count = count + 1;

Serial.print("temp = "); Serial.print(temp);
Serial.print(" integral_err = "); Serial.print(integral_err);
Serial.print(" count = "); Serial.println(count);

}
while (PID_curr_err›0);
Пропустил этот кодик через бедную ардуину, и узнал удивительную но вполне ожидаемую, вещь об этом костыльке!!!
Оказалось, что если твой бачок с маслом будет нагреваться со скоростью 0.5 градусов в секунду (что вполне реально для бачка), то этот костыль твоего кода уже на 46 секунде нагрева, то есть всего на 43 градусах, достигает своего предельного значения (см красный квадратик на приложенной картинке) и с этого момента ТВОЙ ПИД регулятор превращается во что угодно, но только не в ПИД регулятор!!!

Вот незадача, так незадача! Такой правильный и хорошо обдуманный код ПИД регулятора! А мужики не знают, что нагрев их бачка с маслом контролируется простеньким П регулятором!
Миниатюры:
Нажмите на изображение для увеличения
Название: LOG7.JPG
Просмотров: 0
Размер:	184.2 Кб
ID:	122657  
ALEGYR вне форума  
Непрочитано 13.12.2017, 02:13  
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от ALEGYR Посмотреть сообщение
Конечно замечаю!
Мы же тут вроде код ТВОЕГО правильного ПИДа обсуждаем, и о ТВОЕЙ правильной настройке говорим! А оно у тебя вдруг(!), с ТВОИХ же слов, вырождается из ПИДа в ПИ!!!
см свою цитату
Так если "замечаешь", то какого же черта ты перепутал ПИ алгоритм (который успешно управляет простыми и сильно инерционными системами) с ПД алгоритмом (который в твоем больном воображении получился в моем коде)? Ты дурак или как? Очевидно, дурак.

Сообщение от ALEGYR Посмотреть сообщение
Дурашка! У тебя же в твоем коде стоит условие

if (integral_err‹(EE_PID_TIME*2000)) integral_err += PID_curr_err;

и EE_PID_TIME = 1
см свою же цитату
С чего же вдруг у тебя интегральная составляющая накопит 13530?

У тебя интегральная составляющая, секунд за 50 нагрева (!), накопит масксимально допустимое значение 2000, и с этого момента перестанет как либо влиять на управляющий сигнал ПИДа!!!

И что интересно, это чУдное превращение ПИДа в П произойдет даже раньше того как бачок с маслом нагреется до уставки в 75 градусов!!!
Вот беда-то, так беда!!!
Придурок ты обоссанный, при чем тут мой бачок с маслом?!

Идиотина ты упоротая, ты просил уставки для того, чтоб управлять твоим феном с помощью моего алгоритма. Я тебе их дал. Каким больным местом ты их начал примерять к бачку с маслом? Это совершенно другая система. Эти кефы к ней не пригодны от слова "совсем".

Более того, ты, пень тупой, не увидел, что при адаптации моего кода ПИД алгоритма под твою скорострельную систему, в которой интегральная составляющая в точке уставки ввваливает на порядок больше мощности в нагреватель, я ясно написал - для твоего случая, скотина ты больная, 2000 в этой строке меняются на 20000.

Это моя личная проприетарная строка, и она требует адаптации под конкретную разновидность системы, которой управляет. Для моей системы, у которой нормальный вклад интегральной составляющей не превышает нескольких сотых от максимальной мощности, там должен быть кеф 2000. Для твоей, где вклад этой составляющей достигает 60% от максимальной мощности, ограничение совсем другое.

Как ты не увидел написанного тебе русским по белому, дятел?

Последний раз редактировалось AR_Favorit; 13.12.2017 в 02:56.
AR_Favorit вне форума  
Непрочитано 13.12.2017, 02:49  
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от ALEGYR Посмотреть сообщение
Спасибо!
Да подавись, мне не жалко.

Сообщение от ALEGYR Посмотреть сообщение
я понимаю что с твоим костыльком придется повозиться!
Беда только в том, что мне твои костыльки не нужны, а вот твоему бачку с маслом, судя по ТВОЕМУ коду, они необходимы!
Костыльки нужны твоему бачку с говном, который ты по недоразумению называешь своей головой. А к меня "костыльков" нет. У меня продуманная и просчитанная система сигнализации нештатной работы нагревателя. Оттого, что твоя тупость не позволяет это тебе понять, ничего не меняется.

Сообщение от ALEGYR Посмотреть сообщение
Я вот тут взял и быстренько написал кодик
Впервые на арене циркап! Клоун-додик пишет кодик!

Сообщение от ALEGYR Посмотреть сообщение
if (integral_err‹(EE_PID_TIME*2000)) integral_err += PID_curr_err;
...
Пропустил этот кодик через бедную ардуину
...
Оказалось, что если твой бачок с маслом будет нагреваться со скоростью 0.5 градусов в секунду (что вполне реально для бачка), то этот костыль твоего кода уже на 46 секунде нагрева, то есть всего на 43 градусах, достигает своего предельного значения (см красный квадратик на приложенной картинке) и с этого момента ТВОЙ ПИД регулятор превращается во что угодно, но только не в ПИД регулятор!!!
А теперь как на самом деле. Во-первых, бачок с маслом на полградуса в секунду греться не может. Весь цикл прогрева - аж до 10 минут, тебе об этом было сказано, но ты, тупорылый баран, разумеется, отбросил реальность, высосал из своего корюзлого пальца идиотское предположение и с визгами ринулся его воплощать.

Мало того, даже воплощая его, ты посчитал какую-то херь.

А вот как на самом деле. Стандартный период регулирования для системы, которая прогревает бачок с маслом за 10 минут - 4 секунды. Это не твой скорострельный фен, Саньбо! Это медленно прогревающийся очень теплоемкий бачок с маслом. Твоему фену нужно быстрое регулирование. Бачку оно нафик не нужно.

За время нагрева проходит соответственно 150 итераций регулирования. В каждой итерации ошибка может быть от нуля до 70 градусов, в среднем она составляет градусов 40-45. Возьмем для пущего блезиру 50. 50*150 = 7500 - вот примерно сколько может накопиться в интегральном значении ошибки в этом кейсе пр нормальной работе.

А EE_PID_TIME*2000 у нас 4*2000=8000 единиц. Не дорастает интегральная составляющая до этого значения. И не мешает оно ей работать, если ТЭНы в порядке, и масло во внешней емкости не слишком холодное. А если что-то не так, то мешает, как и задумано, накапливается больше заданного предела, лочится в таком положении, и в контроле за состоянием установки этот факт заданным образом обрабатывается.

А если вместо теплоемкого масла настроить горелку на более легкое топливо (горелка и даже и на солярке работать будет), то период снижается до минимального, но тут температура, до которой надо топливо подогревать, уже совсем небольшая, потому время нагрева небольшое, и опять же, накопленная интегральная ошибка не достигает и 1*2000.

Сообщение от ALEGYR Посмотреть сообщение
Вот незадача, так незадача! Такой правильный и хорошо обдуманный код ПИД регулятора! А мужики не знают, что нагрев их бачка с маслом контролируется простеньким П регулятором!
Вот тебе и незадача. У "мужиков"-то таки именно ПИД работает (они, несмотря на мои рекомендации, все же задействуют и диф. составляющую, им, по их словам, так привычно настраивать) - температура плавно доходит до заданных 70 и поддерживает эту температуру безо всяких колебаний, чего П-регулятор в этой системе делать не может принципиально. А вот визгливая баба по прозвищу саньбо, как всегда, обосралась.

Последний раз редактировалось AR_Favorit; 13.12.2017 в 02:55.
AR_Favorit вне форума  
Непрочитано 13.12.2017, 03:39  
ALEGYR
Вид на жительство
 
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
ALEGYR на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от AR_Favorit Посмотреть сообщение
Так если "замечаешь", то какого же черта ты перепутал ПИ алгоритм (который успешно управляет простыми и сильно инерционными системами) с ПД алгоритмом (который в твоем больном воображении получился в моем коде)? Ты дурак или как? Очевидно, дурак.
Не очевидно!
Я писал о ПД алгоритме когда еще надеялся, что ты, как крутой кодер и спец по правильному нагреву бачков с маслом, не станешь пренебрегать влиянием дифференциальной составляющей, и не станешь принимать Kd равным нулю! Ну а уж коли ты все-таки похерил дифференциальную составляющую, то о ПД алгоритме можно забыть, и говорить только о простом П алгоритме!


Сообщение от AR_Favorit Посмотреть сообщение
Придурок ты обоссанный, при чем тут мой бачок с маслом?!
Идиотина ты упоротая, ты просил кефы для того, чтоб управлять твоим феном с помощью моего алгоритма. Я тебе их дал. Каким больным местом ты их начал примерять к бачку с маслом?
А зачем мне просить ТВОИ коэффициенты для СВОЕГО фена?! У меня есть СВОИ и они мне очень хорошо подходят!
Мне нужны ТВОИ коэффициенты, и нужны для анализа ТВОЕГО кода! Уж больно они у тебя загадочные, но правильные!

Так что если ты попутал мое со своим, и считаешь что указанные тобой коэффициенты к твоему коду для контроля нагрева бачка с маслом не подходят, я все-таки готов еще подождать, и узнать значения коэффициентов для ТВОЕГО кода! Ты же все-таки писал свой код на что-то опираясь, и даже циферьки 2000 и 1000 поставил в своем коде не спроста, а по умному разумению о том, как каждая из составляющих ПИДа влияет не процесс регулирования!!!
Я понимаю, что ты свой код писал под конкретный бачок с маслом и сегодня перед тобой его уже нет, но ты же можешь вспомнить о том с какой скоростью нагревался бачок с маслом, вот и исходи из этого! Тем более что ты хорошо можешь абстрагироваться!

Последний раз редактировалось ALEGYR; 13.12.2017 в 04:25.
ALEGYR вне форума  
Непрочитано 13.12.2017, 04:01  
ALEGYR
Вид на жительство
 
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
ALEGYR на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от AR_Favorit Посмотреть сообщение
А теперь как на самом деле. Во-первых, бачок с маслом на полградуса в секунду греться не может. Весь цикл прогрева - аж до 10 минут, тебе об этом было сказано, но ты, тупорылый баран, разумеется, отбросил реальность, высосал из своего корюзлого пальца идиотское предположение и с визгами ринулся его воплощать.
Я свои полградуса в секунду брал в некотором допущении и приближении! А если теперь весь цикл прогрева твоего бачка с маслом составляет аж до 10 минут, то это совсем беда будет! Ведь теперь скорость нагрева будет около 0.1 градус в секунду, и твой ПИД регулятор перестанет пидить не на 46 секунде, а гораздо раньше (точнее на 39 !!! И не на 43 градусах, а на 24!!!

Вот ведь какая закавыка получается! Думаем что греем хоть минуту по ПИД регулятору! А оказывается и минуты нет!!!

Последний раз редактировалось ALEGYR; 13.12.2017 в 04:03.
ALEGYR вне форума  
Непрочитано 13.12.2017, 04:15  
ALEGYR
Вид на жительство
 
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
ALEGYR на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от AR_Favorit Посмотреть сообщение
Мало того, даже воплощая его, ты посчитал какую-то херь.
Так эта херь написана на первой странице темы,

Цитата:
Код:

if (pid_counter‹(EE_PID_TIME*1000)) pid_counter++;
else
{
pid_counter = 0;
PID_curr_err = EE_FUEL_TARGET_TEMP - temp;//Начало
if (integral_err‹(EE_PID_TIME*2000)) integral_err += PID_curr_err;
control = (int32_t)EE_PID_P*PID_curr_err;
control += (integral_err*(int32_t)EE_PID_I)/1000;
control -= (PID_prev_err - PID_curr_err)*(int32_t)EE_PID_D;

PID_prev_err = PID_curr_err;//конец
}

if (control›heat_counter) HEAT_ON; else HEAT_OFF;
heat_counter++;
if (heat_counter›(EE_PID_TIME*1000)) heat_counter=0;
и эту, как ты сказал херь, писал не я а ТЫ!!!
ALEGYR вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Wiznet W7100. Общие вопросы R_N Микроконтроллеры, АЦП, память и т.д 7 06.06.2012 00:33
PCAD - вопросы и ответы avr123-nm-ru Proteus, KiCAD и другие ECAD 7 27.01.2011 21:15
Система измерения температуры (на AD8495), вопросы по схеме и реализации spartakchamp Измерительное оборудование 2 15.11.2010 22:04


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot