我有一个具体的问题,我将非常感谢任何帮助。
我正在研究AMPL(数学编程语言)的特定项目: 我需要实现一个目标函数,它可以最大限度地降低变量成本的风险,它还具有成本作为参数和相关系数。
使用成本差异估算风险,我有相关矩阵数据。
我的相关矩阵如下所示:
相关系数(%)
2015年
煤汽轮机燃气轮机Wind Central PV Hydro non pumped Nuclear GenIII Nuclear GenIV煤汽轮机CCS
1 0.47 0 0 0 0.12 0.12 1煤汽轮机
0.47 1 0 0 0 0.06 0.06 0.47燃气轮机
0 0 1 0 0 0 0 0风
0 0 0 1 0 0 0 0中央PV
0 0 0 0 1 0 0 0 Hydro non pumped
0.12 0.06 0 0 0 1 1 0.12 Nuclear GenIII
0.12 0.06 0 0 0 1 1 0.12 Nuclear GenIV
1 0.47 0 0 0 0.12 0.12 1煤汽轮机CCS
就我而言,我想要最小化的成本风险取决于燃料价格(燃料类型是相关的,相关系数每年变化,燃料价格取决于技术类型,省份和年份)。
我需要找到一种方法来找到一种有效的方法来输入表中的相关矩阵(psgAdmin(psql)上的数据库),然后使用适当的参数来读取它们,并在我的目标函数上实现它们。
到目前为止,我的表格如下:
table fuel_prices "inputs/fuel_prices.tab" IN:
[province, fuel, year], fuel_price, cv_fuel_price;
read table fuel_prices;
我需要修改它以添加相关系数。
# Table for the correlation coefficients
# table fuel_prices_corr "inputs/fuel_prices_corr.tab" and IN:
# [province, year], fuel, correl_coeff1, correl_coeff2;
# read table fuel_prices_corr;
我正在使用的技术从表中提取如下:
table generator_info" inputs / generator_info.tab" IN:
技术< - [技术],技术,燃料;
读表generator_info;
table gen_cap_cost "inputs/gen_cap_cost.tab" IN:
[technology, year], overnight_cost_yearly ~ overnight_cost, fixed_o_m_yearly ~ fixed_o_m, variable_o_m_yearly ~ variable_o_m;
read table gen_cap_cost;
table existing_plants "inputs/existing_plants.tab" IN:
EXISTING_PLANTS <- [project_id, province, technology],
ep_plant_name ~ plant_name, ep_carma_plant_id ~ carma_plant_id,
ep_capacity_mw ~ capacity_mw, ep_heat_rate ~ heat_rate, ep_cogen_thermal_demand ~ cogen_thermal_demand_mmbtus_per_mwh,
ep_vintage ~ start_year,
ep_overnight_cost ~ overnight_cost, ep_connect_cost_per_mw ~ connect_cost_per_mw, ep_fixed_o_m ~ fixed_o_m, ep_variable_o_m ~ variable_o_m,
ep_location_id;
read table existing_plants;
table new_projects "inputs/new_projects.tab" IN:
PROJECTS <- [project_id, province, technology], location_id, ep_project_replacement_id,
capacity_limit, capacity_limit_conversion, heat_rate, cogen_thermal_demand, connect_cost_per_mw;
read table new_projects;
我的目标函数如下所示:pid =项目特定id,a =省,t =技术,p = PERIODS,投资期的开始以及发电厂开始运行的日期,h =学习时间 - 考虑了唯一的时间点,p =投资期。
项目中的{(pid,a,t,p)} Gen [pid,a,t,p,h] * fuel_cost [pid,a,t,p]))
有没有人对此提示,或使用MPT的项目和相关变量?
答案 0 :(得分:0)
以下是用于读取取自here的二维参数amt
的表声明的示例:
table dietAmts IN "ODBC" (ConnectionStr) "Amounts":
[NUTR, FOOD], amt;
在您的情况下,您将在关键部分中设置两次相同的设置,例如[ENERGY_SOURCE, ENERGY_SOURCE]
,其中ENERGY_SOURCE
是一组能源,例如煤汽轮机等。矩阵是对称的,你只需要存储一半。