Счетчик / накопитель Matlab

#matlab

#matlab

Вопрос:

Я пытаюсь спроектировать систему хранения, в которую поступает избыточная энергия. Существует ограничение на максимальный размер хранилища для системы. Я изо всех сил пытаюсь понять, как закодировать это в matlab.

В настоящее время я использую функцию, аналогичную этой

 max_storage = no_tanks*tank_size

if cumsum(excess) > 0 
   storage = cumsum(excess)
elseif cumsum(excess) < 0
  

После этого я не понимаю, как продолжить написание кода. Любая помощь была бы высоко оценена

Комментарии:

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

2. Пока я вижу один красный флаг: вы используете CUMSUM для переменной excess , что наводит меня на мысль, что excess это вектор, что означало бы, что выходные данные CUMSUM также являются вектором, что означает, что выражение cumsum(excess) > 0 в вашем операторе if также является вектором. Вам следует обратить особое внимание на то, как обрабатываются векторы при использовании в операторах if .

Ответ №1:

Попытка чтения мыслей в ожидании обновления вопроса.

Чтобы ограничить размер хранилища до max_storage , вам нужно иметь некоторый код, такой как

 storage = calc_storage(excess);      % or whatever
storage = min(storage, max_storage);
  

Не забудьте завершить свои инструкции с помощью ; , и если вам нужно использовать cumsum(excess) много раз, лучше присвоить его переменной, а не вычислять его снова и снова.