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

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

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

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

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

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

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

 
Опции темы

Мои ответы на вопросы AR_Favorit

Непрочитано 19.11.2017, 22:42  
ALEGYR
Вид на жительство
 
Регистрация: 10.06.2005
Сообщений: 324
Сказал спасибо: 43
Сказали Спасибо 360 раз(а) в 194 сообщении(ях)
ALEGYR на пути к лучшему
По умолчанию Мои ответы на вопросы AR_Favorit

Чтобы не засорять тему Сколько видов работ вы выполняете без оплаты ? (https://kazus.run/forums/showthread.php?t=115912) вопросами AR_Favorit обращенными ко мне, я решил создать отдельную тему, и ответить на его вопросы.

Надеюсь эта тема будет познавательной для форумчан, и поможет им понять некоторые вещи, связанные с написанием кода для реализации ПИД-регулятора. А примером послужит код программы, предложенный 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;
где

pid_counter = 0 - ПЕРВЫЙ СЧЕТЧИК ЦИКЛОВ ПРОХОДОВ ПРОГРАММЫ
heat_counter = 0 - ВТОРОЙ СЧЕТЧИК ЦИКЛОВ ПРОХОДОВ ПРОГРАММЫ

EE_PID_TIME = 100 мc - ДЛИТЕЛЬНОСТЬ ЦИКЛА ОПРОСА РЕГУЛИРУЕМОЙ ВЕЛИЧИНЫ (ТЕМПЕРАТУРЫ БАКА)

EE_PID_P
= 1.0 - КОЭФФИЦИЕНТ УСИЛЕНИЯ ДЛЯ ПРОПОРЦИОНАЛЬНОЙ СОСТАВЛЯЮЩЕЙ ПИД-РЕГУЛЯТОРА
EE_PID_I = 1.0 - КОЭФФИЦИЕНТ УСИЛЕНИЯ ДЛЯ ИНТЕГРИРУЮЩЕЙ СОСТАВЛЯЮЩЕЙ ПИД-РЕГУЛЯТОРА
EE_PID_D = 1.0 - КОЭФФИЦИЕНТ УСИЛЕНИЯ ДЛЯ ДИФФЕРЕНЦИИРУЮЩЕЙ СОСТАВЛЯЮЩЕЙ ПИД-РЕГУЛЯТОРА

PID_curr_err = 0 - ТЕКУЩАЯ ОШИБКА РАССОГЛАСОВАНИЯ (ГРАДУСЫ)
PID_prev_err = 0 - ПРЕДЫДУЩАЯ ОШИБКА РАССОГЛАСОВАНИЯ (ГРАДУСЫ)
integral_err = 0 - СУММА ОШИБОК РАССОГЛАСОВАНИЯ (ГРАДУСЫ)

control = 0 - УРОВЕНЬ СИГНАЛА УПРАВЛЕНИЯ

EE_FUEL_TARGET_TEMP = 100 - КОНЕЧНАЯ ТЕМПЕРАТУРА НАГРЕВА(ГРАДУСЫ)
temp = 20 - ТЕКУЩАЯ ТЕМПЕРАТУРА НАГРЕВА(ГРАДУСЫ)

HEAT_ON = ВКЛ - СОСТОЯНИЕ "НАГРЕВАНИЕ" ДЛЯ РЕГУЛИРУЮЩЕГО ЭЛЕМЕНТА
HEAT_OFF = ВЫКЛ - СОСТОЯНИЕ "ОХЛАЖДЕНИЕ" ДЛЯ РЕГУЛИРУЮЩЕГО ЭЛЕМЕНТА

Примечание

Для полноты освещения вопросов, связанных c созданием кода реализации ПИД-регулятора, и работы самого ПИД-регулятора, приветствуются любые замечания и предложения от форумчан, специализирующихся в рассматриваемых вопросах!

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

Сообщение от AR_Favorit Посмотреть сообщение
Цитата:
if (integral_err‹(EE_PID_TIME*2000)) integral_err += PID_curr_err;
а почему ты не спрашиваешь, что такое "2000" в этом выражении, а? Что это такое и в каких единицах оно выражено?
Я не спрашиваю, потому что знаю, что это просто масштабный коэффициент, переводящий параметр EE_PID_TIME из миллисекун в секунды. Точно также как и в строках
Цитата:
if (pid_counter‹(EE_PID_TIME*1000)) pid_counter++;
и
Цитата:
if (heat_counter›(EE_PID_TIME*1000)) heat_counter=0;
Сообщение от AR_Favorit Посмотреть сообщение
Вот тебе еще один вариант для того, чтоб у тебя в голове могло что-то перещелкнуть уже: это же коэффициент. Не тот коэффициент, что весовые для составляющих, а мой собственный, личный коэффициент, как раз специально для тебя "переводящий секунды в градусы", то есть имеющий размерность "гр/сек".
Тогда получается, что если EE_PID_TIME - секунды, то EE_PID_TIME * 2000 гр/сек - это уже градусы. И градусы сравниваются с градусами. Что скажешь?
В моей голове действительно перещёлкнуло, и я понял, что это действительно ТВОЙ коэффициент!!!
Ведь только ты мог ввести в свой код некий коэффициент, который у тебя характеризует скорость нагревания твоего бачка с маслом, да еще со значением 2000(!) градусов в секунду!

Я конечно понимаю, что ты свой код писал для ООООчень больших бачков, но я сильно сомневаюсь что они могут нагреваться до нескольких тысяч градусов, да еще со скоростями сравнимыми с двумя тысячами градусов в секунду! То есть круче и быстрее чем нагреваются сопла реактивных самолетов!!!
Ведь произведение EE_PID_TIME*2000 будет еще круче чем твой коэффициент, и получается, что в строке

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

переменная integral_err сравнивается со значением 200 000 градусов!
ALEGYR вне форума  
Непрочитано 20.11.2017, 01:14  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Хоть я и не специализируюсь на построении ПИД регуляторов, но всё-таки замечу, что все комментарии к фрагменту кода AR_Favorit, написаны форумчанином ALEGYR исключительно исходя из своего личного представления о программировании и своего понимания логики работы ПИД-регулятора.

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

Топикстартеру настоятельно рекомендую почитать хотя бы в википедии про принципы ПИД-регулирования и вспомнить хотя бы школьную алгебру, чтоб не облажаться также, как и в предыдущем топике.
omercury вне форума  
Эти 2 пользователя(ей) сказали Спасибо omercury за это сообщение:
ForcePoint (20.11.2017), laser532 (20.11.2017)
Непрочитано 20.11.2017, 02:09  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от omercury Посмотреть сообщение
Топикстартеру настоятельно рекомендую
Поздно!

Видео:


Ну тогда сразу и начнём.
Сообщение от ALEGYR Посмотреть сообщение
pid_counter = 0 - ПЕРВЫЙ СЧЕТЧИК ЦИКЛОВ ПРОХОДОВ ПРОГРАММЫ
heat_counter = 0 - ВТОРОЙ СЧЕТЧИК ЦИКЛОВ ПРОХОДОВ ПРОГРАММЫ
EE_PID_TIME = 100 мc - ДЛИТЕЛЬНОСТЬ ЦИКЛА ОПРОСА РЕГУЛИРУЕМОЙ ВЕЛИЧИНЫ (ТЕМПЕРАТУРЫ БАКА)
EE_PID_P = 1.0 - КОЭФФИЦИЕНТ УСИЛЕНИЯ ДЛЯ ПРОПОРЦИОНАЛЬНОЙ СОСТАВЛЯЮЩЕЙ ПИД-РЕГУЛЯТОРА
EE_PID_I = 1.0 - КОЭФФИЦИЕНТ УСИЛЕНИЯ ДЛЯ ИНТЕГРИРУЮЩЕЙ СОСТАВЛЯЮЩЕЙ ПИД-РЕГУЛЯТОРА
EE_PID_D = 1.0 - КОЭФФИЦИЕНТ УСИЛЕНИЯ ДЛЯ ДИФФЕРЕНЦИИРУЮЩЕЙ СОСТАВЛЯЮЩЕЙ ПИД-РЕГУЛЯТОРА
PID_curr_err = 0 - ТЕКУЩАЯ ОШИБКА РАССОГЛАСОВАНИЯ (ГРАДУСЫ)
PID_prev_err = 0 - ПРЕДЫДУЩАЯ ОШИБКА РАССОГЛАСОВАНИЯ (ГРАДУСЫ)
integral_err = 0 - СУММА ОШИБОК РАССОГЛАСОВАНИЯ (ГРАДУСЫ)
control = 0 - УРОВЕНЬ СИГНАЛА УПРАВЛЕНИЯ
EE_FUEL_TARGET_TEMP = 100 - КОНЕЧНАЯ ТЕМПЕРАТУРА НАГРЕВА(ГРАДУСЫ)
temp = 20 - ТЕКУЩАЯ ТЕМПЕРАТУРА НАГРЕВА(ГРАДУСЫ)
HEAT_ON = ВКЛ - СОСТОЯНИЕ "НАГРЕВАНИЕ" ДЛЯ РЕГУЛИРУЮЩЕГО ЭЛЕМЕНТА
HEAT_OFF = ВЫКЛ - СОСТОЯНИЕ "ОХЛАЖДЕНИЕ" ДЛЯ РЕГУЛИРУЮЩЕГО ЭЛЕМЕНТА
Это ты так думаешь, на самом деле
pid_counter - первый (и единственный) счётчик циклов таймера, служащий для установки периода квантования ПИД.
heat_counter - счётчик длительности периода регулирования исполнительного устройства, в данном случае тактируется тем же таймером (что логично), что и счётчик ПИД, а также опять же в данном случае имеет тот же период, что и ПИД-регулятор, хотя может тактироваться от чего угодно и иметь другой период.
EE_PID_TIME - эмпирическая величина, задающая элементарный отрезок времени для отсчёта периода квантования ПИД, измеряется в циклах тактирующего таймера.

С описанием следующих шести параметров согласен, не согласен с их величиной, ибо задаётся при настройке, и трактовкой единиц измерения.
control - выходной параметр ПИД.
EE_FUEL_TARGET_TEMP - контрольный параметр, поддерживаемый регулятором.
temp - входной параметр ПИД, в данном случае вероятнее всего пропорциональный температуре датчика, текущее значение.
HEAT_ON
HEAT_OFF - макросы включения/выключения (что впрочем непринципиально).

Судя по предыдущей переписке, все параметры с префиксом EE_, задаются при настройке и хранится, судя по названию, во внешней EEPROM либо в эмулируемой EEPROM в силу использования МК STM32. Все рабочие параметры имеют тип int32_t, кроме настроечных коэффициентов, которые имеют размерность int16_t, что видно по явному приведению их к нужной размерности в коде.


Ну что, поехали,
continue следует.

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

Сообщение от omercury Посмотреть сообщение
Ну что, поехали,
Да не проблема.

Для начала уточню, что для рассмотрения алгоритма представленного кода, я могу использовать любые значения переменных. И для простоты я буду использовать простые целые числа

И так первая строка кода

if (pid_counter‹(EE_PID_TIME*1000)) pid_counter++;

В ней производится выдержка времени, по которому производится переход к вычислению выходного параметра ПИД (то есть переменная control).

Поскольку выход на этот код производится по прерыванию таймера контроллера, то первый (и единственный) счётчик циклов таймера pid_counter будет у нас определять время выхода на расчет пида.

Пусть цикл таймера у нас составляет 1 миллисекунду. То есть прерывание по таймеру у нас происходит 1000 раз в секунду
Пусть частота опроса датчика температуры у нас происходит 10 раз в секунду. (Мы же крутые, и хотим максимально эффективно и с максимальной точностью знать состояние объекта регулирования, то есть бачка с маслом)
Тогда мы можем записать, что эмпирическая величина EE_PID_TIME, задающая элементарный отрезок времени для отсчёта периода квантования ПИД равна 100 мc, То есть

EE_PID_TIME = 100 (мc)

Таким образом первая строка кода

if (pid_counter‹(EE_PID_TIME*1000)) pid_counter++;

нам говорит, что пока счетчик pid_counter не отсчитает 100 секунд, мы забываем о расчете пида (то есть сигнал управления control = 0), включаем сигнал HEAT_ON (включаем нагрев) по строке

if (control›heat_counter) HEAT_ON; else HEAT_OFF;

и тупо, в течение 100 (!) секунд, считаем длительность периода нагревания исполнительного устройства, счетчиком heat_counter, по строкам

heat_counter++;
if (heat_counter›(EE_PID_TIME*1000)) heat_counter=0;

Почему именно в течение 100 (!) секунд тупо считаем?! Потому что и первая и последние строки кода имеют одинаковое значение величины сравнения

if (pid_counter‹(EE_PID_TIME*1000)) pid_counter++;
...
if (heat_counter›(EE_PID_TIME*1000)) heat_counter=0;

ВОПРОС - Не круто ли каждые 100 секунд, тупо нагревать бачок, забывая о пиде, который должен 10 раз в секунду знать текущую температуру бачка и рассчитывать control (то есть выходной параметр ПИДа) ?

Последний раз редактировалось ALEGYR; 20.11.2017 в 17:34.
ALEGYR вне форума  
Непрочитано 20.11.2017, 03:57  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от ALEGYR Посмотреть сообщение
Пусть цикл таймера у нас составляет 1 миллисекунду.
Почему например не микросекунду?
Хотя для понимания принципа это неважно.
Сообщение от ALEGYR Посмотреть сообщение
Пусть частота опроса датчика температуры у нас происходит 10 раз в секунду. (Мы же крутые, и хотим максимально эффективно и с максимальной точностью знать состояние объекта регулирования, то есть бачка с маслом)
А чё так скромно?
Мы его можем опрашивать и МИЛЛИОН раз в секунду.
Но пусть будет 10, неважно.
Кстати, это отдельная операция и производится она в другом участке кода, здесь этого нет. Как и усреднения результата.

Сообщение от ALEGYR Посмотреть сообщение
Тогда мы можем записать, что эмпирическая величина EE_PID_TIME, задающая элементарный отрезок времени для отсчёта периода квантования ПИД равна 100 мc, То есть
Можем, но тогда 0,1*1000=100с.
Многовато, не находишь?
Я бы предпочёл 1 мллисекунду. Это ни много ни мало, а 120 000 тактов ядра МК, вполне достаточно для расчётов.)))
upd
Кстати, это наиболее часто используемый период Systick (системного таймера).

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

