Страница 5 из 14 ПерваяПервая ... 34567 ... ПоследняяПоследняя
Показано с 41 по 50 из 136

Тема: Специальные ,функционально законченные макросы

  1. #41

    По умолчанию

    Цитата Сообщение от stesel Посмотреть сообщение
    Смотрите внимательно, накапливается бесконечно долго. Формула I(t) = I(t-1) + Ki * e (t) предусматривает предыдущий результат собственного вычисления. Проверить просто: ставите Kp = 0, Kd=0, Ki>0 соответственно играете значениями уставки и датчика получает результат K(p) будет постоянно увеличиваться или уменьшаться если есть ошибка и остановится на каком-либо значении, если ошибка будет равна нулю (уставка и датчик будут одинаковы). То есть I составляющая как положено будет стремиться свести к нулю рассогласование (ошибку) регулирования.
    У вас ошибка рассогласования накопливается бесконечно долго, и уходит только при перерегулировании.
    На реальном обьекте с таким подходом можно получить незатухающие колебания.
    У меня она уходит по времени - "скользящее окно"
    Опробуйте на эмуляторе печи и сравните.
    PS: Алексей Геннадьевич подскажите пожалуйста: как Вы сделали входные переменные (константы) для макроса, те что в параметрах макроса отображаются как kD_mul, SP_mul, kI_mul?
    Эти константы сделаны для того, чтобы данные с панели оператора заводить. Не захотелось флоаты гонять.
    Переменные подобрал экспериментально.
    Для того, чтобы отображались в свойствах, выберите "использовать в макросе" в свойствах константы.
    Цитата Сообщение от аскар Посмотреть сообщение
    Вот бы к вашим ПИД еще и автонастройку
    ПИД написал только потому, что ничего подходящего не было. Если "пригорать" будет, то придётся и автонастройку писать.
    Надеюсь, ОВЕН свой ПИД допилит, и не придётся этим заниматься
    кстати связь с ПК при работе Вашего ПИД тоже пропадает
    Какое ПР? ПР200? Прошивку ПР 200 обновляли?
    Свой ПИД писал под ПР114. Работает на реальном обьекте.
    Пропорциональная составляющая обязательно должна быть больше нуля. I,D - могут иметь нулевое значение.
    Возможно, перезагрузка связана с ошибкой деления на ноль.
    На ПР114 в таком случае просто нет сигнала на выходе.
    Последний раз редактировалось Алексей Геннадьевич; 29.02.2016 в 13:33.

  2. #42
    Пользователь
    Регистрация
    18.07.2013
    Адрес
    уфа
    Сообщений
    260

    По умолчанию

    пр200 ОЛ117
    температуру держит хорошо, но не вокруг уставки , а ниже. то есть не добирает полградуса.
    Последний раз редактировалось аскар; 29.02.2016 в 13:53.

  3. #43

    По умолчанию

    Цитата Сообщение от аскар Посмотреть сообщение
    пр200 ОЛ117
    температуру держит хорошо, но не вокруг уставки , а ниже. то есть не добирает полградуса.
    Интегральную составляющую вводили в работу? - она именно для этого и нужна. Небольшой недобор компенсировать.

  4. #44
    Пользователь
    Регистрация
    25.02.2016
    Адрес
    Кострома
    Сообщений
    276

    По умолчанию

    Цитата Сообщение от Алексей Геннадьевич Посмотреть сообщение
    У вас ошибка рассогласования накопливается бесконечно долго, и уходит только при перерегулировании.
    На реальном обьекте с таким подходом можно получить незатухающие колебания.
    У меня она уходит по времени - "скользящее окно"
    Опробуйте на эмуляторе печи и сравните.
    Так и должно быть, она и должна копиться бесконечно долго, можно ограничение интегральной составляющей сделать меньше, но именно так и должно работать. Может с реализацией что-то не корректно, я как раз пытаюсь это дело проверить в железе и отладить, но формула однозначно рабочая.

    Цитата Сообщение от Алексей Геннадьевич Посмотреть сообщение

    Эти константы сделаны для того, чтобы данные с панели оператора заводить. Не захотелось флоаты гонять.
    Переменные подобрал экспериментально.
    Для того, чтобы отображались в свойствах, выберите "использовать в макросе" в свойствах константы.
    Да, именно так и пытаюсь сделать, но у меня после этого не дает выбрать или изменить название переменной. Может быть некорректно работает OL? Или есть ещё где покопаться?

    Цитата Сообщение от Алексей Геннадьевич Посмотреть сообщение

    ПИД написал только потому, что ничего подходящего не было. Если "пригорать" будет, то придётся и автонастройку писать.
    Надеюсь, ОВЕН свой ПИД допилит, и не придётся этим заниматься
    Я тоже начал писать ПИД, так как родной овеновский ПИД не хочет быть внутри макроса, а мне нужно 6 регуляторов в проекте. Про автонастройку тоже думал, но реализация этого дела очень сильно откушает ресурсов, да и очень уж скудный пока набор FBD. Очень бы нужен блок записи в переменную по условию, да и само условие тоже.

  5. #45

    По умолчанию

    Цитата Сообщение от stesel Посмотреть сообщение
    Так и должно быть, она и должна копиться бесконечно долго, можно ограничение интегральной составляющей сделать меньше, но именно так и должно работать. Может с реализацией что-то не корректно, я как раз пытаюсь это дело проверить в железе и отладить, но формула однозначно рабочая.
    Тоже так думал. В одной из промежуточных версий так и сделал, получил незатухающие автоколебания системы, которые не убираются от слова никак.
    Я наступил на эти грабли, вам зачем на них отплясывать?
    Только метод скользящего окна, в идеале его глубина должна быть равна периоду автоколебания системы.
    Сейчас идея пришла как это дело реализовать не убив на это кучу ресурсов ПР.
    Да, именно так и пытаюсь сделать, но у меня после этого не дает выбрать или изменить название переменной. Может быть некорректно работает OL? Или есть ещё где покопаться?
    Проще снести старые константы, и сделать новые. и с расположением в свойствах макроса так порядок навести проще.

    Я тоже начал писать ПИД, так как родной овеновский ПИД не хочет быть внутри макроса, а мне нужно 6 регуляторов в проекте. Про автонастройку тоже думал, но реализация этого дела очень сильно откушает ресурсов, да и очень уж скудный пока набор FBD. Очень бы нужен блок записи в переменную по условию, да и само условие тоже.
    Интересно, у ПР200 есть 4 аналоговых входа, откуда данные на ещё 2 берёте? с модуля расширения?

  6. #46
    Пользователь
    Регистрация
    18.07.2013
    Адрес
    уфа
    Сообщений
    260

    По умолчанию

    я беру с мв110 8а

  7. #47
    Пользователь
    Регистрация
    25.02.2016
    Адрес
    Кострома
    Сообщений
    276

    По умолчанию

    1. Алгоритм однозначно рабочий и обкатан, но на другом оборудовании и при другой реализации, но сама формула и алгоритм рабочий. Не знаю как Вы умудряетесь получить незатухающие колебания, только если коэф-ты подобраны неправильно.
    2. Нашел как ввести константы и переменные, сделал + уменьшил кол-во входов макроса. Теперь вопрос: как вывести переменные из макроса, нужно для отладки, буду на их дисплей выводить?
    3. Да у ПР200 4 аналоговых входа, при чем мне нужны только 3. Вкратце суть: Получаю температуру в помещении и уставку с удаленной панели управления со встроенным термодатчиком по 485-му интерфейсу. Подаю на ПИД, на выходе которого получаю значение требуемой температуры теплоносителя, а это уставка для второго ПИД, на который поступает температура теплоносителя после КЗР и который рулит этим КЗР. Получаем каскадное включение ПИД. И таких каскадов 3 штуки по 2 ПИД в каждом.

  8. #48
    Пользователь
    Регистрация
    25.02.2016
    Адрес
    Кострома
    Сообщений
    276

    По умолчанию

    Вот нашел реализованный мной в макросе ПИД-регулятор на просторах интернета:
    http://we.easyelectronics.ru/Theory/...praktikov.html

  9. #49
    Пользователь
    Регистрация
    25.02.2016
    Адрес
    Кострома
    Сообщений
    276

    По умолчанию

    Цитата Сообщение от stesel Посмотреть сообщение
    ............. Теперь вопрос: как вывести переменные из макроса, нужно для отладки, буду на их дисплей выводить?
    Блин, засада. Похоже нельзя в созданный макрос писать и читать из него переменные. Не работают с макросами блоки Write to FB и Read from FB.
    Буду возвращать входы в макросе и приделывать временные выходы для отладки.

  10. #50

    По умолчанию

    Цитата Сообщение от stesel Посмотреть сообщение
    1. Алгоритм однозначно рабочий и обкатан, но на другом оборудовании и при другой реализации, но сама формула и алгоритм рабочий.
    Формула классическая, от этого никуда не уйдёшь.
    Ключевое в вашем сообщении подчеркнул.
    Не знаю как Вы умудряетесь получить незатухающие колебания, только если коэф-ты подобраны неправильно.
    пид.png
    При вашей реализации t над интегралом равно всему времени работы установки, и ошибка рассогласования уходит только при превышении уставки. При работе с реальным обьектом, который обладает инерцией, будем иметь запаздывание уменьшения выходной мощности. В лучшем случае получим классический перелёт при запуске с последующим уменьшением размаха и стабилизацией автоколебаний на каком-нибудь значении.
    В моей реализации время меньше периода автоколебания системы (1,5-3сек), но и этого хватает для поддержания температуры +-0,1градуса.

Страница 5 из 14 ПерваяПервая ... 34567 ... ПоследняяПоследняя

Похожие темы

  1. Универсальные макросы для OWEN Logic
    от rovki в разделе Среда программирования OWEN Logic
    Ответов: 827
    Последнее сообщение: 22.12.2023, 13:20
  2. Специальные символы
    от CEkip в разделе ПЛК63/73
    Ответов: 8
    Последнее сообщение: 02.11.2018, 08:50

Ваши права

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