подскажите алгоритм выхода на уставку с определенным ростом
имеем
текущую температуру
уставку
и рост не более 20 градусов в час
Вид для печати
подскажите алгоритм выхода на уставку с определенным ростом
имеем
текущую температуру
уставку
и рост не более 20 градусов в час
Здесь посмотрите, что-то подобное пытались сделать:
https://www.owen.ru/forum/showthread...=12691&page=45
пишите не стесняйтесь
в указанной теме я что-то не разобрался
Вот, немного "подрихтовал":
Вложение 42354
Вроде получше стало! Попробуйте, если что не так скажите!
Какой-то недоделанный, ещё вход разрешения не активировал, а он уже конечное значение на выход выдаёт, по-моему наихудший выбор! Короче здесь очень много может быть всяких тонкостей ну и одним навряд ли удастся всем обойтись! Есть и очевидные плюсы, смотрел другие, Вы не поверите просто слёзы наворачивались, вот хотя бы последний критиковал, макрос бегущей строки, до этого помню мультиплексоры смотрел, тоже самое, поэтому, чтобы не расстраиваться лишний раз стараюсь не смотреть! А этот хотя бы прилично выполнен, без явных ошибок!
И у меня с паузой, можно временно прекратить изменение параметра и обратный отсчёт времени есть и если что, всегда подправлю! Как я понимаю, Вы считаете что при достижении конечного значения, это значение должно писаться в начальное значение параметра уставки, я правильно Вас понял?
По моему начальное значение параметра, это текущее значение, показание датчика параметра и оно при достижении конечного значения уставки макроса будет примерно ему равняться, если например уставка задаётся для ПИД-регулятора.
Вы наверно, как-то так хотели?
Вложение 42375
Здесь чисто ограничение скорости изменения!
Преведущий вариант, там совсем другое, типа программного задатчика: начальное значение - это текущее значение параметра, задаём конечное значение и время достижения конечного значения и нажимаем "Пуск", процесс пошёл, можно сделать паузу, т. е. приостановить на время изменение значения параметра, по достижению конечного значения, вводим другое конечное значение и время его достижения и нажимаем "Пуск" и т. д., короче, там совсем другое чем здесь!
Хм, вот одного не пойму, есть вполне конкретное пожелание выйти на уставу с определённой скоростью, в чем смысл тогда таких макросов где надо пользователю рассчитать время за которое параметр достигнет уставки? Не автоматизация это вовсе. По моему разумению такой макрос должен иметь входы запуска, текущего значения параметра, уставки и скорости, зная скорость известно и приращение за единицу времени и используя функцию поиска минимума приращая мы не выйдем выше чем уставка
По задаче нет ясности, кто и чем будет выходить на уставку, проблема не задать, а с необходимой точностью поддержать этот выход, если "крутизна" выхода будет больше, чем сможет обеспечить нагреватель, вы на него не выйдите, а если наоборот задать слишком долгий выход, то нужны малые воздействия. Или речь не об этом, а нужен просто линейный задатчик, так уравнение прямой Вам в помощь.
Здесь, я бы поспорил, мне кажется, мой макрос на 100% соответствует пожеланию ТС, даже более 100%, в том плане, что текущее значение параметра не нужно для ограничения скорости изменения параметра(уставки), ну если что он не так хотел, пусть уточнит! Мой макрос можно поставить между задатчиком и ПИД-регулятором для ограничения(можно включить-отключить входом разрешения работы) скорости изменения уставки! А Ваш односторонний, например текущее значение давления 10 бар, мне нужно понизить до "0"(уставка) и он мгновенно мне выдаёт уставку, даже не нажимая пуск:
Вложение 42378
Ранее делал "плавное изменение" высчитывая среднее арифметическое значение скользящим окном в стеке!
У меня ничего не надо высчитывать(Вы наверно не посмотрели), задаётся скорость изменения(единиц измерения/час), нижний(4) вход! Переменная "Скорость" в проекте!
Вложение 42380
Я делал аналог пошагового задатчика, у которого были на каждом шаге 2 уставки, время и заданная температура, все остальное рассчитывается автоматом, макрос PLA из базы, дальше ПИД регулятор.
Там(в 6 посте) совсем другой макрос, я об этом в 9 посте написал и новый макрос выложил!
"Преведущий вариант, там совсем другое, типа программного задатчика: начальное значение - это текущее значение параметра, задаём конечное значение и время достижения конечного значения и нажимаем "Пуск", процесс пошёл, можно сделать паузу, т. е. приостановить на время изменение значения параметра. По достижению конечного значения, вводим другое конечное значение и время его достижения и нажимаем "Пуск" и т. д., короче, там совсем другое чем здесь!"
Короче, виноват, что недельку не подождал, потом новый макрос выложить, а то некоторые не успевают следить!
Вот, ещё изменил, добавил выход достижения уставки(Выход = Входу):
Вложение 42385
ох и весело тут у вас
да не просил я готовый вариант
задача такая есть "начальная" температура ниже чем "требуемая"
есть "требуемая" максимум
есть "Рост" кол-во градусов в час, нагрев за час не более этого роста, желательно плавное распределение
если установка не вывезет подъем на такую температуру за нужный срок не наша проблемма
предполагал
"уставка" = начальной
рост делим на отрезки времени (не важно пусть для начала по 5 минут)
каждый отрезок времени прибавляем к "уставке" предыдуший результат
если "уставка" больше "требуемой" то она равна "требуемой"
Вложение 42409
Однако, каждый волен сам решать свою стратегию развития макросов, но мне кажется лучше сразу создать более универсальный макрос, чем создавать отдельный макрос для каждого, конкретного случая(у вас какой-то односторонний получился)! А чем мой не подходит, выставляете максимальную скорость изменения и всё! И у меня в макросе присутствуют отдельные переменные "Увеличение" и ""Уменьшение", т. е. при желании или необходимости можно сделать(особых проблем не вижу) только на уменьшение или только на увеличение на выходе!
И если надо какие-то непонятные начальные значения, можно примерно как-то так:
Вложение 42414
Вложение 42561