Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
U
unify_api2
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chaonan
unify_api2
Commits
bca64107
You need to sign in or sign up before continuing.
Commit
bca64107
authored
Dec 30, 2024
by
ZZH
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add inv eval 2024-12-30 14:52
parent
f7b3f85d
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
502 additions
and
0 deletions
+502
-0
__init__.py
unify_api/algo/__init__.py
+5
-0
__init__.py
unify_api/algo/ems/__init__.py
+5
-0
ems.py
unify_api/algo/ems/ems.py
+320
-0
ems_cps.py
unify_api/modules/inv_eval/components/ems_cps.py
+42
-0
__init__.py
unify_api/modules/inv_eval/procedures/__init__.py
+5
-0
ems_srv.py
unify_api/modules/inv_eval/service/ems_srv.py
+73
-0
ems.py
unify_api/modules/inv_eval/views/ems.py
+52
-0
No files found.
unify_api/algo/__init__.py
0 → 100644
View file @
bca64107
# -*- coding:utf-8 -*-
"""
DATE:2024/12/30 10:18
"""
unify_api/algo/ems/__init__.py
0 → 100644
View file @
bca64107
# -*- coding:utf-8 -*-
"""
DATE:2024/12/30 10:18
"""
unify_api/algo/ems/ems.py
0 → 100644
View file @
bca64107
This diff is collapsed.
Click to expand it.
unify_api/modules/inv_eval/components/ems_cps.py
0 → 100644
View file @
bca64107
# -*- coding:utf-8 -*-
"""
DATE:2024/12/30 11:43
"""
from
dataclasses
import
dataclass
from
pot_libs.sanic_api
import
Model
from
pot_libs.sanic_api.column
import
Opt
,
Float
,
Int
,
List
,
Str
@
dataclass
class
EmsInvEvalReq
(
Model
):
load_year
:
float
=
Opt
(
Float
(
"年均负荷(kw)"
)
.
eg
(
4500
))
imp_load_year
:
float
=
Opt
(
Float
(
"年均重要负荷(kw)"
)
.
eg
(
2000
))
es_cost
:
float
=
Opt
(
Float
(
"储能成本 元/kw"
)
.
eg
(
1500
))
pv_cost
:
float
=
Opt
(
Float
(
"年均负荷(kw)"
)
.
eg
(
800
))
ele_price
:
float
=
Opt
(
Float
(
"电价"
)
.
eg
(
1.4
))
cg_cost
:
float
=
Opt
(
Float
(
"煤制气成本加上燃料成本 元/kw"
)
.
eg
(
8000
))
sale_price
:
float
=
Opt
(
Float
(
"售电价格"
)
.
eg
(
1000
))
sale_cost
:
float
=
Opt
(
Float
(
"售电成本价格"
)
.
eg
(
0.5
))
work_hours_year
:
float
=
Opt
(
Float
(
"每年的工作时长"
)
.
eg
(
2000
))
sun_hrs_year
:
float
=
Opt
(
Float
(
"每年的光照时长"
)
.
eg
(
1300
))
max_load
:
float
=
Opt
(
Float
(
""
)
.
eg
(
6000
))
min_load
:
float
=
Opt
(
Float
(
""
)
.
eg
(
2400
))
pv_area
:
float
=
Opt
(
Float
(
"光伏建设最大面积"
)
.
eg
(
50000
))
pv_eff
:
float
=
Opt
(
Float
(
"光伏效率"
)
.
eg
(
0.8
))
max_invest_year
:
float
=
Opt
(
Float
(
"当前投资收益最大限制"
)
.
eg
(
5
))
pv_limit
:
float
=
Opt
(
Float
(
"光伏最大限制"
)
.
eg
(
7000
))
sale_limit
:
float
=
Opt
(
Float
(
"售电限制kw*h"
)
.
eg
(
100000
))
cg_eff
:
float
=
Opt
(
Float
(
"煤制气效率"
)
.
eg
(
0.8
))
es_eff
:
float
=
Opt
(
Float
(
"充电效率"
)
.
eg
(
0.8
))
goal
:
int
=
Int
(
"1保重要负荷2保所有负荷3可联网售电4综合成本最优"
)
.
eg
(
1
)
@
dataclass
class
EmsInvEvalRsp
(
Model
):
pv
:
float
=
Opt
(
Float
(
"光伏配置"
)
.
eg
(
4500
))
es
:
float
=
Opt
(
Float
(
"储能配置"
)
.
eg
(
4500
))
cg
:
float
=
Opt
(
Float
(
"煤制气"
)
.
eg
(
4500
))
income_year
:
float
=
Opt
(
Float
(
"年收益"
)
.
eg
(
4500
))
total_inv_cost
:
float
=
Opt
(
Float
(
"总投资成本"
)
.
eg
(
4500
))
irr
:
float
=
Opt
(
Float
(
"投资回报率"
)
.
eg
(
0.1
))
unify_api/modules/inv_eval/procedures/__init__.py
0 → 100644
View file @
bca64107
# -*- coding:utf-8 -*-
"""
DATE:2024/12/30 10:16
"""
unify_api/modules/inv_eval/service/ems_srv.py
0 → 100644
View file @
bca64107
# -*- coding:utf-8 -*-
"""
DATE:2024/12/30 13:41
"""
from
unify_api.algo.ems.ems
import
EnergyModel
async
def
inv_eval
(
d_params
):
load_year
=
d_params
[
"load_year"
]
imp_load_year
=
d_params
[
"imp_load_year"
]
es_cost
=
d_params
[
"es_cost"
]
ele_price
=
d_params
[
"ele_price"
]
cg_cost
=
d_params
[
"cg_cost"
]
work_hours_year
=
d_params
[
"work_hours_year"
]
max_invest_year
=
d_params
[
"max_invest_year"
]
cg_eff
=
d_params
[
"cg_eff"
]
es_eff
=
d_params
[
"es_eff"
]
pv_cost
=
d_params
[
"pv_cost"
]
sun_hrs_year
=
d_params
[
"sun_hrs_year"
]
max_load
=
d_params
[
"max_load"
]
min_load
=
d_params
[
"min_load"
]
pv_eff
=
d_params
[
"pv_eff"
]
pv_area
=
d_params
[
"pv_area"
]
pv_limit
=
d_params
[
"pv_limit"
]
sale_price
=
d_params
[
"sale_price"
]
sale_limit
=
d_params
[
"sale_limit"
]
sale_cost
=
d_params
[
"sale_cost"
]
goal
=
d_params
[
"goal"
]
rlt_cfg
=
{}
ems_model
=
EnergyModel
(
dict
(
load_year
=
load_year
,
imp_load_year
=
imp_load_year
,
es_cost
=
es_cost
,
ele_price
=
ele_price
,
cg_cost
=
cg_cost
,
work_hours_year
=
work_hours_year
,
max_invest_year
=
max_invest_year
,
cg_eff
=
cg_eff
,
es_eff
=
es_eff
))
if
goal
==
1
:
rlt_cfg
=
ems_model
.
cri_calculate
()
elif
goal
==
2
:
rlt_cfg
=
ems_model
.
all_calculate
(
dict
(
pv_cost
=
pv_cost
,
sun_hrs_year
=
sun_hrs_year
,
max_load
=
max_load
,
min_load
=
min_load
,
pv_eff
=
pv_eff
,
pv_area
=
pv_area
,
pv_limit
=
pv_limit
))
elif
goal
==
3
:
rlt_cfg
=
ems_model
.
sale_calculate
(
dict
(
pv_cost
=
pv_cost
,
sun_hrs_year
=
sun_hrs_year
,
max_load
=
max_load
,
min_load
=
min_load
,
pv_eff
=
pv_eff
,
pv_area
=
pv_area
,
pv_limit
=
pv_limit
,
sale_price
=
sale_price
,
sale_limit
=
sale_limit
,
sale_cost
=
sale_cost
))
elif
goal
==
4
:
rlt_cfg
=
ems_model
.
com_strategy
(
dict
(
pv_cost
=
pv_cost
,
sun_hrs_year
=
sun_hrs_year
,
max_load
=
max_load
,
min_load
=
min_load
,
pv_eff
=
pv_eff
,
pv_area
=
pv_area
,
pv_limit
=
pv_limit
,
sale_price
=
sale_price
,
sale_limit
=
sale_limit
,
sale_cost
=
sale_cost
))
return
rlt_cfg
unify_api/modules/inv_eval/views/ems.py
0 → 100644
View file @
bca64107
# -*- coding:utf-8 -*-
"""
DATE:2024/12/30 10:15
"""
from
pot_libs.sanic_api
import
summary
from
unify_api.modules.inv_eval.service.ems_srv
import
inv_eval
from
unify_api.modules.inv_eval.components.ems_cps
import
(
EmsInvEvalReq
,
EmsInvEvalRsp
)
@
summary
(
"投资汇报测算"
)
async
def
post_inv_eval
(
req
,
body
:
EmsInvEvalReq
)
->
EmsInvEvalRsp
:
try
:
load_year
=
body
.
load_year
or
0
imp_load_year
=
body
.
imp_load_year
or
0
es_cost
=
body
.
es_cost
or
0
pv_cost
=
body
.
pv_cost
or
0
ele_price
=
body
.
ele_price
or
0
cg_cost
=
body
.
cg_cost
or
0
sale_price
=
body
.
sale_price
or
0
sale_cost
=
body
.
sale_cost
or
0
work_hours_year
=
body
.
work_hours_year
or
0
sun_hrs_year
=
body
.
sun_hrs_year
or
0
max_load
=
body
.
max_load
or
0
min_load
=
body
.
min_load
or
0
pv_area
=
body
.
pv_area
or
0
pv_eff
=
body
.
pv_eff
or
0
max_invest_year
=
body
.
max_invest_year
or
0
pv_limit
=
body
.
pv_limit
or
0
sale_limit
=
body
.
sale_limit
or
0
cg_eff
=
body
.
cg_eff
or
0.8
es_eff
=
body
.
es_eff
or
0.8
goal
=
body
.
goal
d_params
=
dict
(
load_year
=
load_year
,
imp_load_year
=
imp_load_year
,
es_cost
=
es_cost
,
pv_cost
=
pv_cost
,
ele_price
=
ele_price
,
cg_cost
=
cg_cost
,
work_hours_year
=
work_hours_year
,
max_invest_year
=
max_invest_year
,
cg_eff
=
cg_eff
,
es_eff
=
es_eff
,
sun_hrs_year
=
sun_hrs_year
,
max_load
=
max_load
,
min_load
=
min_load
,
pv_eff
=
pv_eff
,
pv_area
=
pv_area
,
pv_limit
=
pv_limit
,
sale_price
=
sale_price
,
sale_limit
=
sale_limit
,
sale_cost
=
sale_cost
,
goal
=
goal
)
cfg
=
await
inv_eval
(
d_params
)
return
EmsInvEvalRsp
(
pv
=
cfg
.
get
(
"pv"
,
0
),
es
=
cfg
.
get
(
"es"
,
0
),
cg
=
cfg
.
get
(
"cg"
,
0
),
income_year
=
cfg
.
get
(
"income_year"
,
0
),
irr
=
cfg
.
get
(
"irr"
,
0
))
except
Exception
as
e
:
return
EmsInvEvalRsp
(
pv
=
0
,
es
=
0
,
cg
=
0
,
income_year
=
0
,
irr
=
0
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment