PDA

Просмотр полной версии : Выход на уставку с определенным ростом



Keldish
17.04.2019, 17:36
подскажите алгоритм выхода на уставку с определенным ростом

имеем
текущую температуру
уставку
и рост не более 20 градусов в час

Сергей0308
17.04.2019, 19:52
подскажите алгоритм выхода на уставку с определенным ростом

имеем
текущую температуру
уставку
и рост не более 20 градусов в час

Здесь посмотрите, что-то подобное пытались сделать:
https://www.owen.ru/forum/showthread.php?t=12691&page=45

Keldish
18.04.2019, 15:23
пишите не стесняйтесь
в указанной теме я что-то не разобрался

Сергей0308
18.04.2019, 15:55
пишите не стесняйтесь
в указанной теме я что-то не разобрался

Открываете мой макрос в проекте "RAMP" для редактирования и разбираться не нужно, все входа-выхода подписаны!

Rask
18.04.2019, 16:09
пишите не стесняйтесь
в указанной теме я что-то не разобрался
Разбаловал форум - я не разобрался, ну ка быстренько объясните мне, что и почему, и не забудьте указать все подводные камни - у меня то времени нет,в отличии от Вас. Что непонятного то? Вот приведенный пример, берите и думайте - не стесняйтесь.

Сергей0308
18.04.2019, 21:57
Вот, немного "подрихтовал":

42354

Вроде получше стало! Попробуйте, если что не так скажите!

Сергей0308
18.04.2019, 23:28
Я правильно понял что недостаточно макроса из онлайн бызы Rise_Fall?
Я бы мог предложить каждую секунду к начальной уставке приращивать заранее вычесленный коэффициент, зная сколько градусов надо поднять за 3600 секунд, а закончить макрос функцией поиска минимума, пока не дошло до конечной уставки будет возвращаться приращивоемое значение, достигнув уставки минимумом станет заданное конечное значение

Какой-то недоделанный, ещё вход разрешения не активировал, а он уже конечное значение на выход выдаёт, по-моему наихудший выбор! Короче здесь очень много может быть всяких тонкостей ну и одним навряд ли удастся всем обойтись! Есть и очевидные плюсы, смотрел другие, Вы не поверите просто слёзы наворачивались, вот хотя бы последний критиковал, макрос бегущей строки, до этого помню мультиплексоры смотрел, тоже самое, поэтому, чтобы не расстраиваться лишний раз стараюсь не смотреть! А этот хотя бы прилично выполнен, без явных ошибок!
И у меня с паузой, можно временно прекратить изменение параметра и обратный отсчёт времени есть и если что, всегда подправлю! Как я понимаю, Вы считаете что при достижении конечного значения, это значение должно писаться в начальное значение параметра уставки, я правильно Вас понял?
По моему начальное значение параметра, это текущее значение, показание датчика параметра и оно при достижении конечного значения уставки макроса будет примерно ему равняться, если например уставка задаётся для ПИД-регулятора.

Василий Кашуба
19.04.2019, 19:38
я бы и состряпал, но в ОЛ не нашел функций ни MAX ни MIN

rovki и AI, делали эти функции, надо искать.

Сергей0308
19.04.2019, 23:19
я бы и состряпал, но в ОЛ не нашел функций ни MAX ни MIN

Вы наверно, как-то так хотели?

42375

Здесь чисто ограничение скорости изменения!

Преведущий вариант, там совсем другое, типа программного задатчика: начальное значение - это текущее значение параметра, задаём конечное значение и время достижения конечного значения и нажимаем "Пуск", процесс пошёл, можно сделать паузу, т. е. приостановить на время изменение значения параметра, по достижению конечного значения, вводим другое конечное значение и время его достижения и нажимаем "Пуск" и т. д., короче, там совсем другое чем здесь!

capzap
20.04.2019, 05:24
Хм, вот одного не пойму, есть вполне конкретное пожелание выйти на уставу с определённой скоростью, в чем смысл тогда таких макросов где надо пользователю рассчитать время за которое параметр достигнет уставки? Не автоматизация это вовсе. По моему разумению такой макрос должен иметь входы запуска, текущего значения параметра, уставки и скорости, зная скорость известно и приращение за единицу времени и используя функцию поиска минимума приращая мы не выйдем выше чем уставка

Ревака Юрий
20.04.2019, 11:12
По задаче нет ясности, кто и чем будет выходить на уставку, проблема не задать, а с необходимой точностью поддержать этот выход, если "крутизна" выхода будет больше, чем сможет обеспечить нагреватель, вы на него не выйдите, а если наоборот задать слишком долгий выход, то нужны малые воздействия. Или речь не об этом, а нужен просто линейный задатчик, так уравнение прямой Вам в помощь.

Сергей0308
20.04.2019, 11:24
подскажите алгоритм выхода на уставку с определенным ростом

имеем
текущую температуру
уставку
и рост не более 20 градусов в час


Хм, вот одного не пойму, есть вполне конкретное пожелание выйти на уставу с определённой скоростью, в чем смысл тогда таких макросов где надо пользователю рассчитать время за которое параметр достигнет уставки? Не автоматизация это вовсе. По моему разумению такой макрос должен иметь входы запуска, текущего значения параметра, уставки и скорости, зная скорость известно и приращение за единицу времени и используя функцию поиска минимума приращая мы не выйдем выше чем уставка

Здесь, я бы поспорил, мне кажется, мой макрос на 100% соответствует пожеланию ТС, даже более 100%, в том плане, что текущее значение параметра не нужно для ограничения скорости изменения параметра(уставки), ну если что он не так хотел, пусть уточнит! Мой макрос можно поставить между задатчиком и ПИД-регулятором для ограничения(можно включить-отключить входом разрешения работы) скорости изменения уставки! А Ваш односторонний, например текущее значение давления 10 бар, мне нужно понизить до "0"(уставка) и он мгновенно мне выдаёт уставку, даже не нажимая пуск:

42378

Ранее делал "плавное изменение" высчитывая среднее арифметическое значение скользящим окном в стеке!

Сергей0308
20.04.2019, 12:45
возможно Вы не поняли, если уж автоматизировать то по полной, а не так что ПР делает часть работы и оператор делает часть работы вычисляя в уме сколько же ему нужо задать времени, чтоб придерживаться 20 градусов в час, хорошо если поднять надо на 80 градусов, считается легко, а если на 37 градусов...

У меня ничего не надо высчитывать(Вы наверно не посмотрели), задаётся скорость изменения(единиц измерения/час), нижний(4) вход! Переменная "Скорость" в проекте!

42380

Ревака Юрий
20.04.2019, 13:32
Я делал аналог пошагового задатчика, у которого были на каждом шаге 2 уставки, время и заданная температура, все остальное рассчитывается автоматом, макрос PLA из базы, дальше ПИД регулятор.

Сергей0308
20.04.2019, 13:52
а в посте №6? Ну нет у меня времени подробно все расписывать

Там(в 6 посте) совсем другой макрос, я об этом в 9 посте написал и новый макрос выложил!

"Преведущий вариант, там совсем другое, типа программного задатчика: начальное значение - это текущее значение параметра, задаём конечное значение и время достижения конечного значения и нажимаем "Пуск", процесс пошёл, можно сделать паузу, т. е. приостановить на время изменение значения параметра. По достижению конечного значения, вводим другое конечное значение и время его достижения и нажимаем "Пуск" и т. д., короче, там совсем другое чем здесь!"

Короче, виноват, что недельку не подождал, потом новый макрос выложить, а то некоторые не успевают следить!

Вот, ещё изменил, добавил выход достижения уставки(Выход = Входу):

42385

Keldish
23.04.2019, 10:09
ох и весело тут у вас

да не просил я готовый вариант

задача такая есть "начальная" температура ниже чем "требуемая"

есть "требуемая" максимум

есть "Рост" кол-во градусов в час, нагрев за час не более этого роста, желательно плавное распределение

если установка не вывезет подъем на такую температуру за нужный срок не наша проблемма

предполагал
"уставка" = начальной
рост делим на отрезки времени (не важно пусть для начала по 5 минут)
каждый отрезок времени прибавляем к "уставке" предыдуший результат
если "уставка" больше "требуемой" то она равна "требуемой"
42409

Сергей0308
23.04.2019, 10:40
ох и весело тут у вас

да не просил я готовый вариант

задача такая есть "начальная" температура ниже чем "требуемая"

есть "требуемая" максимум

есть "Рост" кол-во градусов в час, нагрев за час не более этого роста, желательно плавное распределение

если установка не вывезет подъем на такую температуру за нужный срок не наша проблемма

предполагал
"уставка" = начальной
рост делим на отрезки времени (не важно пусть для начала по 5 минут)
каждый отрезок времени прибавляем к "уставке" предыдуший результат
если "уставка" больше "требуемой" то она равна "требуемой"
42409

Однако, каждый волен сам решать свою стратегию развития макросов, но мне кажется лучше сразу создать более универсальный макрос, чем создавать отдельный макрос для каждого, конкретного случая(у вас какой-то односторонний получился)! А чем мой не подходит, выставляете максимальную скорость изменения и всё! И у меня в макросе присутствуют отдельные переменные "Увеличение" и ""Уменьшение", т. е. при желании или необходимости можно сделать(особых проблем не вижу) только на уменьшение или только на увеличение на выходе!
И если надо какие-то непонятные начальные значения, можно примерно как-то так:

42414

42561