Проблема программирования.
У меня есть начальный объем (в МВт), и мне нужно достичь целевого объема (в МВт) за указанное количество времени.Идеальным решением является создание линейной линии между точками для расчета требуемой скорости.Однако мы можем перейти только от начальной скорости к целевой скорости, используя указанные скорости изменения скорости:
- Скорость 1 - МВт / мин от любого начального объема до Объема локтя 1
- Объем локтя1 - объем в этой точке
- Скорость 2 - МВт / мин от объема локтя 1 до объема 2 локтя *
- Объем локтя 2 - объем в этой точке
- Скорость 3 - МВт/ мин. от локтевого тома 2 до целевого объема
Так что в качестве примера я мог бы получить следующее:
- Скорость 1 = 10 МВт / мин.
- Объем локтя 1 = 100 МВт
- Скорость 2 = 5 МВт / мин
- Объем локтя 2 = 105 МВт
- Скорость 3 = 35 МВт / мин
Частота выборки
Это означает, что я могу начинать с любого объема до 100 МВт и достигать 100 МВт при 10 МВт / мин.Я могу получить 105 МВт при 5 МВт / мин.Затем я могу получить любой объем, превышающий 105 МВт со скоростью 35 МВт / мин.
Так что, если начальный объем составляет 75 МВт, а целевой объем составляет 800 МВт с разницей во времени 30 минут, это достижимо:
- Начиная с целевого объема при 750 МВт, я могу получить 105 МВт за 19,9 минут: дельта объема = 800 МВт - 105 МВт = 695 МВт времени = 695 МВт / 35 (МВт / мин) = 19,9 минут
- Я могуполучить от 105 МВт до 100 МВт за 1 мин. дельта объема = 105 МВт - 100 МВт = 5 МВт времени = 5 МВт / 5 (МВт / мин) = 1 мин
- Я могу получить от 100 МВт до 75 МВт за минуты: дельта объема = 100 МВт- 75 МВт = 25 МВт времени = 25 МВт / 10 (МВт / мин) = 2,5 минуты
- Общее время = 19,9 минуты + 1 минута + 2,5 минуты = 23,4 минуты
- С 23,4 минуты <30 минуттогда это возможно </li>
Я могу запрограммировать вышеупомянутые шаги, чтобы проверить вышеупомянутое, но ищу эффективный способ, который я могу упустить.
Способ, которым я кодировал это в c #,следующим образом:
- Получить начальный и целевой тома.
- Если ЭльбТеперь объем 2> = начальный объем и объем локтя 2 <= целевой объем, затем проходящий через объем локтя 2: <ul>
- Рассчитать дельту объема между целевым объемом и объемом локтя 2. Разделить на коэффициент 3, чтобы получить T1
- Рассчитать дельту объема между объемом колена 1 и максимальным (начальный объем, объем колена 2).Разделите на коэффициент 2, чтобы получить T2.
- Если объем локтя 1> = начальный объем и объем локтя 1 <= целевой объем, то прохождение через колено 1: <ul>
- Расчет объемадельта между начальным и локтевым объемом 1. Разделите на коэффициент 1, чтобы получить T3.
Сумма T1, T2 и T3 и убедитесь, что между временем начала и целевого объема меньше времени.
Я верю, что это работает, но хочу посмотреть, есть ли лучшее решение там.