1

Тема: 7.2 MGX Управление пропорциональным клапаном

День добрый.

Кто-нибудь делал уже управление пропорциональным клапаном с обратной связью по положению (ПИД на ШИМ выход)
Что-то не выходит у меня...

Как включать выключать ПИД? Лучше включить а потом просто по команде (дискретному входу) уставку на 0 процентов открытия ставить или просто записывать 0 в регистр включения АПИД1?

Кто как подбирал частоту и сильно ли необходима частота дизеринга?

Уставку я могу на лету менять? Мне нужно чтобы CANNY сам вычислял уставку (для плавного открытия и закрытия клапана).

Регистр применение настроек АПИД всегда должен быть =1 или только для изменения Кп Кд Ки?

Сделал всё вроде по образцу с сайта, но что-то не так.. завтра буду на работе - скину диаграмму.

2

Re: 7.2 MGX Управление пропорциональным клапаном

Кто-нибудь делал уже управление пропорциональным клапаном с обратной связью по положению (ПИД на ШИМ выход)

Управление пропорциональным электромагнитным крапаном с обратной связью по току - одно из самых распространенных типовых применений контроллеров MGX/MDX. Полагаю, что замена источника обратной связи не потребует внесения принципиальных изменений в алгоритм.

Как включать выключать ПИД? Лучше включить а потом просто по команде (дискретному входу) уставку на 0 процентов открытия ставить или просто записывать 0 в регистр включения АПИД1?

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

Кто как подбирал частоту и сильно ли необходима частота дизеринга?

Рекомендуемая частота ШИМ при управлении пропорциональным клапаном для контроллера CANNY 7.2 MGX >=1кГц
Назначение и настройка дизеринга хорошо показаны здесь: https://www.youtube.com/watch?v=aq35FD01bZ0

Уставку я могу на лету менять? Мне нужно чтобы CANNY сам вычислял уставку (для плавного открытия и закрытия клапана).

Регистр применение настроек АПИД всегда должен быть =1 или только для изменения Кп Кд Ки?

Можете, как и любой другой параметр ПИД. Однако, для того чтобы драйвер учел изменения, необходимо записать "1" в Регистр обновления конфигурации ПИД. При этом "1" рекомендуется записать только в момент внесения изменений, а всё остальное время держать в нем "0". Тем не менее, держать "1" постоянно не запрещено, хотя это слегка сказывается на производительности контроллера.

Сделал всё вроде по образцу с сайта, но что-то не так.. завтра буду на работе - скину диаграмму.

См.: https://forum.canny.ru/viewtopic.php?pid=9810#p9810

3 (27-04-2025 11:59:38 отредактировано stud.kapally3)

Re: 7.2 MGX Управление пропорциональным клапаном

Спасибо за ответ!

Первоначально всё получилось. Регулятор работает. Параметры более менее подобрать удалось (на столе и без масла).

Возникли дополнительные вопросы:

Это зависит от того, какое поведение выхода ПИД (u(t)) вы ожидаете при его отключении - моментальное отключение или сведение к нулю в соответствии с заданными вами параметрами регулирования

Для начала вот клапан:
Bosch (Rexroth) 0 811 404 020

Есть клапан с одной катушкой с обратной связью и есть клапан с двумя катушками с обратной связью (прямое и обратное вращение гидромотора)

Алгоритм, который я хочу реализовать:

Базовая уставка передаётся по RS485.
При получении команды на дискретный вход происходит плавное открытие до базовой уставки. Для этого будет реализовано на Canny вычисление Уставки ПИД регулятора от времени. Рост уставки ПИД регулятора до базовой уставки с шагом времени (вычислять буду через время цикла) на определённый шаг уставки (например 5% открытия каждые 10мс).
При получении на дискретный вход сигнала о начале торможения Canny должен понижать уставку от базовой до нуля с таким же шагом по времени.

Отсюда вопрос: Мне нужно держать "1" на регистре изменения настроек во время вычисления уставки для плавного разгона и торможения?

Работа гидромоторов предполагается цикличная и поочерёдная. Необходимо будет выполнить около 200 циклов старт-стоп в минуту, поэтому есть необходимость как можно быстрее закрывать клапан. В таком случае думаю, что можно плавно замедлять до некоторого уровня, а потом отключать ПИД и присваивать 0% заполнения ШИМ (насколько это будет быстрее чем просто присвоение уставки 0 в ПИД регулятор мне не понятно).

Следующий вопрос: Быстрее ли закроется клапан (прямой ход) если я буду воздействовать на катушку обратного хода с некоторым заполнением ШИМ (или по ПИД-регулятору)? Вроде как логично, что шток в этот момент будет тянуть в обратную сторону, но как оно будет на практике пока не понятно.

