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

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

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

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

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

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

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

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

Сообщение от ALEGYR Посмотреть сообщение
Я просто прогоню эти значения через программку, в которой будет не какой-то там высосанный хер , а твой написанный код с указателями //Начало и //конец и посмотрю что будет с сигналом control за 10 минут прогрева от комнатной температуры до уставки EE_FUEL_TARGET_TEMP при скорости нагрева бачка равной 0.1 градуса в секунду!
Дятел, а откуда твоя программка возьмет информацию, в какой момент какая текущая температура была, и, как следствие, какая была ошибка? Я тебе, вонючка, график даже нарисовал в качестве иллюстрации. Каким хером твоя программка, никак не отражающая реальную систему, в которой должен работать алгоритм, оценит его работоспособность, а, идиотина? Или ты собрался график примерно такого вида, как я изобразил, подменить совершенно левой прямой (как у тебя в фене), и на основании полученного бреда что-то утверждать?

Ты что, реально что ли не можешь сообразить, что без математической модели объекта ты НЕ МОЖЕШЬ никак сэмулировать работу моего алгоритма на этом объекте?! Ну напряги опилки свои межушные, а то несмешно уже.

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

Сообщение от AR_Favorit Посмотреть сообщение
Если я лоханулся, мой корявенький код с цифирьками не сможет управлять твоим феном. Так что же ты не рвешься проверить? Повторюсь - у тебя есть всё, что надо, уставки, матмодель - давай, покажи, что мой код НЕ работает, а мы посмеемся)))
Так я же уже говорил, что мне не надо проверять твой код на моем фене! Меня мой вполне устраивает!
И что касается твоего кода я никогда не писал что он не рабочий! Я писал что он КОРЯВЫЙ и с костылями!
Вот сейчас ты подправил свои костыли, и я его проверил своей программкой
Цитата:

int EE_FUEL_TARGET_TEMP = 75;
int PID_curr_err = 0;
int PID_prev_err = 0;
float temp = 20;
int integral_err = 0;
int count = 0;
int control = 0;
int control_p = 0;
int control_i = 0;

int EE_PID_P = 50;
int EE_PID_I = 15;
int EE_PID_D = 8;
int EE_PID_TIME = 4;

do{
PID_curr_err = EE_FUEL_TARGET_TEMP - temp;// начало
if (integral_err‹(EE_PID_TIME*2000)) integral_err += PID_curr_err;
control_p = EE_PID_P*PID_curr_err;
control_i = control_p + (integral_err*EE_PID_I)/1000;
control = control_i -(PID_prev_err - PID_curr_err)*EE_PID_D;
PID_prev_err = PID_curr_err;//конец

temp = temp + 0.4;
count = count + 4;

Serial.print("temp = "); Serial.print(temp);// для отладки
Serial.print(" PID_curr_err = "); Serial.print(PID_curr_err);// для отладки
Serial.print(" integral_err = "); Serial.print(integral_err);// для отладки
Serial.print(" control_p = "); Serial.print(control_p);// для отладки
Serial.print(" control_i = "); Serial.print(control_i);// для отладки

Serial.print(" count = "); Serial.print(count);// для отладки
Serial.print(" control = "); Serial.println(control);// для отладки
}

while (count‹600);
Вполне приличный результат получился! (см красный квадратик в прикрепленной картинке)
И что интересно, даже без наличия самого бачка с маслом, и его сложной математической модели, вполне приличный результат сигнала control подучился!

Такой сигнал можно и без костылька
if (control›heat_counter) HEAT_ON; else HEAT_OFF;
разу на генератор шима подавать!
Миниатюры:
Нажмите на изображение для увеличения
Название: LOG8.JPG
Просмотров: 0
Размер:	364.0 Кб
ID:	122660  
ALEGYR вне форума  
Непрочитано 13.12.2017, 08:22  
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от 6ap6oc Посмотреть сообщение
Вопрос - где по отношению к нагревателю стоит термометр и в скольких точках идет контроль температуры?
Бачок. В серийном устройстве - герметичный. Форма - горизонтально расположенный цилиндр. Внизу от одного торца идет ТЭН, не на всю длину. Примерно в середине другого торца датчик. Один. Меряет среднюю температуру по больнице, понятное дело.

Принудительного перемешивания, разумеется, нет, там вообще и не особо надо прям копейка в копейку температуру удерживать, если нужен срочный запуск горелки, она так стартует за несколько градусов до достижения уставки, и ничего, норм загорается. Периодическая подкачка небольших порций холодного топлива тоже особо температуру не сбивает.

Сообщение от 6ap6oc Посмотреть сообщение
Больно уж вы подробно коэффициенты обсуждаете, без обоснования подхода к проектированию.
Да не обсуждаю я с этим чучелом коэфициенты. Я путем оскорблений пытаюсь заставить его думать. А он вместо этого пытается доказать, что код, работающий в серийном устройстве, таки нерабочий. Что у него по понятным причинам получается, мягко говоря, не очень.

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

Ну а дальше пошло-поехало: я пытался от него получить объяснение, в ответ были бессвязные визги, что это чтобы вначале грело быстро, а потом точно держало температуру, попросил саму функцию расчета ПИД-регулятора, функция оказалась скачанной с инета чужой поделкой для ардуины, в принципе - рабочей, хоть и реализованной путем переписывания формул из учебника, с полным игнорированием того факта, что исполняться это будет на дохлом 8-битном контроллере.

В итоге стало понятно, что сие тело написать своего кода не может. Я спросил - неужели так трудно? И выложил обрывок кода из своего первого попавшего под руку проекта 2-3-летней давности, делающий то же самое, но с приведением всех величин к целым числам.

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

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

Сообщение от AR_Favorit Посмотреть сообщение
а откуда твоя программка возьмет информацию, в какой момент какая текущая температура была, и, как следствие, какая была ошибка?
Дурашка ты глупенькая! У тебя же есть входной параметр пида, с названием temp!!! Вот я туда и буду подавать текущую температуру своим оператором
temp = temp + 0.4;
зная что максимальная скорость нагрева бачка равна 0.1 градус в секунду. Для первой прикидки значений пид-коэффициентов этого вполне достаточно!
ALEGYR вне форума  
Непрочитано 13.12.2017, 08:51  
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 Посмотреть сообщение
Вполне приличный результат получился! (см красный квадратик в прикрепленной картинке)
Щито?!
Не, ну что-то там у тебя посчиталось удачно, но скажи на милось, что это за объект такой грел нагреватель? Почему у этого объекта температура растет строго линейно? Это же твой фен, только с нагревателем вчетверо слабее, чем был, а не мой бачок с маслом. В бачке с маслом такой картины и близко не будет.

Поздравляю, балбес, ты ожидаемо посчитал неизвестно что, что-то левое, с высосанными из хера дохлого бомжа значениями обратной связи. И совершенно неважно, сумело ли оно пристойно выйти на рабочую точку и удерживать ее, или понеслось вразнос - это никак не говорит ни о работоспособности алгоритма, ни о годности уставок, ни о чем! Ты применил выдуманное значение обратной связи, и твоя программа написала целую таблицу выдуманных (ну то есть рассчитанных на основе выдуманного числа) значений.

И, кстати, не знаю, что ты там приличного увидел, я вот отчетливо вижу перерегулирование из-за излишнего накопления в интегральной составляющей, и последующий ужасный, длительный провал температуры ниже уставки, организованный пропорциональной составляющей, пытающейся исправить положение. Там не на уставку вышло, а пролетело ее, и колебание началось.

Ты ничего не проанализировал и ни в чем не убедился. Ты показал, что до сих пор не понимаешь, почему я тебе, старому валенку, сто раз уже повторил про математическую модель объекта, нагрев которого ты собираешься посчитать.

Сообщение от ALEGYR Посмотреть сообщение
И что интересно, даже без наличия самого бачка с маслом, и его сложной математической модели, вполне приличный результат сигнала control подучился!
А что бы и не получиться, ты ж виртуально грел не бачок с маслом, график кнагрева которого а некий _идеальный_ линейный нагреватель с мгновенной реакцией, без инерции, без собственной теплоемкости


Сообщение от ALEGYR Посмотреть сообщение
Такой сигнал можно и без костылька
if (control›heat_counter) HEAT_ON; else HEAT_OFF;
разу на генератор шима подавать!
В котелке твоем тупом костыльки, придурок. Процитированная тобой строка и есть программный генератор ШИМа. Таймер на такую херь только дебил вроде тебя заводить будет. Ну или вроде музыканта 32-битного, у него это из принципа.
А у меня вся реализация генерации ШИМ сигнала меньше места заняла, чем настройка таймера для того, чтоб ШИМ (с той же частотой) аппаратно генерить. Я просто понимаю, что пишу и зачем. Это очень важное мое отличие от таких, как ты.

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

Сообщение от ALEGYR Посмотреть сообщение
Дурашка ты глупенькая! У тебя же есть входной параметр пида, с названием temp!!! Вот я туда и буду подавать текущую температуру своим оператором
temp = temp + 0.4;
зная что максимальная скорость нагрева бачка равна 0.1 градус в секунду. Для первой прикидки значений пид-коэффициентов этого вполне достаточно!
Идиот! Полный идиот! Я тебе десятый раз повторяю - нагрев бачка дико нелинейный!! В начале процесса на один градус температура может и 20, и 25 секунд подниматься. А в середине есть учаточек, на котором может расти и на один градус в секунду или две! а в конце опять замедляется, и последний градус до уставки опять ползет секунд 20.

И это совсем другая картина по сравнению с линейным нагревом, который ты сэмулировал. Ты взял левые значения текущей температуры и получил полную херню, которая смогла показать только, что ты - клинический недоумок, которому сто раз повторили - не путай высосанный из уже не знаю чего линейный нагрев с реальным нелинейным! а ты так и не смог понять.

Поздравляю, Саньбо ты прошел испытание, и теперь ты сертифицированный дебил 80 lvl...


Кароч так, у меня дела, трепаться некогда, тебе будет скушно без моих пендюлей, так вот развлеки себя. Возьми чайник, сунь в него термопару от твоей абдурины и попробуй сделать термопот - чайник, поддерживающий заданную температуру. Чтоб он мог держать и 90 гр.С, а мог и 29 гр.С (при 25 в комнате), то есть любое задание из допустимого диапазона. Это еще не бачок с маслом, но уже не столь линейная система, как те ,что ты эмулируешь и выдаешь за реальную работу установки. Только на самом деле сделай, а не тупо эмуляцию с прибавкой одного и того же значения к текущей температуре в каждом периоде регулирования, как ты сделал с феном.

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

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

Тебя ждет большой сюрприз, когда подключишь настоящий фен: он может оказаться немного не тем объектом, который ты эмулируешь. Тебя ждет увлекательнейшее занятие по настройке ПИД в реальной, а не вымышленной конструкции. А учитывая, что ты сделать это нормально даже и в эмуляции не смог, будчи вынужденным то переключать наборы кефов, то тупо отрубить ПИД вообще до определенного значения ошибки, это будет весело.

Какой комизм - 40 страниц старый пенс-идиот, не умеющий программировать, не сделавший ни одного реального устройства на МК, с препеликим трудом прикручивающий чужие кривые скетчи к ардуине, выкладывающий под видом кода чужой дизасм, а под видом графика с реально работающего устройства - галимую тупейшую эмуляцию (строго градус в секунду, Карл!), так, вот, это больное чудище сидит тут и сутками напролет с напыщенным видом, напоминая жабу, которую деревенские дети надули смеха ради через вставленную в жопу соломинку, доказывает человеку, который последние 15 лет зарабатывает на жизнь исключительно программированием микроконтроллеров и разработкой устройств на них, что выхваченный из работающего у клиента проекта кусок кода этого человека - нерабочий, не совсем рабочий, рабочий, но с костылями, плохо написанный, неоптимальный, неэкономный, долго выполняющийся, дилетантский, корявый, и еще сколько-то там вариантов.

Это какой-то сюрреализм. Лол.

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

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

if (control›heat_counter) HEAT_ON; else HEAT_OFF;

ТВОЙ код вообще 4 (!) секунды думает, пока выдаст первое значение сигнала control!!!
А что касается пропорционального пида, то он таким и был 40 страниц темы, пока ты вдруг не "вспомнил", что бачок у тебя греется очень медленно, и регулируешь ты его нагрев не 1 раз в секунду, а 1 раз в ЧЕТЫРЕ секунды!!!
Так что милый, ты уж следи за тем что писал сначала, а что стал писать в конце, чтобы обсохнуть от дилетантства!
ALEGYR вне форума  
Непрочитано 13.12.2017, 09:23  
ALEGYR
Вид на жительство
 
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
ALEGYR на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от AR_Favorit Посмотреть сообщение
Ничего я не подправил, дятел ты тупой, ты гоняешь мой первоначально выложенный код, дубина. Тебе врать-то не стыдно, клоун?
Ну конечно ты ничего не подправил! Ты просто превратил EE_PID_TIME из 1 в 4, и вспомнил, что твой бачок греется не от 5-10 минут, а только 10!!!
Тебе врать-то не стыдно, игорек?
ALEGYR вне форума  
Непрочитано 13.12.2017, 09:31  
ALEGYR
Вид на жительство
 
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
ALEGYR на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от AR_Favorit Посмотреть сообщение
Не, ну что-то там у тебя посчиталось удачно, но скажи на милось, что это за объект такой грел нагреватель? Почему у этого объекта температура растет строго линейно?
А у меня много чего удачного! У меня и фен с МОИМИ коэффициентами работает удачно, и моя программка симулятора пида весьма удачно оценивает твой код! Даже тебе понравилось!!!
А что касается строгой линейности, то для анализа коэффициентов я могу это допустить, понимая что точные их значения будут определятся требуемой кривизной реального объекта! Быстрее ведь объект греться не будет, а с медленными значениями и пиду работать легче!
ALEGYR вне форума  
Непрочитано 13.12.2017, 09:49  
ALEGYR
Вид на жительство
 
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
ALEGYR на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от AR_Favorit Посмотреть сообщение
И, кстати, не знаю, что ты там приличного увидел, я вот отчетливо вижу перерегулирование из-за излишнего накопления в интегральной составляющей, и последующий ужасный, длительный провал температуры ниже уставки, организованный пропорциональной составляющей, пытающейся исправить положение. Там не на уставку вышло, а пролетело ее, и колебание началось.
Я увидел что при твоих данных выход на уставку произошел на 538 секунде, а сигнал управления пида плавно изменил свое значение от 3190 до 41, накопив интегральную составляющую до 3734.
Что касается пролета через уставку, то все минусы говорят только о том, что сигнал temp у нас растет линейно все 10 минут анализа.
Так что этими минусами можно пренебречь, так как оцениваются ЗНАЧЕНИЯ коэффициентов пида а не сам пид!

Последний раз редактировалось ALEGYR; 13.12.2017 в 09:52.
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:37.


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