energy_opt_cps.py 2.67 KB
Newer Older
lcn's avatar
lcn committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
from dataclasses import dataclass

from pot_libs.sanic_api import Model
from pot_libs.sanic_api.column import Int, Float, Dict, Str, Opt


@dataclass
class UsaReq(Model):
    inline_id: int = Int("进线id").eg(17)
    cell_price: float = Float("电池单价").eg(2000)
    pcs_price: float = Float("PCS单价").eg(300)
    other_ttl_charge: float = Float("其他投资费用").eg(0)
    pcs_efficiency: int = Int("PCS转换效率").eg(95)
    bat_efficiency: int = Int("电池充放电效率").eg(95)
    decay_rate: float = Float("衰效率").eg(5.0)
    dod: int = Int("放电深度").eg(90)
    year_use_days: float = Float("年可利用时间").eg(330)
    charge_c_rate: float = Float("充放电倍率").eg(0.8)


@dataclass
class UseResp(Model):
    cell_price: int = Int("电池单价")
    pcs_price: int = Int("PCS单价")
    other_ttl_charge: int = Int("其他投资费用")
    pcs_efficiency: int = Int("PCS转换效率")
    bat_efficiency: int = Int("电池充放电效率")
    decay_rate: float = Float("衰效率")
    dod: int = Int("放电深度")
    year_use_days: int = Int("年可利用时间")
    charge_c_rate: float = Float("充放电倍率")


@dataclass
class UsaResp(Model):
    capacity: dict = Opt(Dict("容量规模"))
    economic_evaluate: dict = Opt(Dict("经济测算"))
    opt_analysis: dict = Opt(Dict("优化分析"))
    opt_curve: dict = Opt(Dict("优化曲线"))
    message: str = Opt(Str("提示"))


@dataclass
class DpResp(Model):
    self_use_ratio: float = Float("自发用比例").eg(70)
    rmb_per_wp: float = Float("单价").eg(7.5)
    sel_use_per_kwh: float = Float("电价").eg(0.8)
    self_use_price_discout: float = Float("电价折扣").eg(10)
    first_install_subsidy: float = Float("初装补贴").eg(0)
    local_subsidy: float = Float("地方补贴").eg(0.25)
    local_subsidy_year: float = Float("地方补贴年限").eg(5)


@dataclass
class DpaReq(Model):
    inline_id: int = Int("进线id").eg(17)
    install_space: float = Float("场区面积").eg(100)
    self_use_ratio: float = Float("自发用比例").eg(70)
    rmb_per_wp: float = Float("单价").eg(7.5)
    sel_use_per_kwh: float = Float("电价").eg(0.8)
    self_use_price_discout: float = Float("电价折扣").eg(10)
    first_install_subsidy: float = Float("初装补贴").eg(0)
    local_subsidy: float = Float("地方补贴").eg(0.25)
    local_subsidy_year: float = Float("地方补贴年限").eg(5)


@dataclass
class DpaResp(Model):
    install_cap: dict = Opt(Dict("接入规模"))
    invest_evaluate: dict = Opt(Dict("投资测算"))
    opt_analysis: dict = Opt(Dict("优化分析"))
    capacity_scale_chart: dict = Opt(Dict("优化曲线"))
    message: str = Opt(Str("提示"))