Как построить счетчик в Simulink, который считает импульсы заданной длины?

Я хотел бы смоделировать железнодорожную блокировку. На счетчик поступают импульсы со следующими параметрами:

  • длина сигнала: 260 мс
  • короткий перерыв: 130 мс
  • длинный перерыв: 520 мс

Вот генератор сигналов:

Это параметры блока: Синус:

Генератор импульсов:

4-импульсы:

И это знак, в котором я хотел бы считать импульсы:

В примере я хотел бы посчитать 4 импульса за один период, потому что мы знаем, что один период равен 1950 мс.

Это очень похоже на вопрос, который я прокомментировал несколько дней назад, хотя я не могу его найти ... В этом вопросе было больше информации о блоках, которые вы используете, я думаю? Похоже, вы исправили проблему с половинным импульсом, отлично! Можете ли вы предоставить более подробную информацию о том, что означает «Я хотел бы подсчитать 4 импульса»? Должен ли счетчик циклически повторяться 1,2,3,4,1,2,3,4,...? Или он должен считать до 4 и держать? Как вы определяете импульсы, которые хотите подсчитать? Разве это не функция настройки блока ввода, так что у вас все равно есть ответ?

Wolfie 10.11.2022 12:58

Да, я хотел бы сохранить этот номер.

jacky 10.11.2022 13:07

Так что просто время от последней точки, когда abs(signal)>threshold для некоторого порога, который указывает, что сигнал активен, и если он превышает продолжительность вашей короткой паузы, увеличивайте счетчик. Если вы преодолели порог длинной паузы, прекратите увеличиваться навсегда.

Wolfie 10.11.2022 13:31

Есть ли блок для этого или я должен решить его в функциональном блоке MATLAB?

jacky 10.11.2022 13:37

Я думаю, вы могли бы сделать это с комбинацией блоков clock, switch, memory и relational operator, если в библиотеке нет чего-то более полного для тайминга.

Wolfie 10.11.2022 14:12
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
5
80
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

Схема (нажмите, чтобы увеличить)

Сфера:

Большое спасибо! Какие параметры переключателя?

jacky 11.11.2022 05:51

Только настройки по умолчанию для переключателя, за исключением того, что условие равно ~=0, поэтому верхний вход — это когда сигнал переключателя истинен, а нижний вход — когда ложь.

Wolfie 11.11.2022 08:12

Как изменить его, чтобы он стал встречным циклом? (1,2,3,4)

jacky 18.12.2022 18:33

Другие вопросы по теме