Сообщение от omercury Посмотреть сообщение
Почему например не микросекунду?
Можно и 1 микросекунду! Только зачем? Мы же бачок с маслом нагреваем, а в нем мало что происходит и за 1 миллисекунду!

Сообщение от omercury Посмотреть сообщение
Я бы предпочёл 1 миллисекунду. Это ни много ни мало, а 120 000 тактов ядра МК, вполне достаточно для расчётов.)))
Вообще-то, EE_PID_TIME определятся исходя из требуемой точности к регулируемой величины.
Я не думаю что бочок надо нагревать с точностью до сотых градусов цельсия. Тем более что скорость нагрева (или остывания) бачка, может превышать 10 градусов в секунду! Уж больно бачок с маслом вещь инерционная!!!
А что касается ресурсов для расчета, то расчетов то всего - 3 раза сравнить, 3 раза сложить, да 3 раза умножить!

Сообщение от omercury Посмотреть сообщение
Можем, но тогда 0,1*1000=100с.
Многовато, не находишь?
Конечно нахожу, но код писал не я! Я бы просто написал

if (pid_counter‹ EE_PID_TIME) pid_counter++;
или
if (heat_counter›EE_PID_TIME) heat_counter=0;

а прерывание таймера сделал бы не 1 миллисекунду, а 10 или даже 100!!! Вдруг у нас датчик температуры не очень ловок, переводя аналог в цифру!

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

Сообщение от ALEGYR Посмотреть сообщение
Надеюсь эта тема будет познавательной для форумчан, и поможет им понять некоторые вещи, связанные с написанием кода для реализации ПИД-регулятора. А примером послужит код программы, предложенный AR_Favorit
Человек, не понимающий принципа работы ПИД-регулятора и не умеющий программировать будет объяснять форумчанам работу PID_алгоритма на основе чужого кода, работу которого он не смог понять и даже не догадался проверить на практике (ардуина справится)? Это снова будет весело

Я пока немного посмотрю, смогут ли "форумчане, специализирующихся в рассматриваемых вопросах" что-то втолковать в этом случае "рассматривающему"

Только, как автор "рассматриваемого" отрывка кода, сразу замечу, чтоб форумчане не были введены в заблуждение нашим "разработчиком", что в данном участке кода все переменные, за исключением тех, имя которых начинается с префикса "ЕЕ_" - имеют размерность int_32, а эти самые "ЕЕ_" - размерность int_16, и все величины в расчетах (включая весовые коэффициенты PID) смасштабированы в бОльшую сторону на один или несколько десятичных порядков, чтобы избежать потерь точности из-за отсутствия "дробных частей".

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

Собственно, omercury определил эти моменты совершенно верно.

Последний раз редактировалось AR_Favorit; 20.11.2017 в 06:26.
AR_Favorit вне форума  
Непрочитано 20.11.2017, 12:02  
stalkernet
Почётный гражданин KAZUS.RUN
 
