Отвлекитесь, эмбеддеры! Отвлеченные темы - обсудить проблемы тепловой смерти вселенной, или просто пиво. Этот раздел - для отдыха. |
13.12.2017, 07:55
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от ALEGYR
|
Я просто прогоню эти значения через программку, в которой будет не какой-то там высосанный хер , а твой написанный код с указателями //Начало и //конец и посмотрю что будет с сигналом control за 10 минут прогрева от комнатной температуры до уставки EE_FUEL_TARGET_TEMP при скорости нагрева бачка равной 0.1 градуса в секунду!
|
Дятел, а откуда твоя программка возьмет информацию, в какой момент какая текущая температура была, и, как следствие, какая была ошибка? Я тебе, вонючка, график даже нарисовал в качестве иллюстрации. Каким хером твоя программка, никак не отражающая реальную систему, в которой должен работать алгоритм, оценит его работоспособность, а, идиотина? Или ты собрался график примерно такого вида, как я изобразил, подменить совершенно левой прямой (как у тебя в фене), и на основании полученного бреда что-то утверждать?
Ты что, реально что ли не можешь сообразить, что без математической модели объекта ты НЕ МОЖЕШЬ никак сэмулировать работу моего алгоритма на этом объекте?! Ну напряги опилки свои межушные, а то несмешно уже.
Последний раз редактировалось AR_Favorit; 13.12.2017 в 07:57.
|
|
|
|
13.12.2017, 08:20
|
|
Вид на жительство
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
|
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;
разу на генератор шима подавать!
|
|
|
|
13.12.2017, 08:22
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от 6ap6oc
|
Вопрос - где по отношению к нагревателю стоит термометр и в скольких точках идет контроль температуры?
|
Бачок. В серийном устройстве - герметичный. Форма - горизонтально расположенный цилиндр. Внизу от одного торца идет ТЭН, не на всю длину. Примерно в середине другого торца датчик. Один. Меряет среднюю температуру по больнице, понятное дело.
Принудительного перемешивания, разумеется, нет, там вообще и не особо надо прям копейка в копейку температуру удерживать, если нужен срочный запуск горелки, она так стартует за несколько градусов до достижения уставки, и ничего, норм загорается. Периодическая подкачка небольших порций холодного топлива тоже особо температуру не сбивает.
Сообщение от 6ap6oc
|
Больно уж вы подробно коэффициенты обсуждаете, без обоснования подхода к проектированию.
|
Да не обсуждаю я с этим чучелом коэфициенты. Я путем оскорблений пытаюсь заставить его думать. А он вместо этого пытается доказать, что код, работающий в серийном устройстве, таки нерабочий. Что у него по понятным причинам получается, мягко говоря, не очень.
Вообще это началось с того, что этот тип, мнящий себя разработчиком, выложил в подтверждение этого огромную портянку ардуинного говнокода, где мне бросился в глаза странный момент - для управления одним и тем же термофеном в зависимости от величины текущей ошибки либо вообще не используется ПИД-регулирование, либо функция ПИД-регулятора вызывается, и работает она при этом с тремя разными наборами коэффициентов, переключаемыми "на лету" в зависимости от текущей величины ошибки.
Ну а дальше пошло-поехало: я пытался от него получить объяснение, в ответ были бессвязные визги, что это чтобы вначале грело быстро, а потом точно держало температуру, попросил саму функцию расчета ПИД-регулятора, функция оказалась скачанной с инета чужой поделкой для ардуины, в принципе - рабочей, хоть и реализованной путем переписывания формул из учебника, с полным игнорированием того факта, что исполняться это будет на дохлом 8-битном контроллере.
В итоге стало понятно, что сие тело написать своего кода не может. Я спросил - неужели так трудно? И выложил обрывок кода из своего первого попавшего под руку проекта 2-3-летней давности, делающий то же самое, но с приведением всех величин к целым числам.
После чего тело сильно обиделось, что кто-то программы пишет, а оно не умеет, и уже полгода пытается доказать, что код, работу которого я контролировал на объекте собственноручно, нерабочий, или полурабочий, или работает, но это не ПИД и т.д. Больной человек, но смешной. ПЗа последний месяц уже даже наметился некоторый прогресс, он уже научился понимать, что желает та или иная строка.
Но вот понимать глобальные вещи, типа того, что нельзя высосать из пальца левые значения уставок, дополнить их высосанными из другого места и никак не связанными с реальной реакцией объекта значениями обратной связи, и на основании получившегося фентези делать какие-то выводы о работе реального устройства - такое пока он не научился. Но я надеюсь, что научится раньше, чем помрёт.
|
|
|
|
13.12.2017, 08:36
|
|
Вид на жительство
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от AR_Favorit
|
а откуда твоя программка возьмет информацию, в какой момент какая текущая температура была, и, как следствие, какая была ошибка?
|
Дурашка ты глупенькая! У тебя же есть входной параметр пида, с названием temp!!! Вот я туда и буду подавать текущую температуру своим оператором
temp = temp + 0.4;
зная что максимальная скорость нагрева бачка равна 0.1 градус в секунду. Для первой прикидки значений пид-коэффициентов этого вполне достаточно!
|
|
|
|
13.12.2017, 08:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от ALEGYR
|
Так я же уже говорил, что мне не надо проверять твой код на моем фене! Меня мой вполне устраивает!
|
А тебе никто не говорит пользоваться своим вместо моего. Тебе, дурню, в который раз говорят, что твой фен - это отличный полигон для проверки работы алгоритма без сборки реальногоо устройства, чисто с калькулятором.
Сообщение от ALEGYR
|
И что касается твоего кода я никогда не писал что он не рабочий! Я писал что он КОРЯВЫЙ и с костылями!
|
Ты писал, что он нерабочий, так как со старта задирает температуру в небеса. Ты писал, что он только пропорциональный. Ты писал кучу всякого бреда, у меня склероза нет, жучка, я всё помню. Глваное - что каждый раз, когда ты пытался что-то написать - ты руководствовался какими-то левыми значениями, и вдохновлялся собственной несаособностью понять, что делает та или иная строка кода.
Сообщение от ALEGYR
|
Вот сейчас ты подправил свои костыли, и я его проверил своей программкой
|
Ничего я не подправил, дятел ты тупой, ты гоняешь мой первоначально выложенный код, дубина. Тебе врать-то не стыдно, клоун?
Сообщение от ALEGYR
|
Вполне приличный результат получился! (см красный квадратик в прикрепленной картинке)
|
Щито?!
Не, ну что-то там у тебя посчиталось удачно, но скажи на милось, что это за объект такой грел нагреватель? Почему у этого объекта температура растет строго линейно? Это же твой фен, только с нагревателем вчетверо слабее, чем был, а не мой бачок с маслом. В бачке с маслом такой картины и близко не будет.
Поздравляю, балбес, ты ожидаемо посчитал неизвестно что, что-то левое, с высосанными из хера дохлого бомжа значениями обратной связи. И совершенно неважно, сумело ли оно пристойно выйти на рабочую точку и удерживать ее, или понеслось вразнос - это никак не говорит ни о работоспособности алгоритма, ни о годности уставок, ни о чем! Ты применил выдуманное значение обратной связи, и твоя программа написала целую таблицу выдуманных (ну то есть рассчитанных на основе выдуманного числа) значений.
И, кстати, не знаю, что ты там приличного увидел, я вот отчетливо вижу перерегулирование из-за излишнего накопления в интегральной составляющей, и последующий ужасный, длительный провал температуры ниже уставки, организованный пропорциональной составляющей, пытающейся исправить положение. Там не на уставку вышло, а пролетело ее, и колебание началось.
Ты ничего не проанализировал и ни в чем не убедился. Ты показал, что до сих пор не понимаешь, почему я тебе, старому валенку, сто раз уже повторил про математическую модель объекта, нагрев которого ты собираешься посчитать.
Сообщение от ALEGYR
|
И что интересно, даже без наличия самого бачка с маслом, и его сложной математической модели, вполне приличный результат сигнала control подучился!
|
А что бы и не получиться, ты ж виртуально грел не бачок с маслом, график кнагрева которого а некий _идеальный_ линейный нагреватель с мгновенной реакцией, без инерции, без собственной теплоемкости
Сообщение от ALEGYR
|
Такой сигнал можно и без костылька
if (control›heat_counter) HEAT_ON; else HEAT_OFF;
разу на генератор шима подавать!
|
В котелке твоем тупом костыльки, придурок. Процитированная тобой строка и есть программный генератор ШИМа. Таймер на такую херь только дебил вроде тебя заводить будет. Ну или вроде музыканта 32-битного, у него это из принципа.
А у меня вся реализация генерации ШИМ сигнала меньше места заняла, чем настройка таймера для того, чтоб ШИМ (с той же частотой) аппаратно генерить. Я просто понимаю, что пишу и зачем. Это очень важное мое отличие от таких, как ты.
Так что вынь костылек из свое тупой башки и забей его себе на всякий случай в джеппу. Ты неспособен понять самые основы столь примитивного алгоритма, это еще раз подтвердилось. О чем с тобой говорить?
|
|
|
|
13.12.2017, 09:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
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.
|
|
|
|
13.12.2017, 09:16
|
|
Вид на жительство
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от AR_Favorit
|
Ты писал, что он нерабочий, так как со старта задирает температуру в небеса. Ты писал, что он только пропорциональный.
|
Со старта, из-зе твоего костыля
if (control›heat_counter) HEAT_ON; else HEAT_OFF;
ТВОЙ код вообще 4 (!) секунды думает, пока выдаст первое значение сигнала control!!!
А что касается пропорционального пида, то он таким и был 40 страниц темы, пока ты вдруг не "вспомнил", что бачок у тебя греется очень медленно, и регулируешь ты его нагрев не 1 раз в секунду, а 1 раз в ЧЕТЫРЕ секунды!!!
Так что милый, ты уж следи за тем что писал сначала, а что стал писать в конце, чтобы обсохнуть от дилетантства!
|
|
|
|
13.12.2017, 09:23
|
|
Вид на жительство
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от AR_Favorit
|
Ничего я не подправил, дятел ты тупой, ты гоняешь мой первоначально выложенный код, дубина. Тебе врать-то не стыдно, клоун?
|
Ну конечно ты ничего не подправил! Ты просто превратил EE_PID_TIME из 1 в 4, и вспомнил, что твой бачок греется не от 5-10 минут, а только 10!!!
Тебе врать-то не стыдно, игорек?
|
|
|
|
13.12.2017, 09:31
|
|
Вид на жительство
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от AR_Favorit
|
Не, ну что-то там у тебя посчиталось удачно, но скажи на милось, что это за объект такой грел нагреватель? Почему у этого объекта температура растет строго линейно?
|
А у меня много чего удачного! У меня и фен с МОИМИ коэффициентами работает удачно, и моя программка симулятора пида весьма удачно оценивает твой код! Даже тебе понравилось!!!
А что касается строгой линейности, то для анализа коэффициентов я могу это допустить, понимая что точные их значения будут определятся требуемой кривизной реального объекта! Быстрее ведь объект греться не будет, а с медленными значениями и пиду работать легче!
|
|
|
|
13.12.2017, 09:49
|
|
Вид на жительство
Регистрация: 10.06.2005
Сообщений: 325
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
|
Re: Мои ответы на вопросы [b]AR_Favorit[/b]
Сообщение от AR_Favorit
|
И, кстати, не знаю, что ты там приличного увидел, я вот отчетливо вижу перерегулирование из-за излишнего накопления в интегральной составляющей, и последующий ужасный, длительный провал температуры ниже уставки, организованный пропорциональной составляющей, пытающейся исправить положение. Там не на уставку вышло, а пролетело ее, и колебание началось.
|
Я увидел что при твоих данных выход на уставку произошел на 538 секунде, а сигнал управления пида плавно изменил свое значение от 3190 до 41, накопив интегральную составляющую до 3734.
Что касается пролета через уставку, то все минусы говорят только о том, что сигнал temp у нас растет линейно все 10 минут анализа.
Так что этими минусами можно пренебречь, так как оцениваются ЗНАЧЕНИЯ коэффициентов пида а не сам пид!
Последний раз редактировалось ALEGYR; 13.12.2017 в 09:52.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:37.
|
|