Блоки ускорения
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
- Dryundel
- Полковник
- Сообщения: 2419
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
Блоки ускорения
Серия блоков для работы с ускорением
Описание блоков:
[spoiler title=Acceleration Overtake v.1.15 (догоняющий)]Блок изменяет переменную Out в сторону переменной in с заданной скоростью Accel. Другими словами, переменная Out плавно изменяется с положительным ускорением Accel или отрицательным ускорением (торможением) Accel, всегда стремясь к значению на входе in.
Когда (Out<in) то Out возрастает стремясь к in , со скоростью Accel (step/s) .
Когда (Out>in) то Out убывает стремясь к in, со скоростью Accel (step/s).
Поддерживаются как положительные так и отрицательные значения in и Out.
Отрицательные значения Accel не поддерживаются !!! Если на вход Accel подается отрицательное значение то принимается его модуль.
При старте (начале работы), переменной Out присваивается значение со входа in.
По умолчанию при появлении на входе En логического нуля изменение переменной на выходе Out останавливается, Out "замораживается". При появлениии на входе En логической единицы, изменение Out продолжается. Если требуется что бы при остановке блока, запрете на работу блока (En=0), значение на выходе Out не "замораживалось", а сбрасывалось до значения на входе in, следует изменить параметр Reset, установив True (в парамерах пользователя).
Параметр step задает шаг изменения переменной на выходе Out.
Входы блока:
in - входная переменная
Accel - ускорение step/s за секунду или проще step/s^2
En - Разрешение на изменение переменной Var (работу блока).
Параметры пользователя:
step - шаг изменения переменной Var.
Reset - заморозка / сброс Out в in при en=0
[/spoiler]
[spoiler title=Acceleration Overtake Plus v.2.15 (догоняющий)]
Блок изменяет переменную Out в сторону переменной in с заданной скоростью Accel или Brak. Другими словами, переменная Out плавно изменяется с положительным ускорением Accel или отрицательным ускорением (торможением) Brak, всегда стремясь к значению на входе in.
Когда (Out<in) то Out возрастает стремясь к in , со скоростью Accel (step/s) .
Когда (Out>in) то Out убывает стремясь к in, со скоростью Brak (step/s).
Поддерживаются как положительные так и отрицательные значения in и Out.
Отрицательные значения Accel и Brak не поддерживаются !!! Если на вход Accel или Brak подается отрицательное значение то принимается его модуль.
При старте (начале работы), переменной Out присваивается значение со входа in.
По умолчанию при появлении на входе En логического нуля изменение переменной на выходе Out останавливается, Out "замораживается". При появлениии на входе En логической единицы, изменение Out продолжается. Если требуется что бы при остановке блока, запрете на работу блока (En=0), значение на выходе Out не "замораживалось", а сбрасывалось до значения на входе in, следует изменить параметр Reset, установив True (в парамерах пользователя).
Параметр step задает шаг изменения переменной на выходе Out.
Входы блока:
in - входная переменная
Accel - ускорение step/s за секунду или проще step/s^2
En - Разрешение на изменение переменной Var (работу блока).
Параметры пользователя:
step - шаг изменения переменной Var.
Reset - заморозка / сброс Out в in при en=0
[/spoiler]
[spoiler title=Acceleration Reverse v.3.15 (Реверсивный)]
Блок изменяет переменную Var в заданных пределах MIN и MAX с заданной скоростью Accel, и в сторону зависящую от знака Accel. Если Accel имеет отрицательное значение то переменная Var уменьшается. Если Accel положитнльное то Var Увеличивается. Другими словами, переменная Var плавно изменяется с положительным ускорением Accel или отрицательным ускорением (торможением) Accel. За направление изменения переменной Var отвечает знак Accel.
Когда Accel > 0 то переменная Var всегда стремится к MAX (возрастает), с заданной скоростью Accel (step/s) за секунду.
Когда Accel < 0 то переменная Var всегда стремится к MIN (убывает), с заданной скоростью Accel (step/s) за секунду.
Когда Accel = 0 то изменение переменной Var прекращается. Var "замораживается"
Поддерживаются как положительные так и отрицательные значения пределов MIN и MAX.
В случае если MIN > MAX то возрастание является убыванием. Другими словами направление ускорения инвертируется.
В случае если Var оказалась вне диапазона MIN<->MAX то Var возвращается в этот диапазон со скоростью Accel, стремясь к MIN или MAX в зависимости от знака Accel.
При старте (начале работы), переменной Var присваивается стартовое значение VarStart.
При появлении на входе En логического нуля изменение переменной на выходе Var останавливается, Var "замораживается". При появлениии на входе En логической единицы, изменение Var продолжается.
Параметр step задает шаг изменения переменной на выходе Out.
Входы блока:
MIN - ограничение минимального значения переменной (минимальной скорости)
MAX - ограничение максимального значения переменной (максимальной скорости)
Accel - ускорение step/s за секунду или проще step/s^2 (Может быть как положительным так и отрицательным)
VarStart - стартовое значение переменной Var
En - Разрешение на изменение переменной Var (работу блока). При появлении на входе En логического нуля изменение переменной на выходе Var останавливается, Var "замораживается". При появлениии на входе En логической единицы, изменение Var продолжается.
Параметры пользователя:
step - шаг изменения переменной Var.
[/spoiler]
[spoiler title=Acceleration Range v.4.15 (Диапазонный)]
Блок изменяет переменную Var в заданных пределах MIN и MAX с заданной скоростью Accel, и в сторону зависящую от сигнала на входе Dir. Другими словами, переменная Var плавно изменяется с положительным ускорением Accel или отрицательным ускорением (торможением) Accel. За направление изменения переменной Var отвечает параметр Dir.
Когда Dir = True(1) (включено ускорение) то переменная Var всегда стремится к MAX (возрастает), с заданной скоростью Accel (step/s) за секунду.
Когда Dir = False(0) (включено торможение) то переменная Var всегда стремится к MIN (убывает), с заданной скоростью Accel (step/s) за секунду.
Поддерживаются как положительные так и отрицательные значения пределов MIN и MAX.
В случае если MIN > MAX то возрастание является убыванием. Другими словами направление ускорения инвертируется.
Отрицательные значения Accel не поддерживаются !!! Если на вход Accel подается отрицательное значение то принимается его модуль.
При старте (начале работы), переменной Var присваивается стартовое значение VarStart.
При появлении на входе En логического нуля изменение переменной на выходе Var останавливается, Var "замораживается". При появлениии на входе En логической единицы, изменение Var продолжается.
Параметр step задает шаг изменения переменной на выходе Out.
Входы блока:
MIN - ограничение минимального значения переменной (минимальной скорости)
MAX - ограничение максимального значения переменной (максимальной скорости)
Accel - ускорение step/s за секунду или проще step/s^2
Dir - направление изменения переменной Var. Если Dir=1 то задействуется ускорение и переменная Var увеличивается с ускорением Accel. Если же Dir=0 то задействуется торможение и переменная Var уменьшается с ускорением Accel.
VarStart - стартовое значение переменной Var (работает при включенном параметре MyStart (True) в параметрах пользователя)
En - Разрешение на изменение переменной Var (работу блока). При появлении на входе En логического нуля изменение переменной на выходе Var останавливается, Var "замораживается". При появлениии на входе En логической единицы изменение Var продолжается.
Параметры пользователя:
step - шаг изменения переменной Var.
[/spoiler]
[spoiler title=Acceleration Range Plus v.5.15 (Диапазонный)]
Блок изменяет переменную Var в заданных пределах MIN и MAX с заданной скоростью Accel или Brak, и в сторону зависящую от сигнала на входе Dir. Другими словами, переменная Var плавно изменяется с положительным ускорением Accel или отрицательным ускорением (торможением) Brak. За направление изменения переменной Var отвечает параметр Dir.
Когда Dir = True(1) (включено ускорение) то переменная Var всегда стремится к MAX (возрастает), с заданной скоростью Accel (step/s) за секунду.
Когда Dir = False(0) (включено торможение) то переменная Var всегда стремится к MIN (убывает), с заданной скоростью Accel (step/s) за секунду.
Поддерживаются как положительные так и отрицательные значения пределов MIN и MAX.
В случае если MIN > MAX то возрастание является убыванием. Другими словами направление ускорения инвертируется.
Отрицательные значения Accel не поддерживаются !!! Если на вход Accel подается отрицательное значение то принимается его модуль.
При старте (начале работы), переменной Var присваивается стартовое значение VarStart.
При появлении на входе En логического нуля изменение переменной на выходе Var останавливается, Var "замораживается". При появлениии на входе En логической единицы, изменение Var продолжается.
Параметр step задает шаг изменения переменной на выходе Out.
Входы блока:
MIN - ограничение минимального значения переменной (минимальной скорости)
MAX - ограничение максимального значения переменной (максимальной скорости)
Accel - ускорение step/s за секунду или проще step/s^2
Brak - торможение (отрицательное ускорение) step/s за секунду или проще |step/s^2|
Dir - направление изменения переменной Var. Если Dir=1 то задействуется ускорение и переменная Var увеличивается с ускорением Accel. Если же Dir=0 то задействуется торможение и переменная Var уменьшается с ускорением Brak.
VarStart - стартовое значение переменной Var (работает при включенном параметре MyStart (True) в параметрах пользователя)
En - Разрешение на изменение переменной Var (работу блока). При появлении на входе En логического нуля изменение переменной на выходе Var останавливается, Var "замораживается". При появлениии на входе En логической единицы изменение Var продолжается.
Параметр step задает шаг изменения переменной на выходе Out.
Параметры пользователя:
step - шаг изменения переменной Var.
[/spoiler]
Описание блоков:
[spoiler title=Acceleration Overtake v.1.15 (догоняющий)]Блок изменяет переменную Out в сторону переменной in с заданной скоростью Accel. Другими словами, переменная Out плавно изменяется с положительным ускорением Accel или отрицательным ускорением (торможением) Accel, всегда стремясь к значению на входе in.
Когда (Out<in) то Out возрастает стремясь к in , со скоростью Accel (step/s) .
Когда (Out>in) то Out убывает стремясь к in, со скоростью Accel (step/s).
Поддерживаются как положительные так и отрицательные значения in и Out.
Отрицательные значения Accel не поддерживаются !!! Если на вход Accel подается отрицательное значение то принимается его модуль.
При старте (начале работы), переменной Out присваивается значение со входа in.
По умолчанию при появлении на входе En логического нуля изменение переменной на выходе Out останавливается, Out "замораживается". При появлениии на входе En логической единицы, изменение Out продолжается. Если требуется что бы при остановке блока, запрете на работу блока (En=0), значение на выходе Out не "замораживалось", а сбрасывалось до значения на входе in, следует изменить параметр Reset, установив True (в парамерах пользователя).
Параметр step задает шаг изменения переменной на выходе Out.
Входы блока:
in - входная переменная
Accel - ускорение step/s за секунду или проще step/s^2
En - Разрешение на изменение переменной Var (работу блока).
Параметры пользователя:
step - шаг изменения переменной Var.
Reset - заморозка / сброс Out в in при en=0
[/spoiler]
[spoiler title=Acceleration Overtake Plus v.2.15 (догоняющий)]
Блок изменяет переменную Out в сторону переменной in с заданной скоростью Accel или Brak. Другими словами, переменная Out плавно изменяется с положительным ускорением Accel или отрицательным ускорением (торможением) Brak, всегда стремясь к значению на входе in.
Когда (Out<in) то Out возрастает стремясь к in , со скоростью Accel (step/s) .
Когда (Out>in) то Out убывает стремясь к in, со скоростью Brak (step/s).
Поддерживаются как положительные так и отрицательные значения in и Out.
Отрицательные значения Accel и Brak не поддерживаются !!! Если на вход Accel или Brak подается отрицательное значение то принимается его модуль.
При старте (начале работы), переменной Out присваивается значение со входа in.
По умолчанию при появлении на входе En логического нуля изменение переменной на выходе Out останавливается, Out "замораживается". При появлениии на входе En логической единицы, изменение Out продолжается. Если требуется что бы при остановке блока, запрете на работу блока (En=0), значение на выходе Out не "замораживалось", а сбрасывалось до значения на входе in, следует изменить параметр Reset, установив True (в парамерах пользователя).
Параметр step задает шаг изменения переменной на выходе Out.
Входы блока:
in - входная переменная
Accel - ускорение step/s за секунду или проще step/s^2
En - Разрешение на изменение переменной Var (работу блока).
Параметры пользователя:
step - шаг изменения переменной Var.
Reset - заморозка / сброс Out в in при en=0
[/spoiler]
[spoiler title=Acceleration Reverse v.3.15 (Реверсивный)]
Блок изменяет переменную Var в заданных пределах MIN и MAX с заданной скоростью Accel, и в сторону зависящую от знака Accel. Если Accel имеет отрицательное значение то переменная Var уменьшается. Если Accel положитнльное то Var Увеличивается. Другими словами, переменная Var плавно изменяется с положительным ускорением Accel или отрицательным ускорением (торможением) Accel. За направление изменения переменной Var отвечает знак Accel.
Когда Accel > 0 то переменная Var всегда стремится к MAX (возрастает), с заданной скоростью Accel (step/s) за секунду.
Когда Accel < 0 то переменная Var всегда стремится к MIN (убывает), с заданной скоростью Accel (step/s) за секунду.
Когда Accel = 0 то изменение переменной Var прекращается. Var "замораживается"
Поддерживаются как положительные так и отрицательные значения пределов MIN и MAX.
В случае если MIN > MAX то возрастание является убыванием. Другими словами направление ускорения инвертируется.
В случае если Var оказалась вне диапазона MIN<->MAX то Var возвращается в этот диапазон со скоростью Accel, стремясь к MIN или MAX в зависимости от знака Accel.
При старте (начале работы), переменной Var присваивается стартовое значение VarStart.
При появлении на входе En логического нуля изменение переменной на выходе Var останавливается, Var "замораживается". При появлениии на входе En логической единицы, изменение Var продолжается.
Параметр step задает шаг изменения переменной на выходе Out.
Входы блока:
MIN - ограничение минимального значения переменной (минимальной скорости)
MAX - ограничение максимального значения переменной (максимальной скорости)
Accel - ускорение step/s за секунду или проще step/s^2 (Может быть как положительным так и отрицательным)
VarStart - стартовое значение переменной Var
En - Разрешение на изменение переменной Var (работу блока). При появлении на входе En логического нуля изменение переменной на выходе Var останавливается, Var "замораживается". При появлениии на входе En логической единицы, изменение Var продолжается.
Параметры пользователя:
step - шаг изменения переменной Var.
[/spoiler]
[spoiler title=Acceleration Range v.4.15 (Диапазонный)]
Блок изменяет переменную Var в заданных пределах MIN и MAX с заданной скоростью Accel, и в сторону зависящую от сигнала на входе Dir. Другими словами, переменная Var плавно изменяется с положительным ускорением Accel или отрицательным ускорением (торможением) Accel. За направление изменения переменной Var отвечает параметр Dir.
Когда Dir = True(1) (включено ускорение) то переменная Var всегда стремится к MAX (возрастает), с заданной скоростью Accel (step/s) за секунду.
Когда Dir = False(0) (включено торможение) то переменная Var всегда стремится к MIN (убывает), с заданной скоростью Accel (step/s) за секунду.
Поддерживаются как положительные так и отрицательные значения пределов MIN и MAX.
В случае если MIN > MAX то возрастание является убыванием. Другими словами направление ускорения инвертируется.
Отрицательные значения Accel не поддерживаются !!! Если на вход Accel подается отрицательное значение то принимается его модуль.
При старте (начале работы), переменной Var присваивается стартовое значение VarStart.
При появлении на входе En логического нуля изменение переменной на выходе Var останавливается, Var "замораживается". При появлениии на входе En логической единицы, изменение Var продолжается.
Параметр step задает шаг изменения переменной на выходе Out.
Входы блока:
MIN - ограничение минимального значения переменной (минимальной скорости)
MAX - ограничение максимального значения переменной (максимальной скорости)
Accel - ускорение step/s за секунду или проще step/s^2
Dir - направление изменения переменной Var. Если Dir=1 то задействуется ускорение и переменная Var увеличивается с ускорением Accel. Если же Dir=0 то задействуется торможение и переменная Var уменьшается с ускорением Accel.
VarStart - стартовое значение переменной Var (работает при включенном параметре MyStart (True) в параметрах пользователя)
En - Разрешение на изменение переменной Var (работу блока). При появлении на входе En логического нуля изменение переменной на выходе Var останавливается, Var "замораживается". При появлениии на входе En логической единицы изменение Var продолжается.
Параметры пользователя:
step - шаг изменения переменной Var.
[/spoiler]
[spoiler title=Acceleration Range Plus v.5.15 (Диапазонный)]
Блок изменяет переменную Var в заданных пределах MIN и MAX с заданной скоростью Accel или Brak, и в сторону зависящую от сигнала на входе Dir. Другими словами, переменная Var плавно изменяется с положительным ускорением Accel или отрицательным ускорением (торможением) Brak. За направление изменения переменной Var отвечает параметр Dir.
Когда Dir = True(1) (включено ускорение) то переменная Var всегда стремится к MAX (возрастает), с заданной скоростью Accel (step/s) за секунду.
Когда Dir = False(0) (включено торможение) то переменная Var всегда стремится к MIN (убывает), с заданной скоростью Accel (step/s) за секунду.
Поддерживаются как положительные так и отрицательные значения пределов MIN и MAX.
В случае если MIN > MAX то возрастание является убыванием. Другими словами направление ускорения инвертируется.
Отрицательные значения Accel не поддерживаются !!! Если на вход Accel подается отрицательное значение то принимается его модуль.
При старте (начале работы), переменной Var присваивается стартовое значение VarStart.
При появлении на входе En логического нуля изменение переменной на выходе Var останавливается, Var "замораживается". При появлениии на входе En логической единицы, изменение Var продолжается.
Параметр step задает шаг изменения переменной на выходе Out.
Входы блока:
MIN - ограничение минимального значения переменной (минимальной скорости)
MAX - ограничение максимального значения переменной (максимальной скорости)
Accel - ускорение step/s за секунду или проще step/s^2
Brak - торможение (отрицательное ускорение) step/s за секунду или проще |step/s^2|
Dir - направление изменения переменной Var. Если Dir=1 то задействуется ускорение и переменная Var увеличивается с ускорением Accel. Если же Dir=0 то задействуется торможение и переменная Var уменьшается с ускорением Brak.
VarStart - стартовое значение переменной Var (работает при включенном параметре MyStart (True) в параметрах пользователя)
En - Разрешение на изменение переменной Var (работу блока). При появлении на входе En логического нуля изменение переменной на выходе Var останавливается, Var "замораживается". При появлениии на входе En логической единицы изменение Var продолжается.
Параметр step задает шаг изменения переменной на выходе Out.
Параметры пользователя:
step - шаг изменения переменной Var.
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 04 окт 2020, 21:51, всего редактировалось 4 раза.
- Dryundel
- Полковник
- Сообщения: 2419
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
Блоки ускорения
Acceleration Overtake v.1.15 (догоняющий)
Скачать блок In – входное значение Out – выходное значение
На схеме видно как значение на выходе Out плавно «догоняет» значение на входе in.
En – сигнал на входе разрешения на работу блока. Как видно из графика в момент снятия сигнала En, ускорение прекращается и возрастание переменной на выходе Out замораживается. Изменения на входе in игнорируются. При возобновлении сигнала на входе En, возрастание Out продолжается, блок продолжает работу с уровня «заморозки». Такое поведение установлено по умолчанию.
С помощью изменения параметра Reset с False на True в параметрах пользователя поведение блока при запрете работы изменяется. Блок начинает работать в режиме сброса ускорения и при запрете работы. В момент снятия сигнала En значение на выходе моментально становится равно значению на входе in. Другими словами значение Out моментально догоняет in. При возобновлении сигнала на En, блок также возобновляет работу со значения на выходе.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 10 мар 2019, 08:43, всего редактировалось 2 раза.
- Dryundel
- Полковник
- Сообщения: 2419
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
Блоки ускорения
Acceleration Overtake Plus v.2.15 (догоняющий)
Скачать блок Данный блок аналогичен предыдущему Acceleration Overtake Plus v.1.15 и имеет всего одно отличие, это дополнительный вход Brak – торможение. Brak аналогичен входу ускорения Accel но воздействует на переменную Out только при убывании, в то время как Accel воздействует только на возрастание. Благодаря наличию двух значений ускорения возможно задать разные параметры разгона и торможения.
Отправлено спустя 2 часа 8 минут 14 секунд:
Acceleration Reverse v.3.15 (Реверсивный)
Скачать блок
Этот блок имеет два входных значения MIN и MAX. Переменная Var на выходе изменяется в диапазоне MIN<>MAX. По сути это регулятор оборотов с плавным пуском и стопом и реверсом. Выходное значение Var устанавливается значениями MIN и MAX, а ускорение Accel отвечает за то, как быстро, точней с каким ускорением переменная Var достигнет значения MIN или MAX. Если ускорение Accel положительное значение, то переменная Var стремится к MAX со скоростью Accel. Другими словами, Var плавно изменяется в сторону MAX с ускорением Var. И наоборот, если ускорение Accel отрицательное значение то Var плавно догоняет MIN. Вход VarStatr это стартовое значение переменной Var.
На примере это выглядит так: Предположим MIN и MAX это минимальная и максимальная скорость автомобиля. Значит MIN=0 а MAX=280 (км/ч). Accel педаль газа и тормоза в одном лице, такой вот джойстик. При запуске двигателя скорость автомобиля равна нулю. Значит стартовое значение VarStart устанавливаем «0». Пока Джойстик находится в нейтрале – Accel = 0 и автомобиль стоит, текущая скорость Var = 0. Толкнув джойстик вперед, мы обозначим ускорение Accel = 10 (км/с^2). Текущая скорость Var начнет возрастать с ускорением Accel пока не достигнет максимальной – 280 км/ч. Если на скорости 100 км мы вернем джойстик в нейтраль т.е. установим ускорение Accel = 0, переменная Var = 100 «заморозится» и автомобиль будет двигаться накатом со скоростью 100 км/ч. Для того что бы затормозить необходимо двинуть джойстик в обратную сторону т.е. задать отрицательное ускорение Accel = -20 (км/с^2), в этом случае текущая скорость Var начнет уменьшаться с ускорением -20 (км/с^2) до тех пор пока не достигнет MIN=0 или пока джойстик не вернется в нейтраль.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 10 мар 2019, 11:14, всего редактировалось 4 раза.
-
- Лейтенант
- Сообщения: 450
- Зарегистрирован: 26 фев 2018, 21:27
- Откуда: Haifa
- Имя: Alex
- Благодарил (а): 2 раза
- Поблагодарили: 5 раз
Блоки ускорения
примерно такие блоки изучали в теории автоматического управления ,только в аналоговом исполнении,они служат для для ограничения нарастания выходного сигнала,когда управляющее воздействие возрастает скачком ,что бывает нежелательно для обьекта управления,например приводы прокатных станов или системы управления самолетов и тд.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Блоки ускорения
[ref]Brand2[/ref], В народе - рампа. Или с прибамбасами.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- Dryundel
- Полковник
- Сообщения: 2419
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
Блоки ускорения
Acceleration Range v.4.15 (Диапазонный)
Скачать блок Этот блок очень похож на предыдущий Acceleration Reverse v.3.15 (Реверсивный), с одной лишь разницей за направление ускорения "+" или "-" отвечает не знак значения на входе Accel, а вход Dir. Если Dir=1 то ускорение положительное (разгоняемся), Если Dir=0 ускорение отрицательное (тормозим). При Accel=0 ускорение отсутствует и переменная Var не изменяется (двигаемся накатом на нейтралке). Так же "нейтралку можно включить", сняв сигнал со входа разрешения работы блока En, тогда изменение переменной Var остановится, при этом не важно какое в этот момент значение ускорения Accel. По аналогии с выжимом сцепления, педаль газа нажата, однако ускорения нет, выжато сцепление. Этот вариант блока бывает очень удобен при создании программ управления разгоном электродвигателя.
Отправлено спустя 1 час 40 минут 59 секунд:
Acceleration Range Plus v.5.15 (Диапазонный)
Скачать блок Блок является развитием блока Acceleration Range v.4.15 (Диапазонный) и отличается наличием входа Brak (торможение). Благодаря чему можно задать два различных параметра ускорения. Accel - разгон (положительное ускорение) и Brak торможение (отрицательное ускорение)
Отправлено спустя 17 минут 43 секунды:
Возникает резонный вопрос: А что будет если переменная Var (в блоках 3.15 4.15, 5.15) окажется вне диапазона MIN-MAX. Ну например при старте когда заданы MIN = 500 , MAX = 1000 , а VarStart = 0. Соответственно при старте Var = VarStart = 0.
В этом случае Var всегда будет стремиться вернуться в рабочий диапазон с заданным в этот момент ускорением. Отправлено спустя 35 минут 28 секунд:
Благодаря стремлению переменной Var вернуться в диапазон MIN-MAX можно организовать пуск двигателя и его работу на двух предустановленных скоростях с плавным переходом разгоном и переходом межу скоростями всего двумя тумблерами.
Для этого достаточно предустановить (вбить константы) первую скорость MIN , вторую скорость MAX , разгон и торможение Accel и Brak и стартовое значение скорости VarStart=0.
Теперь для пуска двигателя включаем тумблер En и двигатель разгоняется до одной из двух скоростей в зависимости от положения тумблера Dir. Если Dir=0 то Var стремится к MIN и разгон продолжается до первой скорости, если же переключить Dir=1 то разоняемся до второй скорости MAX.
Если же двигатель набрал по нашему усмотрению достаточные обороты мы можем зафиксировать ее отключив тумблер во время разгона или торможения. В этом случае переменная Var "заморозится" и двигатель будет работать на зафиксированных в этот момент оборотах.
Конечно же все примеры условные и не включают такие параметры как инерция и скорость реакции исполнительных механизмов.
Отправлено спустя 27 минут 43 секунды:
Представленные блоки ускорения могут с успехом дополнить работу ПИД регуляторов. Некоторые механизмы, например обладающие большой инерцией, нельзя запускать подавая максимальную мощность что делает ПИД регулятор в момент пуска. Так же их нельзя резко останавливать если скажем используется червячный редуктор, это приведет к поломке механизма.
Вот тут то и поможет блок плавного запуска.
Скачать блок Этот блок очень похож на предыдущий Acceleration Reverse v.3.15 (Реверсивный), с одной лишь разницей за направление ускорения "+" или "-" отвечает не знак значения на входе Accel, а вход Dir. Если Dir=1 то ускорение положительное (разгоняемся), Если Dir=0 ускорение отрицательное (тормозим). При Accel=0 ускорение отсутствует и переменная Var не изменяется (двигаемся накатом на нейтралке). Так же "нейтралку можно включить", сняв сигнал со входа разрешения работы блока En, тогда изменение переменной Var остановится, при этом не важно какое в этот момент значение ускорения Accel. По аналогии с выжимом сцепления, педаль газа нажата, однако ускорения нет, выжато сцепление. Этот вариант блока бывает очень удобен при создании программ управления разгоном электродвигателя.
Отправлено спустя 1 час 40 минут 59 секунд:
Acceleration Range Plus v.5.15 (Диапазонный)
Скачать блок Блок является развитием блока Acceleration Range v.4.15 (Диапазонный) и отличается наличием входа Brak (торможение). Благодаря чему можно задать два различных параметра ускорения. Accel - разгон (положительное ускорение) и Brak торможение (отрицательное ускорение)
Отправлено спустя 17 минут 43 секунды:
Возникает резонный вопрос: А что будет если переменная Var (в блоках 3.15 4.15, 5.15) окажется вне диапазона MIN-MAX. Ну например при старте когда заданы MIN = 500 , MAX = 1000 , а VarStart = 0. Соответственно при старте Var = VarStart = 0.
В этом случае Var всегда будет стремиться вернуться в рабочий диапазон с заданным в этот момент ускорением. Отправлено спустя 35 минут 28 секунд:
Благодаря стремлению переменной Var вернуться в диапазон MIN-MAX можно организовать пуск двигателя и его работу на двух предустановленных скоростях с плавным переходом разгоном и переходом межу скоростями всего двумя тумблерами.
Для этого достаточно предустановить (вбить константы) первую скорость MIN , вторую скорость MAX , разгон и торможение Accel и Brak и стартовое значение скорости VarStart=0.
Теперь для пуска двигателя включаем тумблер En и двигатель разгоняется до одной из двух скоростей в зависимости от положения тумблера Dir. Если Dir=0 то Var стремится к MIN и разгон продолжается до первой скорости, если же переключить Dir=1 то разоняемся до второй скорости MAX.
Если же двигатель набрал по нашему усмотрению достаточные обороты мы можем зафиксировать ее отключив тумблер во время разгона или торможения. В этом случае переменная Var "заморозится" и двигатель будет работать на зафиксированных в этот момент оборотах.
Конечно же все примеры условные и не включают такие параметры как инерция и скорость реакции исполнительных механизмов.
Отправлено спустя 27 минут 43 секунды:
Представленные блоки ускорения могут с успехом дополнить работу ПИД регуляторов. Некоторые механизмы, например обладающие большой инерцией, нельзя запускать подавая максимальную мощность что делает ПИД регулятор в момент пуска. Так же их нельзя резко останавливать если скажем используется червячный редуктор, это приведет к поломке механизма.
Вот тут то и поможет блок плавного запуска.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Лейтенант
- Сообщения: 450
- Зарегистрирован: 26 фев 2018, 21:27
- Откуда: Haifa
- Имя: Alex
- Благодарил (а): 2 раза
- Поблагодарили: 5 раз
Блоки ускорения
Тут на форуме была тема про разгон и торможение ШД,интересно, можно ли использовать там эти блоки?
- Dryundel
- Полковник
- Сообщения: 2419
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
Блоки ускорения
Если требуется заставить ШД просто крутиться плавно ускоряясь и замедляясь то можно. Но как правило задача ШД (в станках с ЧПУ) стартовать в одной координате и остановиться в другой сделав при этом конкретное количество шагов. А вот для того что бы тормозить при этом с определенным ускорением и пишутся серьезные библиотеки или вообще создаются контроллеры со своим ПО. Которые стоят совсем не дешево и совсем не по причине наличия золота на контактах.Brand2 писал(а): 10 мар 2019, 11:49Тут на форуме была тема про разгон и торможение ШД,интересно, можно ли использовать там эти блоки?
Вообще данные блоки не конкретно для работы с двигателями. Можно к примеру плавно включать освещение. Весь принцип работы блоков это плавно, равномерно, равно ускоренно "догонять" входную переменную, заданную дискретно. Применение зависит только от фантазии. На этом принципе можно к примеру организовать цифровой фильтр и убрать шумы с графика.
Блоки ускорения
ничего не работает
но каждый раз светодиод включается сразу же при разных настройках
написано Accel (step/s)
степ = 10
акес = 1
10/1=10 сек плавного загорания но он работает как обычный включатель
подключил шим но каждый раз светодиод включается сразу же при разных настройках
написано Accel (step/s)
степ = 10
акес = 1
10/1=10 сек плавного загорания но он работает как обычный включатель
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2419
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 21 раз
Блоки ускорения
У Вас, уважаемый, всегда ничего не работает.
А все потому, что чукча не читатель, чукча писатель. И как только этот факт хоть немного изменится, все встанет на свои места и заработает.
Во первых, в описании четко сказано:
.Dryundel писал(а): 09 мар 2019, 20:59 При старте (начале работы), переменной Out присваивается значение со входа in.
Во вторых, Вы пишете что Accel = 1 , а на скрине я вижу 1000
В третьих, блок призван плавно изменять и передавать на выход, резко изменяющееся значение со входа in, а у Вас на входе константа. Так что же по вашему должен делать блок, если значение на входе не изменяется?
В четвертых: Если вы хотите плавно изменять значение от 0 до 255 и обратно со скоростью 1000 шагов в секунду то и полУчите изменение значения от 0 до 255 менее чем 1/4 секунды. А если еще ставите в настройках step = 10 то за один шаг значение увеличивается (уменьшается) не на 1 а на 10 и плавное включение будет происходить уже за 1/40 секунды.
Так что, прежде чем кричать "ничего не работает", попробуйте внимательно прочитать описание и вникнуть в суть.
Блоки ускорения
несколько дней пробую найти закономерность условного зависания вашего блока в моём проекте
уже и на 5 ардуинах заливал с разными настройками и всеравно все начинают мигать со временем 13 выводом
[spoiler]
если его отдельно расположить то он работает часами без проблем 13 вывод молчит
даже если добавить пвм то тоже несколько часов теста всё норм
но стоит запустить проект как через пару часов выход у аццел отваливается что и оповещает 13 вывод
думал может у меня проблемы со входом какието но уарт чотко говорит что аццел умирает через пару часов до инцидента после то что выход молчит я и без уарта видел по нагрузке просто были сомнения что возможно ускорение падает в ноль какимто образом или на вход вдруг перестаёт подаваться сигнал
[/spoiler]
уже и на 5 ардуинах заливал с разными настройками и всеравно все начинают мигать со временем 13 выводом
[spoiler]
если его отдельно расположить то он работает часами без проблем 13 вывод молчит
даже если добавить пвм то тоже несколько часов теста всё норм
но стоит запустить проект как через пару часов выход у аццел отваливается что и оповещает 13 вывод
думал может у меня проблемы со входом какието но уарт чотко говорит что аццел умирает через пару часов до инцидента после то что выход молчит я и без уарта видел по нагрузке просто были сомнения что возможно ускорение падает в ноль какимто образом или на вход вдруг перестаёт подаваться сигнал
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Блоки ускорения
Не актуально....
Последний раз редактировалось AlexCrane 27 июл 2021, 13:16, всего редактировалось 1 раз.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Блоки ускорения
нет не помогает
так же примерно через 1:20 перестаёт выход работать
загрузил на 4 ардуины с шагом подачи на вход сигнала 5/10/30/60 минут и первые две уже сработали на последнии ещё опрос не пришол по времени
я уже и таймеры менял думал конфликт с первым но нет он и на втором таймере отваливается
и битность менял и частоту у шима и вовсе убирал блок делители частот шима и ставил по старинке чистый вывод шима
непонятно счем он конфликтует
ну вот пока писал сработала третья плата через 1:30 как и говорил пришло время опроса значит чрез полчаса сработает четвёртая плата по опросу потомучто выход у блока уже завис 10 минут назад
Отправлено спустя 4 минуты 39 секунд:
может блок нельзя держать включенным дольше примерно 80 минут что возможно он переполняет какой то буфер памяти
так же примерно через 1:20 перестаёт выход работать
загрузил на 4 ардуины с шагом подачи на вход сигнала 5/10/30/60 минут и первые две уже сработали на последнии ещё опрос не пришол по времени
я уже и таймеры менял думал конфликт с первым но нет он и на втором таймере отваливается
и битность менял и частоту у шима и вовсе убирал блок делители частот шима и ставил по старинке чистый вывод шима
непонятно счем он конфликтует
ну вот пока писал сработала третья плата через 1:30 как и говорил пришло время опроса значит чрез полчаса сработает четвёртая плата по опросу потомучто выход у блока уже завис 10 минут назад
Отправлено спустя 4 минуты 39 секунд:
может блок нельзя держать включенным дольше примерно 80 минут что возможно он переполняет какой то буфер памяти
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 152 раза
Блоки ускорения
Посмотрел один из блоков.Di123 писал(а): 25 июл 2021, 05:43 Отправлено спустя 4 минуты 39 секунд:
может блок нельзя держать включенным дольше примерно 80 минут что возможно он переполняет какой то буфер памяти
Зависание - это перестает работать один из двигателей, а все остальное работает?
Если так, то это возможно из-за не очень аккуратной работы в блоках с временами в mcs - так называемое "переполнение таймера".
Если выложите упрощенный пример(проект) с "зависанием", то мы его посмотрим и возможно что-то обнаружим.
Блоки ускорения
[ref]ecoins[/ref], это подсветка
да кнопки , епром , 13 пин , и уарт всё работает только шим отваливается со временем
да кнопки , епром , 13 пин , и уарт всё работает только шим отваливается со временем
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Блоки ускорения
[ref]Di123[/ref], [ref]ecoins[/ref], micros переполняется, если мне не изменяет память, через 71,5 минуты. Выше пытался убрать не помогло видимо....
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Блоки ускорения
если запустить то примерно через 80 минут загорится 13 вывод
Отправлено спустя 1 час 48 минут 58 секунд:
попробывал выцепить время глюка и да оно примерно через 75 минут +/- 5 минут по опросу входа генератором
а дальше он каждые 5 минут стучится в уарт пока не отвиснет выход и мне что то припоминается что он вроде самоотвисал но потом снова зависал
оставлю на ночь посмотрим
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 152 раза
Блоки ускорения
Не вполне понятно про пин.13:Di123 писал(а): 25 июл 2021, 09:24 ecoins, это подсветка
да кнопки , епром , 13 пин , и уарт всё работает только шим отваливается со временем
1.вывод на пин.13 выполняется на плате.5. Если контакт.13 =1, то и пин.13 будет=1.
2.контакт.13 формируется на первой плате через триггер SR. Если он защелкнется, то уже не отключиться до отключения питания (так как вход R=false).
контакт.13 будет =1 после того как выход блока >0. После этого защелкнется триггер, контакт.13=пин.13=1.
3.Не понятно назначение на плате.1 цепочки G-AM->RTrig->TOF(10сек)->FTrig->AND. Наверное не влияет на результат, но... вроде и лишнее.
4.Из поста #11 вроде следует, что следствием прекращения работы является то, что входной сигнал Accel.in=0, соответственно на выходе блока 0.
-----
Вывод - проблема не в блоке Accel.
-----
Возможно это проект компиляция разных идей от разных авторов - очень громоздко и сложно.
Может бы Вы изложить требование к проекту (чего хочется, по пунктам) и проблема сама рассосется, и помочь будет проще.
Блоки ускорения
1 - это понятно и я его просто использую как сигнализатор неисправности
2 - всё верно как он сработает значит что то не так
3 - да верно она не влияет на результат потомучто я её добавил потом для отслеживания входного сигнала и сравнения его с выходным и если за 10 сек там непоявился на выходе ничего то загорается 13 светодиод в принципи там и 2 сек хватило бы ибо скорость нарастания выхода блока равна 1 сек
4 - нет как раз то таки он равен 4095 я там и выделил его в компорте от начало до конца а вот выход у него молчит в это время Отправлено спустя 7 минут 34 секунды: низнаю как ещё понятне доходчеве обьяснить
Отправлено спустя 4 минуты 55 секунд:
сейчас заместо тригера и 13 пин я поставил уарт
было идеально до 75 минут работы
дальше через 1 час и 15 минут перестал работать выход
в уарт досих пор отправляет данные через каждые 5 минут на генераторе
как только выход отвиснет то уарт замолчит
если отвиснет конечно
2 - всё верно как он сработает значит что то не так
3 - да верно она не влияет на результат потомучто я её добавил потом для отслеживания входного сигнала и сравнения его с выходным и если за 10 сек там непоявился на выходе ничего то загорается 13 светодиод в принципи там и 2 сек хватило бы ибо скорость нарастания выхода блока равна 1 сек
4 - нет как раз то таки он равен 4095 я там и выделил его в компорте от начало до конца а вот выход у него молчит в это время Отправлено спустя 7 минут 34 секунды: низнаю как ещё понятне доходчеве обьяснить
Отправлено спустя 4 минуты 55 секунд:
сейчас заместо тригера и 13 пин я поставил уарт
было идеально до 75 минут работы
дальше через 1 час и 15 минут перестал работать выход
в уарт досих пор отправляет данные через каждые 5 минут на генераторе
как только выход отвиснет то уарт замолчит
если отвиснет конечно
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 152 раза
Блоки ускорения
Возможно Вы правы и не там посмотрел. Но если выход на UART реализован как в #11,Di123 писал(а): 25 июл 2021, 12:03 4 - нет как раз то таки он равен 4095 я там и выделил его в компорте от начало до конца а вот выход у него молчит в это время
то там параметры в следующей последовательности:
1.вкл/выкл (bool);
2.удержание (bool);
3.ночник(bool);
4.удержание (int)=30000;
5. 30*ночник=0;
6.4095/ вкл/выкл -плохая идея делить на 0, лучше заменить на SWITCH. =4095.
7.Вход in - синим на рисунке. Было 4095, стало 0.
8.Выход Accel - было 4095->2032,232,0....
9.bool
-----
Вроде как in=0.
-----
Как мог, поучаствовал.
Думаю, что блок Accel здесь не очень уместен.
Проект сделал бы иначе, на блоках ecoins. И проще был бы, и тестировать было бы проще.
Предложение по формулированию требования к проекту видимо оказалось не интересным.
------
Успехов.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя