Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

ПИД-регулятор

PLC, прочие контроллеры, промышленные компьютеры, операторские панели

Автор темы
dabchinskiy
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 11 июн 2014, 16:24
Ф.И.О.: Дабчинский И

ПИД-регулятор

Сообщение dabchinskiy » 11 июн 2014, 16:38

Для обучения и правктического освоения ПИД порекомендуйте готовый работающий текст программы простого ПИД-регулятора.
Готовая библиотечная функция "черный ящик" не нужна, язык какой придется: C, basic, pascal, LD ...

Регулирование хочу попробовать дискретное, например включение-выключение электронагревателя для поддержания температуры и пропорциональное. Это не одно и то же ?


alex_ugrumov
почётный участник форума
почётный участник форума
Сообщения: 556
Зарегистрирован: 29 сен 2008, 16:05
Ф.И.О.: Алексей Угрюмов
Благодарил (а): 5 раз
Поблагодарили: 15 раз

Re: ПИД-регулятор

Сообщение alex_ugrumov » 11 июн 2014, 19:45

http://robot-develop.org/archives/2833 там есть архив с кодом
Alex.


alex_ugrumov
почётный участник форума
почётный участник форума
Сообщения: 556
Зарегистрирован: 29 сен 2008, 16:05
Ф.И.О.: Алексей Угрюмов
Благодарил (а): 5 раз
Поблагодарили: 15 раз

Re: ПИД-регулятор

Сообщение alex_ugrumov » 12 июн 2014, 13:15

возможно тут будет понятнее

http://we.easyelectronics.ru/Theory/pid ... tikov.html
Alex.


VaBo
осмотрелся
осмотрелся
Сообщения: 190
Зарегистрирован: 21 июл 2013, 18:32
Ф.И.О.: Вадим
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Re: ПИД-регулятор

Сообщение VaBo » 12 июн 2014, 13:43

alex_ugrumov писал(а):возможно тут будет понятнее

http://we.easyelectronics.ru/Theory/pid ... tikov.html


Блин, там автор оперирует отрицательными коэффициентами Td и считает, что 0,1 для Ti - это "начнем по-немногу".


Автор темы
dabchinskiy
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 11 июн 2014, 16:24
Ф.И.О.: Дабчинский И

Re: ПИД-регулятор

Сообщение dabchinskiy » 12 июн 2014, 20:05

alex_ugrumov писал(а):http://robot-develop.org/archives/2833 там есть архив с кодом


слабоват я в C++ на котором написан пример http://robot-develop.org/archives/2833
кто может просветите пожалуйста:

Вопросы.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.


Автор темы
dabchinskiy
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 11 июн 2014, 16:24
Ф.И.О.: Дабчинский И

Re: ПИД-регулятор

Сообщение dabchinskiy » 12 июн 2014, 20:07

VaBo писал(а):

там автор оперирует отрицательными коэффициентами Td и считает, что 0,1 для Ti - это "начнем по-немногу".

а как нужно ?


Автор темы
dabchinskiy
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 11 июн 2014, 16:24
Ф.И.О.: Дабчинский И

Re: ПИД-регулятор

Сообщение dabchinskiy » 13 июн 2014, 09:43

Не могу разобраться в алгоритме программы - откуда берутся в программе (не будучи ранее присвоенными) например значения 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;
}


Автор темы
dabchinskiy
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 11 июн 2014, 16:24
Ф.И.О.: Дабчинский И

Re: ПИД-регулятор

Сообщение dabchinskiy » 15 июн 2014, 10:09

Спасибо помогавшим с ПИД-регулятором разобрался . Посоветуйте алгоритмы автоматических методов настройки коэффициентов ПИД.
те "оценочной функции" (cost function) согласно этой схеме



zpid_1.gif




источник http://model.exponenta.ru/z_tf_pid.html

упрощенные методы:
http://vent2b.ru/ventilyaciya/prostaya- ... atora.html
У вас нет необходимых прав для просмотра вложений в этом сообщении.


acronis2000
новенький
новенький
Сообщения: 2
Зарегистрирован: 06 июн 2014, 17:31
Ф.И.О.: Иванов Петр Сергеевич

Re: ПИД-регулятор

Сообщение acronis2000 » 12 июл 2014, 17:24

Добрый день.

В продолжение этой темы , как реализовать плавный набор температуры c PID регулированием ( например за 3 часа плавно ! поднять температуру с 30 градусов до 70 градусов ) какой алгоритм применить? как расчитать - какая температура в какой момент времени должна быть ?


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 2555
Зарегистрирован: 07 окт 2011, 08:12
Ф.И.О.: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 41 раз
Поблагодарили: 70 раз

Re: ПИД-регулятор

Сообщение Ryzhij » 12 июл 2014, 18:55

acronis2000 писал(а):В продолжение этой темы , как реализовать плавный набор температуры c PID регулированием ( например за 3 часа плавно ! поднять температуру с 30 градусов до 70 градусов ) какой алгоритм применить?
У стандартного функционального блока ПИД-регулятора непременно есть входы для задания SP и для обратной связи от регулируемого процесса PV.
Смысл в том, чтобы изменять SP во времени по нужному Вам закону (по заданному профилю). А у регулятора "дело биндюжье": дали задание - отрабатывай (нагрузили - вези).
acronis2000 писал(а):как расчитать - какая температура в какой момент времени должна быть ?
Здрас-сьте! Кто ж кроме Вас нужный Вам профиль температуры во времени знает?!
Линейный он у Вас там, параболический, ступенчатый или какой-то ещё?
Если с изменением температуры и/или времени у Вас и динамические параметры объекта регулирования будут сильно меняться, то для обеспечения качественного регулирования может потребоваться и изменение ПИД-коэффициентов. Это будет уже адаптивное регулирование.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2214
Зарегистрирован: 10 ноя 2009, 04:58
Ф.И.О.: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 22 раза
Контактная информация:

Re: ПИД-регулятор

Сообщение Михайло » 12 июл 2014, 21:46

acronis2000 писал(а):за 3 часа плавно ! поднять температуру с 30 градусов до 70 градусов ) какой алгоритм применить?

Этот алгоритм по-разному называется ramp-generator или как-то так. Можно поискать готовый блок в среде разработке. Смысл: на входе у рамп-генератора - ступенчатый, резко изменяющийся сигнал, на выходе - сглаженный сигнал в соответствии с заданными темпами разгона-торможения. В Вашем случае на вход рамп-генератора нужно изначально подать 30 градусов, затем 70 градусов; задать темп разгона, соответствующий 3 часам нарастания от 30 до 70.
По-русски ramp generator обзывался задатчиком интенсивности и строился по следующей модели:

Изображение

НЭ - элемент "ограничение", saturation. Величина ограничения должна быть равна максимальным значениям температуры со знаками плюс и минус (+Tmax, -Tmax), линейный участок минимальный, функция может практически стремиться к функции Хэвисайда sign(x).
1/Tи*p - интегратор, где Ти определяет темп разгона и торможения (при такой реализации рамп-генератора они одинаковые по величине).


Василий Иванович
авторитет
авторитет
Сообщения: 872
Зарегистрирован: 21 авг 2009, 13:25
Ф.И.О.: Василий Иванович
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: ПИД-регулятор

Сообщение Василий Иванович » 17 июл 2014, 08:41

Уже была тема.
viewtopic.php?f=24&t=4240


Вернуться в «Средний уровень автоматизации»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость