перезапись определенных переменных в simulink

вот изображение моей текущей модели simulink:

введите описание изображения здесь

переменная initRun инициализируется значением 1. поэтому на первом этапе моделирования будет активирован else-case, и изображение будет сохранено в переменной origImg. А теперь дополнительно я хочу установить переменную initRun на 0, чтобы на следующем шаге моделирования был активирован if-case. Но я не знаю, как правильно поступать.

Мой второй вопрос касается инициализации переменной origImg в блоке Data Store Memory. Переменная должна быть инициализирована матрицей 176x144. Я пробовал несколько способов, но все безуспешно.

Я надеюсь, ты сможешь мне помочь.


person bluhub    schedule 10.01.2014    source источник


Ответы (1)


Для вашего InitRun может быть проще использовать блок Clock и блок Сравнить с нулем, чтобы при t > 0 вы могли активируйте одно условие и другое условие в противном случае (которое будет t = 0).

Для инициализации блока памяти хранилища данных просто укажите zeros(176,144) в качестве начального значения в параметрах блока (вкладка «Атрибуты сигнала»). Дополнительные сведения см. В документации.

person am304    schedule 10.01.2014
comment
спасибо за быстрый ответ. ваша подсказка для Data Store Memory инициализации imgOrig выполняет свою работу. Но я не думаю, что ваше предложение для initRun сработает, потому что позже я получу скорость автомобиля через CANbus и в зависимости от скорости я выберу один из алгоритмов обработки изображений. поэтому, если скорость превышает определенную границу (в настоящее время 0.3km/h), мне также нужно снова установить переменную initRun на 1. Переменная «nitRun» сообщает мне, является ли это первым запуском обработки изображения, когда скорость равна < 0.3 km/h. - person bluhub; 10.01.2014
comment
Затем вы можете объединить условие t>0 с v<0.3 с помощью блока логического оператора (mathworks .co.uk / help / simulink / slref / logicaloperator.html). - person am304; 10.01.2014