Регистрация: 02.07.2009
Сообщений: 1,123
Сказал спасибо: 1,246
Сказали Спасибо 2,188 раз(а) в 628 сообщении(ях)
stalkernet на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

AR_Favorit, А причем андурина то??? Пид прекрасно реализуется и на обычном 8 битном и нискоскоростном контроллере. Вставлю и свои 5 копеек на основе своего непосредственного опыта.

Вводная информация. занимался пид регуляторами в течении почти 7 лет. С 95 года. Работал в фирме выпускающей терморегуляторы. Много бывал на пусконаладках. Делали и на пиках и на атмелах. Блин и хватало-же.

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

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

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

Используется 3 переменных П-И-Д и период регулирования. Период регулирования равен времени реакции системы. меньше просто бессмысленно. гоняется в холостую. А дальше от искуства программиста. а как упровлять это уже дело десятое. толи ШИМ, толи число-импульсное управление или частотное - похеру. Есть период регулирования и на его основе уже от значения ПИД считается воздействие. Мне например больше нравилось число-импульсное - в сеть не срет, включается выключается в нуле. да и считать по проще 100 импульсов 1 сек. и 100% воздействие.
а натему флоат и интов. так я вобще нечего не считал брал с ацп напрямую значение и его использовал. но к этому привыкнуть надо. Это просто индивидуальная часть. ктото не может без конкретных цифр. комуто только целые подавай, а ктото без запятой или конкретных градусей не может.

Некоректно будет сказано но ПИД выдает процент воздействия от периода регулирования. тоесть если пер.рег(ПР) 3 сек а пид выдал 10 то это 10% от 3 сек. или если ПР 100 импульсов то это будет 10 импульсов. Все и нечего больше.

PS а вобще на него есть ГОСТ. в котором более мение расписано.

Последний раз редактировалось stalkernet; 20.11.2017 в 12:31.
stalkernet вне форума  
Сказали "Спасибо" stalkernet
ALEGYR (20.11.2017)
Непрочитано 20.11.2017, 12:26  
AR_Favorit
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.03.2010
Сообщений: 2,896
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Мои ответы на вопросы [b]AR_Favorit[/b]

Сообщение от stalkernet Посмотреть сообщение
А причем андурина то???
Это средство, доступное топикстартеру.

Сообщение от stalkernet Посмотреть сообщение
ПИД дубовый
Вот именно. Особенно если речь о регулировке температуры. Тем удивительнее, что ТС никак не может сопоставить процитированный фрагмент с тем, что он для себя скачал из интернета.
AR_Favorit вне форума  
 
Опции темы

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

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, время: 14:11.


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