- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
ПИД-регулятор
-
- здесь недавно
- Сообщения: 5
- Зарегистрирован: 11 июн 2014, 17:24
- Имя: Дабчинский И
ПИД-регулятор
Для обучения и правктического освоения ПИД порекомендуйте готовый работающий текст программы простого ПИД-регулятора.
Готовая библиотечная функция "черный ящик" не нужна, язык какой придется: C, basic, pascal, LD ...
Регулирование хочу попробовать дискретное, например включение-выключение электронагревателя для поддержания температуры и пропорциональное. Это не одно и то же ?
Готовая библиотечная функция "черный ящик" не нужна, язык какой придется: C, basic, pascal, LD ...
Регулирование хочу попробовать дискретное, например включение-выключение электронагревателя для поддержания температуры и пропорциональное. Это не одно и то же ?
-
- почётный участник форума
- Сообщения: 626
- Зарегистрирован: 29 сен 2008, 17:05
- Имя: Алексей Угрюмов
- Страна: Россия
- город/регион: СПб
- Благодарил (а): 8 раз
- Поблагодарили: 23 раза
-
- почётный участник форума
- Сообщения: 626
- Зарегистрирован: 29 сен 2008, 17:05
- Имя: Алексей Угрюмов
- Страна: Россия
- город/регион: СПб
- Благодарил (а): 8 раз
- Поблагодарили: 23 раза
-
- частый гость
- Сообщения: 441
- Зарегистрирован: 21 июл 2013, 19:32
- Имя: Вадим
- город/регион: Северодвинск
- Благодарил (а): 15 раз
- Поблагодарили: 39 раз
Re: ПИД-регулятор
Блин, там автор оперирует отрицательными коэффициентами Td и считает, что 0,1 для Ti - это "начнем по-немногу".alex_ugrumov писал(а):возможно тут будет понятнее
http://we.easyelectronics.ru/Theory/pid ... tikov.html
-
- здесь недавно
- Сообщения: 5
- Зарегистрирован: 11 июн 2014, 17:24
- Имя: Дабчинский И
Re: ПИД-регулятор
слабоват я в C++ на котором написан пример http://robot-develop.org/archives/2833alex_ugrumov писал(а):http://robot-develop.org/archives/2833 там есть архив с кодом
кто может просветите пожалуйста:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 5
- Зарегистрирован: 11 июн 2014, 17:24
- Имя: Дабчинский И
Re: ПИД-регулятор
а как нужно ?VaBo писал(а):там автор оперирует отрицательными коэффициентами Td и считает, что 0,1 для Ti - это "начнем по-немногу".alex_ugrumov писал(а): http://we.easyelectronics.ru/Theory/pid ... tikov.html
-
- здесь недавно
- Сообщения: 5
- Зарегистрирован: 11 июн 2014, 17:24
- Имя: Дабчинский И
Re: ПИД-регулятор
Не могу разобраться в алгоритме программы - откуда берутся в программе (не будучи ранее присвоенными) например значения m_integral и m_period ?
Код: Выделить всё
#include "v_pid.h"
VPid::VPid(qreal proportional, qreal integral, qreal differential,
qreal period, qreal minSaturation, qreal maxSaturation)
: m_proportional(proportional),
m_integral(integral),
m_differential(differential),
m_period(period),
m_minSaturation(minSaturation),
m_maxSaturation(maxSaturation)
{
m_lastResult = m_lastInput = 0;
}
qreal VPid::getValue(qreal input)
{
qreal sum = m_lastResult + m_integral * m_period * input;
qreal diff = m_differential / m_period * (input - m_lastInput);
qreal result = m_proportional * input + sum + diff;
result = qMax(m_minSaturation, result);
result = qMin(m_maxSaturation, result);
m_lastResult = sum;
m_lastInput = input;
return result;
}
-
- здесь недавно
- Сообщения: 5
- Зарегистрирован: 11 июн 2014, 17:24
- Имя: Дабчинский И
Re: ПИД-регулятор
Спасибо помогавшим с ПИД-регулятором разобрался . Посоветуйте алгоритмы автоматических методов настройки коэффициентов ПИД.
те "оценочной функции" (cost function) согласно этой схеме
источник http://model.exponenta.ru/z_tf_pid.html
упрощенные методы:
http://vent2b.ru/ventilyaciya/prostaya- ... atora.html
те "оценочной функции" (cost function) согласно этой схеме
источник http://model.exponenta.ru/z_tf_pid.html
упрощенные методы:
http://vent2b.ru/ventilyaciya/prostaya- ... atora.html
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 06 июн 2014, 18:31
- Имя: Иванов Петр Сергеевич
Re: ПИД-регулятор
Добрый день.
В продолжение этой темы , как реализовать плавный набор температуры c PID регулированием ( например за 3 часа плавно ! поднять температуру с 30 градусов до 70 градусов ) какой алгоритм применить? как расчитать - какая температура в какой момент времени должна быть ?
В продолжение этой темы , как реализовать плавный набор температуры c PID регулированием ( например за 3 часа плавно ! поднять температуру с 30 градусов до 70 градусов ) какой алгоритм применить? как расчитать - какая температура в какой момент времени должна быть ?
-
- почётный участник форума
- Сообщения: 5637
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 601 раз
- Поблагодарили: 758 раз
Re: ПИД-регулятор
У стандартного функционального блока ПИД-регулятора непременно есть входы для задания SP и для обратной связи от регулируемого процесса PV.acronis2000 писал(а):В продолжение этой темы , как реализовать плавный набор температуры c PID регулированием ( например за 3 часа плавно ! поднять температуру с 30 градусов до 70 градусов ) какой алгоритм применить?
Смысл в том, чтобы изменять SP во времени по нужному Вам закону (по заданному профилю). А у регулятора "дело биндюжье": дали задание - отрабатывай (нагрузили - вези).
Здрас-сьте! Кто ж кроме Вас нужный Вам профиль температуры во времени знает?!acronis2000 писал(а):как расчитать - какая температура в какой момент времени должна быть ?
Линейный он у Вас там, параболический, ступенчатый или какой-то ещё?
Если с изменением температуры и/или времени у Вас и динамические параметры объекта регулирования будут сильно меняться, то для обеспечения качественного регулирования может потребоваться и изменение ПИД-коэффициентов. Это будет уже адаптивное регулирование.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- почётный участник форума
- Сообщения: 3576
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 6 раз
- Поблагодарили: 271 раз
Re: ПИД-регулятор
Этот алгоритм по-разному называется ramp-generator или как-то так. Можно поискать готовый блок в среде разработке. Смысл: на входе у рамп-генератора - ступенчатый, резко изменяющийся сигнал, на выходе - сглаженный сигнал в соответствии с заданными темпами разгона-торможения. В Вашем случае на вход рамп-генератора нужно изначально подать 30 градусов, затем 70 градусов; задать темп разгона, соответствующий 3 часам нарастания от 30 до 70.acronis2000 писал(а):за 3 часа плавно ! поднять температуру с 30 градусов до 70 градусов ) какой алгоритм применить?
По-русски ramp generator обзывался задатчиком интенсивности и строился по следующей модели:
НЭ - элемент "ограничение", saturation. Величина ограничения должна быть равна максимальным значениям температуры со знаками плюс и минус (+Tmax, -Tmax), линейный участок минимальный, функция может практически стремиться к функции Хэвисайда sign(x).
1/Tи*p - интегратор, где Ти определяет темп разгона и торможения (при такой реализации рамп-генератора они одинаковые по величине).
-
- авторитет
- Сообщения: 878
- Зарегистрирован: 21 авг 2009, 14:25
- Имя: Василий Иванович
- Благодарил (а): 1 раз
- Поблагодарили: 3 раза