Я хотел бы смоделировать железнодорожную блокировку. На счетчик поступают импульсы со следующими параметрами:
Вот генератор сигналов:
Это параметры блока: Синус:
Генератор импульсов:
4-импульсы:
И это знак, в котором я хотел бы считать импульсы:
В примере я хотел бы посчитать 4 импульса за один период, потому что мы знаем, что один период равен 1950 мс.
Да, я хотел бы сохранить этот номер.
Так что просто время от последней точки, когда abs(signal)>threshold
для некоторого порога, который указывает, что сигнал активен, и если он превышает продолжительность вашей короткой паузы, увеличивайте счетчик. Если вы преодолели порог длинной паузы, прекратите увеличиваться навсегда.
Есть ли блок для этого или я должен решить его в функциональном блоке MATLAB?
Я думаю, вы могли бы сделать это с комбинацией блоков clock
, switch
, memory
и relational operator
, если в библиотеке нет чего-то более полного для тайминга.
Это кажется довольно запутанным, но, надеюсь, его легко следовать и адаптировать.
По сути, вы можете проверить, как долго длятся паузы, и если эта продолжительность паузы удовлетворяет вашим критериям, то увеличивайте счетчик.
Добавлены группы комментариев для того, что делает каждая группа блоков, возможно, это можно упростить, используя несколько таймеров с фиксацией, но я не исследовал библиотеку блоков, поэтому здесь используются все очень фундаментальные блоки.
Схема (нажмите, чтобы увеличить)
Сфера:
Большое спасибо! Какие параметры переключателя?
Только настройки по умолчанию для переключателя, за исключением того, что условие равно ~=0
, поэтому верхний вход — это когда сигнал переключателя истинен, а нижний вход — когда ложь.
Как изменить его, чтобы он стал встречным циклом? (1,2,3,4)
Это очень похоже на вопрос, который я прокомментировал несколько дней назад, хотя я не могу его найти ... В этом вопросе было больше информации о блоках, которые вы используете, я думаю? Похоже, вы исправили проблему с половинным импульсом, отлично! Можете ли вы предоставить более подробную информацию о том, что означает «Я хотел бы подсчитать 4 импульса»? Должен ли счетчик циклически повторяться 1,2,3,4,1,2,3,4,...? Или он должен считать до 4 и держать? Как вы определяете импульсы, которые хотите подсчитать? Разве это не функция настройки блока ввода, так что у вас все равно есть ответ?