#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)
много раз, лучше присвоить его переменной, а не вычислять его снова и снова.