Еще ситуация:
При подборе коэффициентов регулятора я заметил такую штуку:
Если по какой-то причине регулятор не может достигнуть уставки (например: уставка - 100% открытия клапана, а регулятор выдал только 99%), а потом дать ему команду с уставкой 0%, то время закрытия увеличивается поскольку у нас достаточно большая накопленная интегральная составляющая.

Вопрос: Можно ли каким-либо образом обнулить накопленную интегральную составляющую?
Будет работать если я в момент получения команды на торможение на один цикл запишу "0" В регистр установки MAX интергал АПИД?

4

Re: 7.2 MGX Управление пропорциональным клапаном

Отсюда вопрос: Мне нужно держать "1" на регистре изменения настроек во время вычисления уставки для плавного разгона и торможения?

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

Следующий вопрос: Быстрее ли закроется клапан (прямой ход) если я буду воздействовать на катушку обратного хода с некоторым заполнением ШИМ (или по ПИД-регулятору)?

Боюсь, мне не совсем понятен вопрос.

Вопрос: Можно ли каким-либо образом обнулить накопленную интегральную составляющую?

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

Вложений в сообщении

Иконка вложения c72mgx_pid_reset.cfd 4.88 кб, скачивался 64 раз, последний раз 2025-04-27 

5 (27-04-2025 20:14:30 отредактировано stud.kapally3)

Re: 7.2 MGX Управление пропорциональным клапаном

в приложенной диаграмме (см.вложение)

Спасибо за помощь!

По поводу клапана:
Попробую объяснить понятнее.

Есть клапан с двумя управляющими катушками на один шток. Если его сдвинуть в одну сторону, то гидромотор вращается вперёд, а если в другую сторону, то гидромотор вращается назад. У этого клапана одна обратная связь. Я могу реализовать обратную связь (и настроить уставки ПИД-регуляторов) таким образом, чтобы катушка обратного хода помогала закрыть клапан.

Допустим у меня обратная связь 0%-200% где 100% - это закрытые клапана и покой гидромотора. 0% - это полный обратный ход, а 200% это полный Прямой ход.
При переводе из одного положения в другое (допустим нужно закрыть) у меня на обоих ПИД-регуляторах образуется ошибка регулирования и другая катушка как бы помогает закрывать клапан.

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

Приложу кусок диаграммы как я думаю реализовать обратную связь.

Вложений в сообщении

Иконка вложения Вопрос по обратной связи.cfd 6.92 кб, скачивался 56 раз, последний раз 2025-04-27 

6

Re: 7.2 MGX Управление пропорциональным клапаном

Следующий вопрос: Быстрее ли закроется клапан (прямой ход) если я буду воздействовать на катушку обратного хода с некоторым заполнением ШИМ (или по ПИД-регулятору)?

Попробую объяснить понятнее.

Спасибо за пояснения. Однако, данный вопрос вне моей компетенции. Более того, я полагаю что даже при наличии принципиальной технической возможности проведения подобного сравнительного тестирования, без задания конкретных условий его проведения, на ваш вопрос сложно ответить в принципе. Как сложно рассчитывать и на наличие у кого-либо готовых результатов подобного сравнения, которые можно было бы рассматривать как удовлетворяющие вашим условиям и подходящие для ответа на ваш вопрос.

7

Re: 7.2 MGX Управление пропорциональным клапаном

Спасибо. По результатам эксперимента отпишусь. Может кому пригодится.

8 (29-04-2025 19:34:42 отредактировано stud.kapally3)

Re: 7.2 MGX Управление пропорциональным клапаном

Вопрос уже по ПИД

Если у меня сигнал обратной связи уменьшается с открытием клапана, то что мне лучше сделать, чтобы управлять им?

Допустим 100% открытия клапана (30% заполнения ШИМ) - это 700 по АЦП обратной связи, а
0% открытия - это 1800 на входе обратной связи.

Я пробовал вычитать уставку и обратную связь из одного и того же положительного большого числа  - вроде получилось.
Пробовал менять местами уставку и обратную связь - тоже вроде получилось.
Где-то видел, что люди делают коэффициенты отрицательными - вроде получилось.

Вопрос: как правильнее?

9

Re: 7.2 MGX Управление пропорциональным клапаном

Вопрос: как правильнее?

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

10

Re: 7.2 MGX Управление пропорциональным клапаном

Есть ещё одна проблема.
Для правильного управления мне необходимо плавное открывание и закрывание клапана.

Написал вот такую диаграммку, и в симуляторе отлично работает, но на оборудовании бывает такое: при торможении клапан резко закрывается до уставки 110, хотя при значении "точки времени" при которой уставка меньше 120 вычитание времени цикла прекращается и он не может в принципе закрыться до уставки 110. 

Может кто-то делал функцию плавного увеличения/уменьшения сигнала по времени (время хочется регулировать)?

11

Re: 7.2 MGX Управление пропорциональным клапаном

stud.kapally3 пишет:

Написал вот такую диаграммку

Диаграмма не приложилась

12

Re: 7.2 MGX Управление пропорциональным клапаном

Константин, CANNY пишет:

Диаграмма не приложилась

Извините. Вот теперь приложилась.

Идея сделать полноценную функцию разгона и торможения с установкой начальной уставки, времени разгона (0-100%), времени торможения и конечной уставки, после которого можно безопасно отпустить клапан. (Ну и такая функция в частотниках во всех есть - хочется сделать себе на будущее)

На диаграмме я суммирую время до тех пор, пока разгоняюсь и вычитаю время из этого значения, когда торможу, затем масштабирую значение времени в значение уставки регулятора. Если вычисленное значение меньше заданной уставки и нет сигнала на торможение, то считаем, что разгоняемся. Как только вычисленное значение чуть превысило заданное, то суммирование времени останавливаем. При торможении то же самое, но наоборот.

Вложений в сообщении

Иконка вложения Кусок с разгоном и торможением.cfd 19.51 кб, скачивался 58 раз, последний раз 2025-05-19 

13

Re: 7.2 MGX Управление пропорциональным клапаном

stud.kapally3 пишет:

Извините. Вот теперь приложилась.

Что именно не работает в приложенном вами фрагменте диаграммы?

14

Re: 7.2 MGX Управление пропорциональным клапаном

Константин, CANNY пишет:

Что именно не работает в приложенном вами фрагменте диаграммы?

Скорее всего, что-то зашкаливает и поэтому неправильно масштабируется.. Принял решение переделать эту функцию с нуля.

Хотя, как мне кажется метод описанный ранее делал разгон более плавным, чем то, что я сделал сейчас.

Теперь я отсчитываю 10мс и изменяю уставку на шаг приращения каждые 10мс. Шаг приращения высчитывается от времени разгона и торможения.. Функция не совершенна. При неправильных заданиях плохо работает. Диаграмму прилагаю.


Откатал в симуляторе. Всё работает. на машине скачки скорости при торможении.. один раз я торможу за 200 импульсов энкодера, а другой раз за 100.. и 100 импульсов еду на минимальной скорости.. это сильно влияет на производительность.. Понятно, что это не к вам, но даже понимание того, что функция разгона/торможения у меня работает - уже хорошо.

Еще вопрос. У меня почему-то никак не влияет коэф. Кд на работу ПИД.

Коэффициенты Кп Ки Кд 450 18 0 и 450 18 150 ведут себя одинаково..

Не до конца понимаю как работает "Шаг t" и как работает Imax.

Пример: У меня u(t)max = 450 значит если у меня уставка 90, и положение 90 при u(t) равном 300, то пропорциональная составляющая регулятора равна 0, а интегральная равна 300, но если я попробую поставить  Imax равное 300, то у меня u(t) не будет равно 300 а будет сильно меньше. Никак в голове калькуляция не сходится..

Вложений в сообщении

Иконка вложения Команда RAMP.cfd 15.1 кб, скачивался 42 раз, последний раз 2025-05-23 

15

Re: 7.2 MGX Управление пропорциональным клапаном

Еще вопрос. У меня почему-то никак не влияет коэф. Кд на работу ПИД.
Коэффициенты Кп Ки Кд 450 18 0 и 450 18 150 ведут себя одинаково..

Что видно на графиках переходной характеристики вашей системы при этих коэффициентах?


Не до конца понимаю как работает "Шаг t"

см: https://canny.ru/docs/c72mgx/apid/

Это время дискретизации регулятора:

"Регистр установки шага источника времени асинхронного ПИД-регулятора X, мс - 0…65535 = задать временной интервал, определяющий периодичность определения отклонения уставки от текущего значения контролируемого параметра и корректировки управляющего воздействия соответствующего ПИД-регулятора."

и как работает Imax.

Это ограничение интеграла сигнала рассогласования ∫, хотя в полном наименовании регистра указано что это ограничение интегральной составляющей. Поправим.

16

Re: 7.2 MGX Управление пропорциональным клапаном

Константин, CANNY пишет:

Что видно на графиках переходной характеристики вашей системы при этих коэффициентах?

Где бы взять эти графики. У нас же нет встроенных отладочных средств?
Писать, логгировать потом строить по точкам график?

Я только написал достижение уставки, время и количество пересечений, для оценки характеристики. Может есть у кого что-то уже написанное для определения характеристики и построения графика?..

17

Re: 7.2 MGX Управление пропорциональным клапаном

Константин, CANNY пишет:

Это ограничение интеграла сигнала рассогласования ∫

То есть это время интегрирования или количество шагов интегрирования с шагом дискретизации? Что я тут задаю?

По идее это должно быть именно ограничение интегральной составляющей, для того, чтобы не уходило это значение в космос если мы не достигаем уставки какое-то длительное время.

Конечно хорошо, что оно есть и хорошо, что оно работает, но всё же понимать как оно работает было бы очень хорошо. smile

18

Re: 7.2 MGX Управление пропорциональным клапаном

Где бы взять эти графики.

См. п.8 здесь: https://canny.ru/docs/tips_tricks/solut … ents_tips/

Писать, логгировать потом строить по точкам график?

И это тоже неплохой вариант. См. п.5 там же. Наиболее удобным и производительным способом записи логов контроллера на ПК онлайн может оказаться использование драйвера VCP : https://canny.ru/docs/c72mgx/uart/#sec- … me-usb-vcp

Что я тут задаю?

Максимальное значение интеграла ∫

По идее это должно быть именно ограничение интегральной составляющей

Она и ограничивается: интегральная составляющая = ∫ * Ки

19

Re: 7.2 MGX Управление пропорциональным клапаном

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


Константин, CANNY пишет:

Она и ограничивается: интегральная составляющая = ∫ * Ки

Даже так не понятно. У меня сейчас такие параметры:
u(t)max=450
Задание от 0 до 100 (обратная связь так же)
Кп=180
Ки=17
Кд=1
Шаг t = 2
Чтобы у меня при задании 90 регулятор начал достигать уставки мне нужно поставить Imax=2000, иначе просто регулятор держит 87-88.

Теперь считаем. Допустим П = 0, а И должна быть = 250, чтобы достичь 90% открытия клапана. 
Если И = ∫ * Ки, значит ∫ = И / Ки
∫ = 250/18 = 13. Так почему же мне приходится ставить 2000? Судя по расчетам мне достаточно I max поставить 15, а дальше изменение I max не будет иметь значение, однако даже если я с 2000 до 3000 изменю I max то у меня сильно меняется характер регулирования.

20

Re: 7.2 MGX Управление пропорциональным клапаном

stud.kapally3 пишет:

...значит ∫ = И / Ки
∫ = 250/18 = 13. Так почему же мне приходится ставить 2000?

Возможно потому, что Кp, Кi и Кd задаются в сотых долях, что указано как в документации, так и в названии соответствующих регистров: https://canny.ru/docs/c72mgx/apid/#sec- … y-drajvera

Таким образом ∫ = 250/0.18 = 1388

21 (03-06-2025 12:08:21 отредактировано stud.kapally3)

Re: 7.2 MGX Управление пропорциональным клапаном

А вот графики процесса с осциллографа с разными значениями Кд
В одном случае Кд = 0, а в другом Кд = 100

Параметры:
Задание 80
Итог регулирования 80. (Шим 202/1000)
Кп=180
Ки=10
Кд=0 или 100
u(t) max = 450
I max = 3000
Шаг t = 2

Вложений в сообщении

dso_01_01_00_23_52.png, 21.28 кб, 800 x 480
dso_01_01_00_23_52.png 21.28 кб, скачивался 39 раз, последний раз 2025-06-03 

dso_01_01_00_24_33.png, 21.26 кб, 800 x 480
dso_01_01_00_24_33.png 21.26 кб, скачивался 35 раз, последний раз 2025-06-03 

22

Re: 7.2 MGX Управление пропорциональным клапаном

stud.kapally3 пишет:

А вот графики процесса с осциллографа с разными значениями Кд

Имеет смысл указывать какой именно файл изображения относится к каким настройкам.
Я не специалист в подборе коэффициентов ПИД, однако, с учетом того, что при записи в соответствующий регистр  значений 0 и 100 вы устанавливаете коэффициент Кд = 0.00 и =1.00 соответственно, и принимая во внимание влияние коэффициентов на график переходной характеристики системы ( см.выше: https://forum.canny.ru/viewtopic.php?pid=12193#p12193 ), возможно вам стоит попробовать продолжить увеличивать Кд