P1236 算24点

本文介绍了一种解决24点游戏的算法实现。通过深度优先搜索(DFS)结合回溯法,针对输入的四个数字尝试所有可能的数学运算组合(加、减、乘、除),以达到目标值24。文章详细展示了代码实现过程,包括数据结构的选择、状态记录、递归调用等关键步骤。

应某yjk大佬的邀请,特来水一水做一做这道题

二话不说就是暴力

我的思路是,对于每次运算出来的结果,就当成一个新数。在加入枚举

具体的会写在mama里

#include<iostream> 
#include<algorithm>
#include<cstdio>
using namespace std;
char cs[60];//存符号的数组
int ns[60][2];//存每次运算的数字,都是倒序存。举个栗子:第一次运算存在ns[4][1]和ns[4][0]里的
bool exi=false;
bool used[100];//是否被使用,由于我们需要将运算的结果看成新的数,所以要开大一些
int num[100];//存数字
int top;
bool compare(const int &a,const int &b)
{
    return a<b;
}
void dfs(int now)//now为还需要进行的运算次数
{
    if(now==1)//我这里是码风的问题,其实进入到这个循环里就需要三步运算
    {
        if(num[top]==24)//有解
        {
            exi=true;//标记打上233
            for(int i=4;i>=2;i--)//暴力输出233
            {
                printf("%d%c%d=",ns[i][0],cs[i],ns[i][1]);
                switch(cs[i])
                {
                    case '+':printf("%d",ns[i][0]+ns[i][1]);break;
                    case '-':printf("%d",ns[i][0]-ns[i][1]);break;
                    case '/':printf("%d",ns[i][0]/ns[i][1]);break;
                    case '*':printf("%d",ns[i][0]*ns[i][1]);break;
                }
                printf("\n");
            }
        }
        return ;
    }
    for(int i=1;i<=top;i++)//每次dfs枚举两个参与预算的数
        if(!used[i])
        {
            used[i]=true;
            for(int j=1;j<=top;j++)
                if(!used[j])
                {
                    ns[now][0]=num[i];
                    ns[now][1]=num[j];
                    used[j]=true;
                    top+=1;//num中元素的个数+1
                    if(num[i]>=num[j])//为了输出个数
                    {
                        num[top]=num[i]+num[j];
                        cs[now]='+';
                        dfs(now-1);
                        if(exi)
                        return ;
                    }
                    if(num[i]-num[j]>=0)//保证不为零
                    //如果没有的话样例会变成
                    //1-2=-1
                    //7--1=8
                    //8*3=24   蛤蛤
                    {
                        num[top]=num[i]-num[j];
                        cs[now]='-';
                        dfs(now-1);
                        if(exi)
                            return ;
                    }
                    if(num[i]>=num[j])//保证输出
                    {   
                        num[top]=num[i]*num[j];
                        cs[now]='*';
                        dfs(now-1);
                        if(exi)
                            return ;
                    }
                    if(num[j]&&num[i]%num[j]==0)//防止除数为零导致错误
                    {
                        num[top]=num[i]/num[j];
                        cs[now]='/';
                        dfs(now-1);
                        if(exi)
                            return ;
                    }
                    used[j]=false;
                    top-=1;
                }
            used[i]=false;
        }
}
int main()
{
    for(int i=1;i<=4;i++)
        scanf("%d",&num[i]);//输入
    top=4;//现在一共有多少个数。以后的结果会加到num数组里,所以说top就是num数组中元素的个数。
    sort(num+1,num+5,compare);//好像并没有什么用的排序
    dfs(4);//4の意义见函数本体
    if(!exi)//exi为是否找到了解
        printf("No answer!");
    return 0;
}

转载于:https://www.cnblogs.com/Lance1ot/p/8619267.html

检查以下代码,指出错误的地方:%% 综合能源系统-日前优化调度模型 % 电制氢(P2G)、碳捕集(CCS) % 阶梯式碳交易机制 clc clear %% 输入原始数据, 光照强度:w/m^2, 风速:m/s, 电热冷负荷:kw % 光照强度 GZ_num = [31.9200000000000,44.7000000000000,43.3800000000000,63.6600000000000,104.520000000000,537.360000000000,694.620000000000,823.380000000000,913.260000000000,1069.38000000000,1134.66000000000,1150.68000000000,1120.56000000000,1148.82000000000,1131.90000000000,1105.38000000000,1063.14000000000,944.460000000000,511.560000000000,95.4600000000000,33.1200000000000,64.8600000000000,27.8400000000000,17.4600000000000]; % 风速大小 FS_num = [10.7100000000000,10.8000000000000,10.8300000000000,10.3350000000000,10.7700000000000,10.6050000000000,9.64500000000000,8.95500000000000,9.49500000000000,9.84000000000000,9.94500000000000,10.0500000000000,9.97500000000000,10.3800000000000,10.2900000000000,10.2750000000000,10.3350000000000,10.5150000000000,10.2300000000000,9.55500000000000,10.5750000000000,10.5900000000000,10.5450000000000,10.6500000000000]; % 电负荷 P_load_e = [1086.76000000000,1052.42000000000,1044.34000000000,1057.47000000000,1128.17000000000,1225.13000000000,1367.54000000000,1422.08000000000,1443.29000000000,1464.50000000000,1355.42000000000,1338.25000000000,1326.13000000000,1207.96000000000,1207.96000000000,1214.02000000000,1328.15000000000,1346.33000000000,1334.21000000000,1308.96000000000,1266.54000000000,1237.25000000000,1170.59000000000,1128.17000000000]; % 热负荷 P_load_h = [1134.23000000000,1236.24000000000,1257.45000000000,1254.42000000000,1297.85000000000,1207.96000000000,1184.73000000000,1295.83000000000,1032.22000000000,923.140000000000,872.640000000000,821.130000000000,882.740000000000,905.970000000000,842.340000000000,839.310000000000,938.290000000000,1057.47000000000,1065.55000000000,1090.80000000000,1065.55000000000,1061.51000000000,1050.40000000000,1061.51000000000]; % 冷负荷 P_load_c = [503.280000000000,447.840000000000,450.720000000000,471.600000000000,479.520000000000,408.240000000000,441.360000000000,432.720000000000,398.160000000000,426.240000000000,481.680000000000,501.120000000000,524.160000000000,501.840000000000,492.480000000000,522,456.480000000000,442.800000000000,491.760000000000,496.800000000000,466.560000000000,447.840000000000,468.720000000000,460.080000000000]; % 上网购电价格,采用分时电价 C_e_buy = [0.47*ones(1,6),1.24*ones(1,7),0.89*ones(1,6),1.24*ones(1,5)]; % 上网购气价格,天然气的价格是 2.46或 1.57元/立方米,折合成单位热值的价格为 0.348 元/(k·Wh),采用分时气价; C_g_buy = [2.46*ones(1,6),1.57*ones(1,7),2.46*ones(1,6),1.57*ones(1,5)]; %% 风、光机组设备模型 % 光伏机组模型 S_PV = 10000; % 光伏面积 % 1:计光伏发电功率 P_pv_max = 0.001*0.157*S_PV*GZ_num; % 光伏发电效率为0.157,(光照强度已载入),0.001是指将光照强度换单位:w/m^2转换成kw/m2 % 2:计光伏运维成本 PV_om_fix = 0.02*0.15*S_PV; % 固定运维成本,按天结,如设备清灰这样的人工费,一平米折合约0.02*0.15元 PV_om_work = 0.039*sum(P_pv_max); % 可变运维成本,与发电量有关,运维系数为:0.039元/kw PV_om = PV_om_fix+PV_om_work; % 总运维成本 % 风电机组模型 for i=1:24 % 风机,单台额定2MW,切入风速3,额定风速12,切出风速20 if 3<=FS_num(i) && FS_num(i)<=12 Pe_swind(i)=222.2*(FS_num(i)-3); % 2000=2220*(12-3),因为上限容量为2MW,所以风速大于12时满额输出 elseif 12<FS_num(i) && FS_num(i)<=20 Pe_swind(i)=2000; % 单台额定容量2MW else Pe_swind(i)=0; % 其余情况风力不发电 end end % 1:计风电发电功率 P_wt_max = Pe_swind; % 2:计风电运维成本 WT_om=0.07*sum(P_wt_max); % 风电运维总成本,运维系数为:0.07元/kw %% 各变量及常量定义 P_g_CCHP = sdpvar(1,24); % CCHP消耗天然气功率 P_CCHP_e = sdpvar(1,24); % CCHP的输出电功率 P_CCHP_h = sdpvar(1,24); % CCHP的输出热功率 P_CCHP_c = sdpvar(1,24); % CCHP的输出冷功率 P_g_GB = sdpvar(1,24); % 输入GB设备的天然气功率 P_GB_h = sdpvar(1,24); % GB设备输出的热功率 P_e_EB = sdpvar(1,24); % 输入EB设备的电功率 P_EB_h = sdpvar(1,24); % EB设备输出的热功率 P_e_EC = sdpvar(1,24); % 输入电制冷机EC的耗电功率 P_EC_c = sdpvar(1,24); % 电制冷机EC输出的制冷功率 P_e_EL = sdpvar(1,24); % 输入电解槽EL的耗电功率 P_EL_H = sdpvar(1,24); % 电解槽EL输出的产氢功率 P_H_MR = sdpvar(1,24); % 输入甲烷反应器MR的氢能功率 P_MR_g = sdpvar(1,24); % 甲烷反应器MR输出的天然气功率 P_e_CCS = sdpvar(1,24); % 输入碳捕集CCS的耗电量 C_MR_cc = sdpvar(1,24); % 碳捕集CCS输出的碳捕集量(等于MR所用的二氧化碳量,单位为t) P_wt_e = sdpvar(1,24); % 风电功率 P_pv_e = sdpvar(1,24); % 光伏功率 P_buy_e = sdpvar(1,24); % 购电功率 P_buy_g = sdpvar(1,24); % 购气功率 % 多元储能部分(电ES1、热ES2、冷ES3) P_ES1_cha = sdpvar(1,24); P_ES2_cha = sdpvar(1,24); P_ES3_cha = sdpvar(1,24); % 充放功率 P_ES1_dis = sdpvar(1,24); P_ES2_dis = sdpvar(1,24); P_ES3_dis = sdpvar(1,24); % 各储能的实时容量状态 SOC_1 = sdpvar(1,24); SOC_2 = sdpvar(1,24); SOC_3 = sdpvar(1,24); % 充放标志二进制变量 B_ES1_cha = binvar(1,24); B_ES2_cha = binvar(1,24); B_ES3_cha = binvar(1,24); % 充、放标志 B_ES1_dis = binvar(1,24); B_ES2_dis = binvar(1,24); B_ES3_dis = binvar(1,24); %% 约束条件 Constraints=[]; Constraints=[Constraints, P_CCHP_e==0.73*P_g_CCHP, % CCHP的气-电能量转换约束 P_CCHP_h==0.35*P_g_CCHP, % CCHP的气-热能量转换约束 P_CCHP_c==0.28*P_g_CCHP, % CCHP的气-冷能量转换约束 0<=P_g_CCHP<=1200, % CCHP消耗的气功率上下限约束 -0.2*1200<=P_g_CCHP(2:24)-P_g_CCHP(1:23)<=0.2*1200, % CCHP的爬坡约束(1-24时段) ]; Constraints=[Constraints, P_GB_h==0.91*P_g_GB, % GB的气-热能量转换约束 0<=P_g_GB<=800, % GB的出力上下限约束 -0.2*800<=P_g_GB(2:24)-P_g_GB(1:23)<=0.2*800, % GB的爬坡约束(1-24时段) ]; Constraints=[Constraints, P_EB_h==1.86*P_e_EB, % EB的电-热能量转换约束 0<=P_e_EB<=600, % EB的出力上下限约束 -0.2*600<=P_e_EB(2:24)-P_e_EB(1:23)<=0.2*600, % EB的爬坡约束(1-24时段) ]; Constraints=[Constraints, P_EC_c==0.73*P_e_EC, % EC的电-冷的约束关系 0<=P_e_EC<=500, % EC上下限约束 -0.2*500<=P_e_EC(2:24)-P_e_EC(1:23)<=0.2*500, % EC的爬坡约束(1-24时段) ]; Constraints=[Constraints, P_EL_H==0.87*P_e_EL, % EL(电解槽)的电-氢能量转换约束 0<=P_e_EL<=500, % EL的消耗电功率的上下限约束 -0.2*500<=P_e_EL(2:24)-P_e_EL(1:23)<=0.2*500, % EL的爬坡约束(1-24时段) ]; Constraints=[Constraints, P_MR_g==0.63*P_H_MR, % MR(甲烷反应器)的氢-气能量转换约束 0<=P_H_MR<=350, % MR消耗的氢功率的上下限约束 -0.2*350<=P_H_MR(2:24)-P_H_MR(1:23)<=0.2*350, % MR的爬坡约束(1-24时段) ]; % 带P2g-CCS协同运行部分 Constraints=[Constraints, C_MR_cc==1.06*P_MR_g, % CCS捕捉到的CO2与其输出的天然气功率的关系 P_e_CCS==0.55*C_MR_cc, % CCS碳捕捉所耗的电能与捕捉到CO2的质量之间的关系 0<=C_MR_cc<=500, % CCS碳捕集捕获能力上下限约束 -0.2*500<=C_MR_cc(2:24)-C_MR_cc(1:23)<=0.2*500, % CCS的出力爬坡约束(1-24时段) 0<=P_e_CCS<=500, % CCS设备的耗电功率上下限约束 ]; Constraints=[Constraints, 0<=P_ES1_cha<=B_ES1_cha*0.5*450, % 储电设备的最大充电功率约束 0<=P_ES2_cha<=B_ES2_cha*0.5*500, % 储热设备的最大充热功率约束 0<=P_ES3_cha<=B_ES3_cha*0.5*350, % 储冷设备的最大充气功率约束 0<=P_ES1_dis<=B_ES1_dis*0.5*450, % 储电设备的最大放电功率约束 0<=P_ES2_dis<=B_ES2_dis*0.5*500, % 储热设备的最大放热功率约束 0<=P_ES3_dis<=B_ES3_dis*0.5*350, % 储冷设备的最大放气功率约束 SOC_1(1)==0.3*450, % 储电设备的初始容量 SOC_2(1)==0.3*500, % 储热设备的初始容量 SOC_3(1)==0.3*350, % 储冷设备的初始容量 % 始末状态守恒约束 SOC_1(24)==SOC_1(1), SOC_2(24)==SOC_2(1), SOC_3(24)==SOC_3(1), % 充放状态唯一 B_ES1_cha+B_ES1_dis<=1, B_ES2_cha+B_ES2_dis<=1, B_ES3_cha+B_ES3_dis<=1, % 储能容量上下限约束 0.2*450<=SOC_1<=0.8*450, 0.2*500<=SOC_2<=0.8*500, 0.2*350<=SOC_3<=0.8*350, % 储能容量变化约束 SOC_1(2:24)==SOC_1(1:23)+0.95*P_ES1_cha(2:24)-P_ES1_dis(2:24)/0.95, SOC_2(2:24)==SOC_2(1:23)+0.95*P_ES2_cha(2:24)-P_ES2_dis(2:24)/0.95, SOC_3(2:24)==SOC_3(1:23)+0.95*P_ES3_cha(2:24)-P_ES3_dis(2:24)/0.95, ]; Constraints=[Constraints, 0.53*P_wt_max<=P_wt_e<=P_wt_max, % 风电功率 0.67*P_pv_max<=P_pv_e<=P_pv_max, % 光伏功率 0<=P_buy_e<=2000, % 购电功率 0<=P_buy_g<=2000, % 购气功率 ]; Constraints=[Constraints, P_buy_e+P_wt_e+P_pv_e+P_CCHP_e+P_ES1_dis==P_load_e+P_e_EB+P_e_EL+P_e_CCS+P_e_EC+P_ES1_cha, % 电功率平衡约束 P_CCHP_h+P_GB_h+P_EB_h+P_ES2_dis==P_load_h+P_ES2_cha, % 热功率平衡约束 P_EC_c+P_CCHP_c+P_ES3_dis==P_load_c+P_ES3_cha,% 冷功率平衡约束 P_buy_g+P_MR_g==P_g_GB+P_g_CCHP, % 气功率平衡约束 P_EL_H==P_H_MR, % 氢功率平衡约束 ]; %% 阶梯式碳交易机制 % 碳排放权配额模型 E_e_buy = 0.728*sum(P_buy_e); % 购电配额 E_CCHP = 0.102*3.6*sum(P_CCHP_h+6/3.6*P_CCHP_e+6/3.6*P_CCHP_c); % CCHP配额(产生CO2的机组) E_GB = 0.102*3.6*sum(P_GB_h); % GB配额(产生CO2的机组) E_IES = E_e_buy+E_CCHP+E_GB; % IES总碳排放配额 E1 = 0.728*(P_buy_e)+0.102*3.6*(P_CCHP_h+6/3.6*P_CCHP_e+6/3.6*P_CCHP_c)+0.102*3.6*(P_GB_h); % 细化每小时碳排放配额 % 实际碳排放模型 E_e_buy_a = 1.08*sum(P_buy_e); % 实际购电产生的等价CO2 E_CCHP_a = 0.789*sum(P_CCHP_h+6/3.6*P_CCHP_e+6/3.6*P_CCHP_c); % 实际CCHP运行过程产生的CO2,0.789kg/kWh E_GB_a = 0.25*sum(P_GB_h); % 实际GB运行过程产生的CO2,0.25kg/kWh E_MR_a = 0.91*sum(P_MR_g); % 实际甲烷生成器MR减少的碳排放(合成天然气需要的CO2) E = E_e_buy_a+E_CCHP_a+E_GB_a-E_MR_a-E_IES; % 实际IES总碳排放 E2 = 1.58*(P_buy_e)+0.789*(P_CCHP_h+6/3.6*P_CCHP_e+6/3.6*P_CCHP_c)+0.25*(P_GB_h)-0.9*(P_MR_g)-E1; % 细化每小时实际碳排放 % 阶梯碳交易成本(分段线性化) E_v = sdpvar(1,5); % 每段区间内的长度,分为5段,每段长度是2000 lamda = 0.268; % 碳交易基价:0.268元/kg Constraints=[Constraints, E==sum(E_v), % 总长度等于E 0<=E_v(1:4)<=2000, % 除了最后一段,每段区间长度小于等于2000 0<=E_v(5)]; Constraints=[Constraints,C_MR_cc<=E2]; % 每个时刻的二氧化碳捕获量必须小于或等于实际碳排放量(超过捕获限制的二氧化碳将释放到大自然) % 碳交易成本 C_CO2=0; for v=1:5 C_CO2=C_CO2+(lamda+(v-1)*0.25*lamda)*E_v(v); end % 机组运维成本 C_om=0; for t=1:24 C_om=C_om+P_g_CCHP(t)*0.04+P_g_GB(t)*0.025+P_e_EB(t)*0.021+P_e_EC(t)*0.028+P_e_EL(t)*0.023+P_H_MR(t)*0.031+C_MR_cc(t)*0.012+... 0.022*(P_ES1_cha(1,t)+P_ES1_dis(1,t))+0.022*(P_ES2_cha(1,t)+P_ES2_dis(1,t))+0.022*(P_ES3_cha(1,t)+P_ES3_dis(1,t)); end C_om=C_om+PV_om+WT_om; % 加上风、光机组运维成本 % 购能成本(电、气) Cost_e=0; Cost_g=0; for t=1:24 Cost_e=Cost_e+C_e_buy(t)*P_buy_e(t)'; % 购电成本 end for t=1:24 Cost_g=Cost_g+C_g_buy(t)*P_buy_g(t)'; % 购气成本 end Cost_buy=Cost_e+Cost_g; % (购电+购气) % 弃风弃光成本 Cost_WT=0; Cost_PV=0; for t=1:24 Cost_WT=Cost_WT+0.927.*(P_wt_max(t)-P_wt_e(t))'; % 弃风成本 end for t=1:24 Cost_PV=Cost_PV+0.927.*(P_pv_max(t)-P_pv_e(t))'; % 弃光成本 end Cost_FG=Cost_WT+Cost_PV; %% 总目标函数 obj = Cost_buy+C_om+C_CO2+Cost_FG; % 购能成本+运维成本+环境成本+弃风弃光 %% 模型求解 ops=sdpsettings('solver','cplex','verbose',0,'usex0',0); ops.cplex.mip.tolerances.mipgap=1e-6; result=optimize(Constraints,obj,ops); Cost_F=double(obj); display(['通过Yalmip求得的日前最优规划值为(总成本/元 ) : ', num2str(Cost_F)]); Cost_E_buy=value(Cost_e); display(['购电成本/元 : ', num2str(Cost_E_buy)]); Cost_Gas_buy=value(Cost_g); display(['购气成本/元 : ', num2str(Cost_Gas_buy)]); Cost_C_om=value(C_om); display(['运维成本/元 : ', num2str(Cost_C_om)]); Cost_CO2_trade=value(C_CO2); display(['碳交易成本/元 : ', num2str(Cost_CO2_trade)]); Cost_Q_WT=value(Cost_WT); display(['总弃风成本/元 : ', num2str(Cost_Q_WT)]); Cost_Q_PV=value(Cost_PV); display(['总弃光成本/元 : ', num2str(Cost_Q_PV)]); disp(['---------------新能源机组运行结果--------------']); disp(['风能利用率 : ', num2str(sum(value(P_wt_e))/sum(P_wt_max)*100),' %']); Cost_Cost_WT1=value(0.01*(sum(P_wt_max)-sum(value(P_wt_e)))); display(['风电消纳量/MWh : ', num2str(Cost_Cost_WT1)]); disp(['光伏利用率 : ', num2str(sum(value(P_pv_e))/sum(P_pv_max)*100),' %']); Cost_Cost_PV1=value(0.01*((sum(P_pv_max)-sum(value(P_pv_e))))); display(['光电消纳量/MWh : ', num2str(Cost_Cost_PV1)]); disp(['---------------外部联络线交互结果--------------']); Cost_Cost_e=value(P_buy_e); display(['电网联络线交互总功率/kWh : ', num2str(sum(Cost_Cost_e))]); Cost_Cost_g=value(P_buy_g); display(['天然气网联络线交互总功率/kWh : ', num2str(sum(Cost_Cost_g))]); disp(['--------------计机组运行碳排放量-------------']); Cost_Cost_E2=value(E2); display(['总系统碳排放量/t : ', num2str(sum(Cost_Cost_E2))]); %% 日前调度结果存放 P_buy_e_save = [double(P_buy_e')]; % 购电功率(电出力) P_buy_g_save = [double(P_buy_g')]; % 购气功率(气出力) P_g_CCHP_save = [double(P_g_CCHP')]; % CCHP运行功率 P_CCHP_e_save = [double(P_CCHP_e')]; % CCHP的电出力 P_CCHP_h_save = [double(P_CCHP_h')]; % CCHP的热出力 P_CCHP_c_save = [double(P_CCHP_c')]; % CCHP的冷出力 P_GB_h_save = [double(P_GB_h')]; % 燃气锅炉的热出力 P_EB_h_save = [double(P_EB_h')]; % 电锅炉的热出力 P_EC_c_save = [double(P_EC_c')]; % 电制冷机的冷出力 P_EL_H_save = [double(P_EL_H')]; % 电解槽的氢出力 P_MR_g_save = [double(P_MR_g')]; % 甲烷反应器的气出力 %% 画图 figure(1); % 电功率平衡 Figure_E_in=[P_buy_e', P_wt_e', P_pv_e', P_CCHP_e',P_ES1_dis']; bar(Figure_E_in,'stacked'); hold on Figure_E_out=[-P_ES1_cha',-P_e_EB',-P_e_EL',-P_e_CCS',-P_e_EC']; a=bar(Figure_E_out,'stacked'); a(3).FaceColor = [.1 .7 .3]; a(4).FaceColor = [.7 .5 .3]; a(5).FaceColor = [.8 .8 .3]; plot(P_load_e','-g*'); xlabel('时间/h'); ylabel('功率/kw'); title('电功率平衡'); legend('上网电量','风电机组','光伏机组','CCHP机组','储能放电','储能充电','电锅炉','电解槽','碳捕集','电制冷机','电负荷'); grid on; axis([0 25,-2000,3500]) set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'}) figure(2) % 热功率平衡 Figure_H_in=[P_EB_h',P_GB_h',P_CCHP_h',P_ES2_dis']; bar(Figure_H_in,'stacked'); hold on Figure_H_out=[-P_ES2_cha']; b=bar(Figure_H_out,'stacked'); plot(P_load_h','-r*'); xlabel('时间/h'); ylabel('功率/kw'); title('热功率平衡'); legend('电锅炉','燃气锅炉','CCHP机组','储能放热','储能充热','热负荷'); grid on; axis([0 25,-500,1500]) set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'}) figure(3) % 冷功率平衡 Figure_C_in=[P_EC_c',P_CCHP_c',P_ES3_dis']; bar(Figure_C_in,'stacked'); c1=bar(Figure_C_in,'stacked'); hold on Figure_C_out=[-P_ES3_cha']; c=bar(Figure_C_out,'stacked'); plot(P_load_c','-b*'); xlabel('时间/h'); ylabel('功率/kw'); title('冷功率平衡'); legend('电制冷机','CCHP机组','储能放冷','储能充冷','冷负荷'); grid on; axis([0 25,-200,700]) set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'}) figure(4) x=1:24; plot(x,P_load_e,'-g*'); hold on plot(x,P_load_h,'-r*'); hold on plot(x,P_load_c,'-b*'); ylabel('负荷/kW') xlabel('时间/h') title('电、热、冷负荷曲线'); legend('电功率','热功率','冷功率'); axis([0 25,0,1800]) grid on set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'}) figure(5) x1=1:24; plot(x1,P_wt_max,'--bo'); hold on plot(x1,P_pv_max,'--ro'); hold on plot(x1,value(P_wt_e),'-b*'); hold on plot(x1,value(P_pv_e),'-r*'); hold on xlabel('时间/h') ylabel('功率/kW') title('可再生能源消纳水平(日前)'); legend('风电预测出力','光伏预测出力','光伏出力功率','风电出力功率'); axis([0 25,0,2500]) grid on set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'}) figure(6) Q_N=double(E2); Q_CC=double(C_MR_cc); Q_CN=double(E2-C_MR_cc); bar([Q_N',Q_CC']) hold on plot(Q_CN,'-g*'); xlabel('时段'); ylabel('二氧化碳量/t'); legend('碳排放量','碳捕集量','碳封存量'); title('碳轨迹结果图(日前)'); axis([0 25,-100,800]) grid on set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'})
10-25
检查以下代码,验证逻辑性,指出错误的地方:%% 综合能源系统-日前优化调度模型 % 电制氢(P2G)、碳捕集(CCS) % 阶梯式碳交易机制 clc clear %% 输入原始数据, 光照强度:w/m^2, 风速:m/s, 电热冷负荷:kw % 光照强度 GZ_num = [31.9200000000000,44.7000000000000,43.3800000000000,63.6600000000000,104.520000000000,537.360000000000,694.620000000000,823.380000000000,913.260000000000,1069.38000000000,1134.66000000000,1150.68000000000,1120.56000000000,1148.82000000000,1131.90000000000,1105.38000000000,1063.14000000000,944.460000000000,511.560000000000,95.4600000000000,33.1200000000000,64.8600000000000,27.8400000000000,17.4600000000000]; % 风速大小 FS_num = [10.7100000000000,10.8000000000000,10.8300000000000,10.3350000000000,10.7700000000000,10.6050000000000,9.64500000000000,8.95500000000000,9.49500000000000,9.84000000000000,9.94500000000000,10.0500000000000,9.97500000000000,10.3800000000000,10.2900000000000,10.2750000000000,10.3350000000000,10.5150000000000,10.2300000000000,9.55500000000000,10.5750000000000,10.5900000000000,10.5450000000000,10.6500000000000]; % 电负荷 P_load_e = [1086.76000000000,1052.42000000000,1044.34000000000,1057.47000000000,1128.17000000000,1225.13000000000,1367.54000000000,1422.08000000000,1443.29000000000,1464.50000000000,1355.42000000000,1338.25000000000,1326.13000000000,1207.96000000000,1207.96000000000,1214.02000000000,1328.15000000000,1346.33000000000,1334.21000000000,1308.96000000000,1266.54000000000,1237.25000000000,1170.59000000000,1128.17000000000]; % 热负荷 P_load_h = [1134.23000000000,1236.24000000000,1257.45000000000,1254.42000000000,1297.85000000000,1207.96000000000,1184.73000000000,1295.83000000000,1032.22000000000,923.140000000000,872.640000000000,821.130000000000,882.740000000000,905.970000000000,842.340000000000,839.310000000000,938.290000000000,1057.47000000000,1065.55000000000,1090.80000000000,1065.55000000000,1061.51000000000,1050.40000000000,1061.51000000000]; % 冷负荷 P_load_c = [503.280000000000,447.840000000000,450.720000000000,471.600000000000,479.520000000000,408.240000000000,441.360000000000,432.720000000000,398.160000000000,426.240000000000,481.680000000000,501.120000000000,524.160000000000,501.840000000000,492.480000000000,522,456.480000000000,442.800000000000,491.760000000000,496.800000000000,466.560000000000,447.840000000000,468.720000000000,460.080000000000]; % 上网购电价格,采用分时电价 C_e_buy = [0.47*ones(1,6),1.24*ones(1,7),0.89*ones(1,6),1.24*ones(1,5)]; % 上网购气价格,天然气的价格是 2.46或 1.57元/立方米,折合成单位热值的价格为 0.348 元/(k·Wh),采用分时气价; C_g_buy = [2.46*ones(1,6),1.57*ones(1,7),2.46*ones(1,6),1.57*ones(1,5)]; %% 风、光机组设备模型 % 光伏机组模型 S_PV = 10000; % 光伏面积 % 1:计光伏发电功率 P_pv_max = 0.001*0.157*S_PV*GZ_num; % 光伏发电效率为0.157,(光照强度已载入),0.001是指将光照强度换单位:w/m^2转换成kw/m2 % 2:计光伏运维成本 PV_om_fix = 0.02*0.15*S_PV; % 固定运维成本,按天结,如设备清灰这样的人工费,一平米折合约0.02*0.15元 PV_om_work = 0.039*sum(P_pv_max); % 可变运维成本,与发电量有关,运维系数为:0.039元/kw PV_om = PV_om_fix+PV_om_work; % 总运维成本 % 风电机组模型 for i=1:24 % 风机,单台额定2MW,切入风速3,额定风速12,切出风速20 if 3<=FS_num(i) && FS_num(i)<=12 Pe_swind(i)=222.2*(FS_num(i)-3); % 2000=2220*(12-3),因为上限容量为2MW,所以风速大于12时满额输出 elseif 12<FS_num(i) && FS_num(i)<=20 Pe_swind(i)=2000; % 单台额定容量2MW else Pe_swind(i)=0; % 其余情况风力不发电 end end % 1:计风电发电功率 P_wt_max = Pe_swind; % 2:计风电运维成本 WT_om=0.07*sum(P_wt_max); % 风电运维总成本,运维系数为:0.07元/kw %% 各变量及常量定义 P_g_CCHP = sdpvar(1,24); % CCHP消耗天然气功率 P_CCHP_e = sdpvar(1,24); % CCHP的输出电功率 P_CCHP_h = sdpvar(1,24); % CCHP的输出热功率 P_CCHP_c = sdpvar(1,24); % CCHP的输出冷功率 P_g_GB = sdpvar(1,24); % 输入GB设备的天然气功率 P_GB_h = sdpvar(1,24); % GB设备输出的热功率 P_e_EB = sdpvar(1,24); % 输入EB设备的电功率 P_EB_h = sdpvar(1,24); % EB设备输出的热功率 P_e_EC = sdpvar(1,24); % 输入电制冷机EC的耗电功率 P_EC_c = sdpvar(1,24); % 电制冷机EC输出的制冷功率 P_e_EL = sdpvar(1,24); % 输入电解槽EL的耗电功率 P_EL_H2 = sdpvar(1,24); % 电解槽EL输出的产氢功率 P_H2_MR = sdpvar(1,24); % 输入甲烷反应器MR的氢能功率 P_MR_g = sdpvar(1,24); % 甲烷反应器MR输出的天然气功率 P_e_CCS = sdpvar(1,24); % 输入碳捕集CCS的耗电量 C_MR_CO2 = sdpvar(1,24); % 碳捕集CCS输出的碳捕集量(等于MR所用的二氧化碳量,单位为t) P_wt_e = sdpvar(1,24); % 风电功率 P_pv_e = sdpvar(1,24); % 光伏功率 P_buy_e = sdpvar(1,24); % 购电功率 P_buy_g = sdpvar(1,24); % 购气功率 % 多元储能部分(电ES1、热ES2、冷ES3) P_ES1_cha = sdpvar(1,24); P_ES2_cha = sdpvar(1,24); P_ES3_cha = sdpvar(1,24); % 充放功率 P_ES1_dis = sdpvar(1,24); P_ES2_dis = sdpvar(1,24); P_ES3_dis = sdpvar(1,24); % 各储能的实时容量状态 SOC_1 = sdpvar(1,24); SOC_2 = sdpvar(1,24); SOC_3 = sdpvar(1,24); % 充放标志二进制变量 B_ES1_cha = binvar(1,24); B_ES2_cha = binvar(1,24); B_ES3_cha = binvar(1,24); % 充、放标志 B_ES1_dis = binvar(1,24); B_ES2_dis = binvar(1,24); B_ES3_dis = binvar(1,24); %% 约束条件 Constraints=[]; Constraints=[Constraints, P_CCHP_e==0.74*P_g_CCHP, % CCHP的气-电能量转换约束 P_CCHP_h==0.35*P_g_CCHP, % CCHP的气-热能量转换约束 P_CCHP_c==0.28*P_g_CCHP, % CCHP的气-冷能量转换约束 0<=P_g_CCHP<=1200, % CCHP消耗的气功率上下限约束 -0.2*1200<=P_g_CCHP(2:24)-P_g_CCHP(1:23)<=0.2*1200, % CCHP的爬坡约束(1-24时段) ]; Constraints=[Constraints, P_GB_h==0.91*P_g_GB, % GB的气-热能量转换约束 0<=P_g_GB<=800, % GB的出力上下限约束 -0.2*800<=P_g_GB(2:24)-P_g_GB(1:23)<=0.2*800, % GB的爬坡约束(1-24时段) ]; Constraints=[Constraints, P_EB_h==1.56*P_e_EB, % EB的电-热能量转换约束 0<=P_e_EB<=600, % EB的出力上下限约束 -0.2*600<=P_e_EB(2:24)-P_e_EB(1:23)<=0.2*600, % EB的爬坡约束(1-24时段) ]; Constraints=[Constraints, P_EC_c==0.73*P_e_EC, % EC的电-冷的约束关系 0<=P_e_EC<=500, % EC上下限约束 -0.2*500<=P_e_EC(2:24)-P_e_EC(1:23)<=0.2*500, % EC的爬坡约束(1-24时段) ]; Constraints=[Constraints, P_EL_H2==0.67*P_e_EL, % EL(电解槽)的电-氢能量转换约束 0<=P_e_EL<=500, % EL的消耗电功率的上下限约束 -0.2*500<=P_e_EL(2:24)-P_e_EL(1:23)<=0.2*500, % EL的爬坡约束(1-24时段) ]; Constraints=[Constraints, P_MR_g==0.63*P_H2_MR, % MR(甲烷反应器)的氢-气能量转换约束 0<=P_H2_MR<=350, % MR消耗的氢功率的上下限约束 -0.2*350<=P_H2_MR(2:24)-P_H2_MR(1:23)<=0.2*350, % MR的爬坡约束(1-24时段) ]; % 带P2g-CCS协同运行部分 Constraints=[Constraints, C_MR_CO2==1.06*P_MR_g, % CCS捕捉到的CO2与其输出的天然气功率的关系 P_e_CCS==0.55*C_MR_CO2, % CCS碳捕捉所耗的电能与捕捉到CO2的质量之间的关系 0<=C_MR_CO2<=500, % CCS碳捕集捕获能力上下限约束 -0.2*500<=C_MR_CO2(2:24)-C_MR_CO2(1:23)<=0.2*500, % CCS的出力爬坡约束(1-24时段) ]; Constraints=[Constraints, 0<=P_ES1_cha<=B_ES1_cha*0.5*450, % 储电设备的最大充电功率约束 0<=P_ES2_cha<=B_ES2_cha*0.5*500, % 储热设备的最大充热功率约束 0<=P_ES3_cha<=B_ES3_cha*0.5*350, % 储冷设备的最大充气功率约束 0<=P_ES1_dis<=B_ES1_dis*0.5*450, % 储电设备的最大放电功率约束 0<=P_ES2_dis<=B_ES2_dis*0.5*500, % 储热设备的最大放热功率约束 0<=P_ES3_dis<=B_ES3_dis*0.5*350, % 储冷设备的最大放气功率约束 SOC_1(1)==0.3*450, % 储电设备的初始容量 SOC_2(1)==0.3*500, % 储热设备的初始容量 SOC_3(1)==0.3*350, % 储冷设备的初始容量 % 始末状态守恒约束 SOC_1(24)==SOC_1(1), SOC_2(24)==SOC_2(1), SOC_3(24)==SOC_3(1), % 充放状态唯一 B_ES1_cha+B_ES1_dis<=1, B_ES2_cha+B_ES2_dis<=1, B_ES3_cha+B_ES3_dis<=1, % 储能容量上下限约束 0.2*450<=SOC_1<=0.8*450, 0.2*500<=SOC_2<=0.8*500, 0.2*350<=SOC_3<=0.8*350, % 储能容量变化约束 SOC_1(2:24) == SOC_1(1:23) + 0.95*P_ES1_cha(1:23) - P_ES1_dis(1:23)/0.95, SOC_2(2:24) == SOC_2(1:23) + 0.95*P_ES2_cha(1:23) - P_ES2_dis(1:23)/0.95, SOC_3(2:24) == SOC_3(1:23) + 0.95*P_ES3_cha(1:23) - P_ES3_dis(1:23)/0.95, ]; Constraints=[Constraints, 0.53*P_wt_max<=P_wt_e<=P_wt_max, % 风电功率 0.67*P_pv_max<=P_pv_e<=P_pv_max, % 光伏功率 0<=P_buy_e<=2000, % 购电功率 0<=P_buy_g<=2000, % 购气功率 ]; Constraints=[Constraints, P_buy_e+P_wt_e+P_pv_e+P_CCHP_e+P_ES1_dis==P_load_e+P_e_EB+P_e_EL+P_e_CCS+P_e_EC+P_ES1_cha, % 电功率平衡约束 P_CCHP_h+P_GB_h+P_EB_h+P_ES2_dis==P_load_h+P_ES2_cha, % 热功率平衡约束 P_EC_c+P_CCHP_c+P_ES3_dis==P_load_c+P_ES3_cha,% 冷功率平衡约束 P_buy_g+P_MR_g==P_g_GB+P_g_CCHP, % 气功率平衡约束 P_EL_H2==P_H2_MR, % 氢功率平衡约束 ]; %% 阶梯式碳交易机制 % 碳排放权配额模型 E_e_buy = 0.728*sum(P_buy_e); % 购电配额 E_CCHP = 0.102*3.6*sum(P_CCHP_h+6/3.6*P_CCHP_e+6/3.6*P_CCHP_c); % CCHP配额(产生CO2的机组) E_GB = 0.102*3.6*sum(P_GB_h); % GB配额(产生CO2的机组) E_IES = E_e_buy+E_CCHP+E_GB; % IES总碳排放配额 E1 = 0.728*(P_buy_e)+0.102*3.6*(P_CCHP_h+6/3.6*P_CCHP_e+6/3.6*P_CCHP_c)+0.102*3.6*(P_GB_h); % 细化每小时碳排放配额 % 实际碳排放模型 E_e_buy_a = 1.08*sum(P_buy_e); % 实际购电产生的等价CO2 E_CCHP_a = 0.789*sum(P_CCHP_h+6/3.6*P_CCHP_e+6/3.6*P_CCHP_c); % 实际CCHP运行过程产生的CO2,0.789kg/kWh E_GB_a = 0.25*sum(P_GB_h); % 实际GB运行过程产生的CO2,0.25kg/kWh E_MR_a = 0.91*sum(P_MR_g); % 实际甲烷生成器MR减少的碳排放(合成天然气需要的CO2) E = E_e_buy_a+E_CCHP_a+E_GB_a-E_MR_a-E_IES; % 实际IES总碳排放 E2 = 1.58*(P_buy_e)+0.789*(P_CCHP_h+6/3.6*P_CCHP_e+6/3.6*P_CCHP_c)+0.25*(P_GB_h)-0.91*(P_MR_g)-E1; % 细化每小时实际碳排放 % 阶梯碳交易成本(分段线性化) E_v = sdpvar(1,5); % 每段区间内的长度,分为5段,每段长度是2000 lamda = 0.268; % 碳交易基价:0.268元/kg Constraints=[Constraints, E==sum(E_v), % 总长度等于E 0<=E_v(1:4)<=2000, % 除了最后一段,每段区间长度小于等于2000 0<=E_v(5)]; E_actual_perhour = 1.58*P_buy_e + 0.789*(P_CCHP_h+6/3.6*P_CCHP_e+6/3.6*P_CCHP_c) + 0.25*P_GB_h; Constraints = [Constraints,C_MR_CO2 <= E_actual_perhour]; % 每个时刻的二氧化碳捕获量必须小于或等于实际碳排放量(超过捕获限制的二氧化碳将释放到大自然) % 碳交易成本 C_CO2=0; for v=1:5 C_CO2=C_CO2+(lamda+(v-1)*0.25*lamda)*E_v(v); end % 机组运维成本 C_om=0; for t=1:24 C_om=C_om+P_g_CCHP(t)*0.04+P_g_GB(t)*0.025+P_e_EB(t)*0.021+P_e_EC(t)*0.028+P_e_EL(t)*0.023+P_H2_MR(t)*0.031+C_MR_CO2(t)*0.012+... 0.022*(P_ES1_cha(1,t)+P_ES1_dis(1,t))+0.022*(P_ES2_cha(1,t)+P_ES2_dis(1,t))+0.022*(P_ES3_cha(1,t)+P_ES3_dis(1,t)); end C_om=C_om+PV_om+WT_om; % 加上风、光机组运维成本 % 购能成本(电、气) Cost_e=0; Cost_g=0; for t=1:24 Cost_e=Cost_e+C_e_buy(t)*P_buy_e(t)'; % 购电成本 end for t=1:24 Cost_g=Cost_g+C_g_buy(t)*P_buy_g(t)'; % 购气成本 end Cost_buy=Cost_e+Cost_g; % (购电+购气) % 弃风弃光成本 Cost_WT=0; Cost_PV=0; for t=1:24 Cost_WT=Cost_WT+0.727.*(P_wt_max(t)-P_wt_e(t))'; % 弃风成本 end for t=1:24 Cost_PV=Cost_PV+0.727.*(P_pv_max(t)-P_pv_e(t))'; % 弃光成本 end Cost_FG=Cost_WT+Cost_PV; %% 总目标函数 obj = Cost_buy+C_om+C_CO2+Cost_FG; % 购能成本+运维成本+环境成本+弃风弃光 %% 模型求解 ops=sdpsettings('solver','cplex','verbose',0,'usex0',0); ops.cplex.mip.tolerances.mipgap=1e-6; result=optimize(Constraints,obj,ops); Cost_F=double(obj); display(['通过Yalmip求得的日前最优规划值为(总成本/元 ) : ', num2str(Cost_F)]); Cost_E_buy=value(Cost_e); display(['>>购电成本/元 : ', num2str(Cost_E_buy)]); Cost_Gas_buy=value(Cost_g); display(['>>购气成本/元 : ', num2str(Cost_Gas_buy)]); Cost_C_om=value(C_om); display(['>>运维成本/元 : ', num2str(Cost_C_om)]); Cost_CO2_trade=value(C_CO2); display(['>>碳交易成本/元 : ', num2str(Cost_CO2_trade)]); Cost_Q_WT=value(Cost_WT); display(['>>总弃风成本/元 : ', num2str(Cost_Q_WT)]); Cost_Q_PV=value(Cost_PV); display(['>>总弃光成本/元 : ', num2str(Cost_Q_PV)]); disp(['---------------新能源机组运行结果--------------']); disp(['>>风能利用率 : ', num2str(sum(value(P_wt_e))/sum(P_wt_max)*100),' %']); Cost_Cost_WT1=value(0.001*(sum(P_wt_max)-sum(value(P_wt_e)))); display(['>>风电消纳量/MWh : ', num2str(Cost_Cost_WT1)]); disp(['>>光伏利用率 : ', num2str(sum(value(P_pv_e))/sum(P_pv_max)*100),' %']); Cost_Cost_PV1=value(0.001*((sum(P_pv_max)-sum(value(P_pv_e))))); display(['>>光电消纳量/MWh : ', num2str(Cost_Cost_PV1)]); disp(['---------------外部联络线交互结果--------------']); Cost_Cost_e=value(P_buy_e); display(['>>电网联络线交互总功率/kWh : ', num2str(sum(Cost_Cost_e))]); Cost_Cost_g=value(P_buy_g); display(['>>天然气网联络线交互总功率/kWh : ', num2str(sum(Cost_Cost_g))]); disp(['--------------计机组碳排放量结果-------------']); Cost_Cost_E2=value(E2); display(['>>实际总碳排放量/t : ', num2str(sum(Cost_Cost_E2)/1000)]); %% 日前调度结果存放 P_buy_e_save = [double(P_buy_e')]; % 购电功率(电出力) P_buy_g_save = [double(P_buy_g')]; % 购气功率(气出力) P_CCHP_e_save = [double(P_CCHP_e')]; % CCHP的电出力 P_CCHP_h_save = [double(P_CCHP_h')]; % CCHP的热出力 P_CCHP_c_save = [double(P_CCHP_c')]; % CCHP的冷出力 P_GB_h_save = [double(P_GB_h')]; % 燃气锅炉的热出力 P_EB_h_save = [double(P_EB_h')]; % 电锅炉的热出力 P_EC_c_save = [double(P_EC_c')]; % 电制冷机的冷出力 P_EL_H2_save = [double(P_EL_H2')]; % 电解槽的氢出力 P_MR_g_save = [double(P_MR_g')]; % 甲烷反应器的气出力 %% 画图 figure(1); % 电功率平衡 Figure_E_in=[P_buy_e', P_wt_e', P_pv_e', P_CCHP_e',P_ES1_dis']; bar(Figure_E_in,'stacked'); hold on Figure_E_out=[-P_ES1_cha',-P_e_EC',-P_e_EB',-P_e_EL',-P_e_CCS']; a=bar(Figure_E_out,'stacked'); a(3).FaceColor = [.1 .7 .3]; a(4).FaceColor = [.7 .5 .3]; a(5).FaceColor = [.8 .8 .3]; plot(P_load_e','-g*'); xlabel('时间/h'); ylabel('功率/kW') title('电功率平衡'); legend('上网电量','风电机组','光伏机组','CCHP机组','储能放电','储能充电','电制冷机','电锅炉','电解槽','碳捕集','电负荷'); grid on; axis([0 25,-2000,3500]) set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'}) figure(2) % 热功率平衡 Figure_H_in=[P_EB_h',P_GB_h',P_CCHP_h',P_ES2_dis']; bar(Figure_H_in,'stacked'); hold on Figure_H_out=[-P_ES2_cha']; b=bar(Figure_H_out,'stacked'); plot(P_load_h','-r*'); xlabel('时间/h'); ylabel('功率/kW') title('热功率平衡'); legend('电锅炉','燃气锅炉','CCHP机组','储能放热','储能充热','热负荷'); grid on; axis([0 25,-500,1500]) set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'}) figure(3) % 冷功率平衡 Figure_C_in=[P_EC_c',P_CCHP_c',P_ES3_dis']; bar(Figure_C_in,'stacked'); c1=bar(Figure_C_in,'stacked'); hold on Figure_C_out=[-P_ES3_cha']; c=bar(Figure_C_out,'stacked'); plot(P_load_c','-b*'); xlabel('时间/h'); ylabel('功率/kW') title('冷功率平衡'); legend('电制冷机','CCHP机组','储能放冷','储能充冷','冷负荷'); grid on; axis([0 25,-200,700]) set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'}) figure(4) x=1:24; plot(x,P_load_e,'-g*'); hold on plot(x,P_load_h,'-r*'); hold on plot(x,P_load_c,'-b*'); xlabel('时间/h') ylabel('功率/kW') title('电、热、冷负荷曲线'); legend('电功率','热功率','冷功率'); axis([0 25,0,1800]) grid on set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'}) figure(5) x1=1:24; plot(x1,P_wt_max,'--bo'); hold on plot(x1,P_pv_max,'--ro'); hold on plot(x1,value(P_wt_e),'-b*'); hold on plot(x1,value(P_pv_e),'-r*'); hold on xlabel('时间/h') ylabel('功率/kW') title('可再生能源消纳水平(日前)'); legend('风电预测出力','光伏预测出力','光伏出力功率','风电出力功率'); axis([0 25,0,2500]) grid on set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'}) figure(6) Q_NU=double(E_actual_perhour); Q_CC=double(C_MR_CO2); bar([Q_NU',Q_CC']) hold on xlabel('时段'); ylabel('二氧化碳量/kg'); legend('碳排放量','碳捕集量'); title('碳轨迹结果图(日前)'); axis([0 25,-100,2000]) grid on set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'})
10-25
再次检查以下代码,验证逻辑性:%% 综合能源系统-日前优化调度模型 % 电制氢(P2G)、碳捕集(CCS) % 阶梯式碳交易机制 clc clear %% 输入原始数据, 光照强度:w/m^2, 风速:m/s, 电热冷负荷:kw % 光照强度 GZ_num = [31.9200000000000,44.7000000000000,43.3800000000000,63.6600000000000,104.520000000000,537.360000000000,694.620000000000,823.380000000000,913.260000000000,1069.38000000000,1134.66000000000,1150.68000000000,1120.56000000000,1148.82000000000,1131.90000000000,1105.38000000000,1063.14000000000,944.460000000000,511.560000000000,95.4600000000000,33.1200000000000,64.8600000000000,27.8400000000000,17.4600000000000]; % 风速大小 FS_num = [10.7100000000000,10.8000000000000,10.8300000000000,10.3350000000000,10.7700000000000,10.6050000000000,9.64500000000000,8.95500000000000,9.49500000000000,9.84000000000000,9.94500000000000,10.0500000000000,9.97500000000000,10.3800000000000,10.2900000000000,10.2750000000000,10.3350000000000,10.5150000000000,10.2300000000000,9.55500000000000,10.5750000000000,10.5900000000000,10.5450000000000,10.6500000000000]; % 电负荷 P_load_e = [1086.76000000000,1052.42000000000,1044.34000000000,1057.47000000000,1128.17000000000,1225.13000000000,1367.54000000000,1422.08000000000,1443.29000000000,1464.50000000000,1355.42000000000,1338.25000000000,1326.13000000000,1207.96000000000,1207.96000000000,1214.02000000000,1328.15000000000,1346.33000000000,1334.21000000000,1308.96000000000,1266.54000000000,1237.25000000000,1170.59000000000,1128.17000000000]; % 热负荷 P_load_h = [1134.23000000000,1236.24000000000,1257.45000000000,1254.42000000000,1297.85000000000,1207.96000000000,1184.73000000000,1295.83000000000,1032.22000000000,923.140000000000,872.640000000000,821.130000000000,882.740000000000,905.970000000000,842.340000000000,839.310000000000,938.290000000000,1057.47000000000,1065.55000000000,1090.80000000000,1065.55000000000,1061.51000000000,1050.40000000000,1061.51000000000]; % 冷负荷 P_load_c = [503.280000000000,447.840000000000,450.720000000000,471.600000000000,479.520000000000,408.240000000000,441.360000000000,432.720000000000,398.160000000000,426.240000000000,481.680000000000,501.120000000000,524.160000000000,501.840000000000,492.480000000000,522,456.480000000000,442.800000000000,491.760000000000,496.800000000000,466.560000000000,447.840000000000,468.720000000000,460.080000000000]; % 上网购电价格,采用分时电价 C_e_buy = [0.47*ones(1,6),1.24*ones(1,7),0.89*ones(1,6),1.24*ones(1,5)]; % 上网购气价格,天然气的价格是 2.46或 1.57元/立方米,折合成单位热值的价格为 0.348 元/(k·Wh),采用分时气价; C_g_buy = [2.46*ones(1,6),1.57*ones(1,7),2.46*ones(1,6),1.57*ones(1,5)]; %% 风、光机组设备模型 % 光伏机组模型 S_PV = 10000; % 光伏面积 % 1:计光伏发电功率 P_pv_max = 0.001*0.157*S_PV*GZ_num; % 光伏发电效率为0.157,(光照强度已载入),0.001是指将光照强度换单位:w/m^2转换成kw/m2 % 2:计光伏运维成本 PV_om_fix = 0.02*0.15*S_PV; % 固定运维成本,按天结,如设备清灰这样的人工费,一平米折合约0.02*0.15元 PV_om_work = 0.039*sum(P_pv_max); % 可变运维成本,与发电量有关,运维系数为:0.039元/kw PV_om = PV_om_fix+PV_om_work; % 总运维成本 % 风电机组模型 for i=1:24 % 风机,单台额定2MW,切入风速3,额定风速12,切出风速20 if 3<=FS_num(i) && FS_num(i)<=12 Pe_swind(i)=222.2*(FS_num(i)-3); % 2000=2220*(12-3),因为上限容量为2MW,所以风速大于12时满额输出 elseif 12<FS_num(i) && FS_num(i)<=20 Pe_swind(i)=2000; % 单台额定容量2MW else Pe_swind(i)=0; % 其余情况风力不发电 end end % 1:计风电发电功率 P_wt_max = Pe_swind; % 2:计风电运维成本 WT_om=0.07*sum(P_wt_max); % 风电运维总成本,运维系数为:0.07元/kw %% 各变量及常量定义 P_g_CCHP = sdpvar(1,24); % CCHP消耗天然气功率 P_CCHP_e = sdpvar(1,24); % CCHP的输出电功率 P_CCHP_h = sdpvar(1,24); % CCHP的输出热功率 P_CCHP_c = sdpvar(1,24); % CCHP的输出冷功率 P_g_GB = sdpvar(1,24); % 输入GB设备的天然气功率 P_GB_h = sdpvar(1,24); % GB设备输出的热功率 P_e_EB = sdpvar(1,24); % 输入EB设备的电功率 P_EB_h = sdpvar(1,24); % EB设备输出的热功率 P_e_EC = sdpvar(1,24); % 输入电制冷机EC的耗电功率 P_EC_c = sdpvar(1,24); % 电制冷机EC输出的制冷功率 P_e_EL = sdpvar(1,24); % 输入电解槽EL的耗电功率 P_EL_H2 = sdpvar(1,24); % 电解槽EL输出的产氢功率 P_H2_MR = sdpvar(1,24); % 输入甲烷反应器MR的氢能功率 P_MR_g = sdpvar(1,24); % 甲烷反应器MR输出的天然气功率 P_e_CCS = sdpvar(1,24); % 输入碳捕集CCS的耗电量 C_MR_CO2 = sdpvar(1,24); % 碳捕集CCS输出的碳捕集量(等于MR所用的二氧化碳量,单位为t) P_wt_e = sdpvar(1,24); % 风电功率 P_pv_e = sdpvar(1,24); % 光伏功率 P_buy_e = sdpvar(1,24); % 购电功率 P_buy_g = sdpvar(1,24); % 购气功率 % 多元储能部分(电ES1、热ES2、冷ES3) P_ES1_cha = sdpvar(1,24); P_ES2_cha = sdpvar(1,24); P_ES3_cha = sdpvar(1,24); % 充放功率 P_ES1_dis = sdpvar(1,24); P_ES2_dis = sdpvar(1,24); P_ES3_dis = sdpvar(1,24); % 各储能的实时容量状态 SOC_1 = sdpvar(1,24); SOC_2 = sdpvar(1,24); SOC_3 = sdpvar(1,24); % 充放标志二进制变量 B_ES1_cha = binvar(1,24); B_ES2_cha = binvar(1,24); B_ES3_cha = binvar(1,24); % 充、放标志 B_ES1_dis = binvar(1,24); B_ES2_dis = binvar(1,24); B_ES3_dis = binvar(1,24); %% 约束条件 Constraints=[]; Constraints=[Constraints, P_CCHP_e==0.73*P_g_CCHP, % CCHP的气-电能量转换约束 P_CCHP_h==0.35*P_g_CCHP, % CCHP的气-热能量转换约束 P_CCHP_c==0.28*P_g_CCHP, % CCHP的气-冷能量转换约束 0<=P_g_CCHP<=1200, % CCHP消耗的气功率上下限约束 -0.2*1200<=P_g_CCHP(2:24)-P_g_CCHP(1:23)<=0.2*1200, % CCHP的爬坡约束(1-24时段) ]; Constraints=[Constraints, P_GB_h==0.91*P_g_GB, % GB的气-热能量转换约束 0<=P_g_GB<=800, % GB的出力上下限约束 -0.2*800<=P_g_GB(2:24)-P_g_GB(1:23)<=0.2*800, % GB的爬坡约束(1-24时段) ]; Constraints=[Constraints, P_EB_h==1.86*P_e_EB, % EB的电-热能量转换约束 0<=P_e_EB<=600, % EB的出力上下限约束 -0.2*600<=P_e_EB(2:24)-P_e_EB(1:23)<=0.2*600, % EB的爬坡约束(1-24时段) ]; Constraints=[Constraints, P_EC_c==0.73*P_e_EC, % EC的电-冷的约束关系 0<=P_e_EC<=500, % EC上下限约束 -0.2*500<=P_e_EC(2:24)-P_e_EC(1:23)<=0.2*500, % EC的爬坡约束(1-24时段) ]; Constraints=[Constraints, P_EL_H2==0.87*P_e_EL, % EL(电解槽)的电-氢能量转换约束 0<=P_e_EL<=500, % EL的消耗电功率的上下限约束 -0.2*500<=P_e_EL(2:24)-P_e_EL(1:23)<=0.2*500, % EL的爬坡约束(1-24时段) ]; Constraints=[Constraints, P_MR_g==0.63*P_H2_MR, % MR(甲烷反应器)的氢-气能量转换约束 0<=P_H2_MR<=350, % MR消耗的氢功率的上下限约束 -0.2*350<=P_H2_MR(2:24)-P_H2_MR(1:23)<=0.2*350, % MR的爬坡约束(1-24时段) ]; % 带P2g-CCS协同运行部分 Constraints=[Constraints, C_MR_CO2==1.06*P_MR_g, % CCS捕捉到的CO2与其输出的天然气功率的关系 P_e_CCS==0.55*C_MR_CO2, % CCS碳捕捉所耗的电能与捕捉到CO2的质量之间的关系 0<=C_MR_CO2<=500, % CCS碳捕集捕获能力上下限约束 -0.2*500<=C_MR_CO2(2:24)-C_MR_CO2(1:23)<=0.2*500, % CCS的出力爬坡约束(1-24时段) ]; Constraints=[Constraints, 0<=P_ES1_cha<=B_ES1_cha*0.5*450, % 储电设备的最大充电功率约束 0<=P_ES2_cha<=B_ES2_cha*0.5*500, % 储热设备的最大充热功率约束 0<=P_ES3_cha<=B_ES3_cha*0.5*350, % 储冷设备的最大充气功率约束 0<=P_ES1_dis<=B_ES1_dis*0.5*450, % 储电设备的最大放电功率约束 0<=P_ES2_dis<=B_ES2_dis*0.5*500, % 储热设备的最大放热功率约束 0<=P_ES3_dis<=B_ES3_dis*0.5*350, % 储冷设备的最大放气功率约束 SOC_1(1)==0.3*450, % 储电设备的初始容量 SOC_2(1)==0.3*500, % 储热设备的初始容量 SOC_3(1)==0.3*350, % 储冷设备的初始容量 % 始末状态守恒约束 SOC_1(24)==SOC_1(1), SOC_2(24)==SOC_2(1), SOC_3(24)==SOC_3(1), % 充放状态唯一 B_ES1_cha+B_ES1_dis<=1, B_ES2_cha+B_ES2_dis<=1, B_ES3_cha+B_ES3_dis<=1, % 储能容量上下限约束 0.2*450<=SOC_1<=0.8*450, 0.2*500<=SOC_2<=0.8*500, 0.2*350<=SOC_3<=0.8*350, % 储能容量变化约束 SOC_1(2:24) == SOC_1(1:23) + 0.95*P_ES1_cha(1:23) - P_ES1_dis(1:23)/0.95, SOC_2(2:24) == SOC_2(1:23) + 0.95*P_ES2_cha(1:23) - P_ES2_dis(1:23)/0.95, SOC_3(2:24) == SOC_3(1:23) + 0.95*P_ES3_cha(1:23) - P_ES3_dis(1:23)/0.95, ]; Constraints=[Constraints, 0.53*P_wt_max<=P_wt_e<=P_wt_max, % 风电功率 0.67*P_pv_max<=P_pv_e<=P_pv_max, % 光伏功率 0<=P_buy_e<=2000, % 购电功率 0<=P_buy_g<=2000, % 购气功率 ]; Constraints=[Constraints, P_buy_e+P_wt_e+P_pv_e+P_CCHP_e+P_ES1_dis==P_load_e+P_e_EB+P_e_EL+P_e_CCS+P_e_EC+P_ES1_cha, % 电功率平衡约束 P_CCHP_h+P_GB_h+P_EB_h+P_ES2_dis==P_load_h+P_ES2_cha, % 热功率平衡约束 P_EC_c+P_CCHP_c+P_ES3_dis==P_load_c+P_ES3_cha,% 冷功率平衡约束 P_buy_g+P_MR_g==P_g_GB+P_g_CCHP, % 气功率平衡约束 P_EL_H2==P_H2_MR, % 氢功率平衡约束 ]; %% 阶梯式碳交易机制 % 碳排放权配额模型 E_e_buy = 0.728*sum(P_buy_e); % 购电配额 E_CCHP = 0.102*3.6*sum(P_CCHP_h+6/3.6*P_CCHP_e+6/3.6*P_CCHP_c); % CCHP配额(产生CO2的机组) E_GB = 0.102*3.6*sum(P_GB_h); % GB配额(产生CO2的机组) E_IES = E_e_buy+E_CCHP+E_GB; % IES总碳排放配额 E1 = 0.728*(P_buy_e)+0.102*3.6*(P_CCHP_h+6/3.6*P_CCHP_e+6/3.6*P_CCHP_c)+0.102*3.6*(P_GB_h); % 细化每小时碳排放配额 % 实际碳排放模型 E_e_buy_a = 1.08*sum(P_buy_e); % 实际购电产生的等价CO2 E_CCHP_a = 0.789*sum(P_CCHP_h+6/3.6*P_CCHP_e+6/3.6*P_CCHP_c); % 实际CCHP运行过程产生的CO2,0.789kg/kWh E_GB_a = 0.25*sum(P_GB_h); % 实际GB运行过程产生的CO2,0.25kg/kWh E_MR_a = 0.91*sum(P_MR_g); % 实际甲烷生成器MR减少的碳排放(合成天然气需要的CO2) E = E_e_buy_a+E_CCHP_a+E_GB_a-E_MR_a-E_IES; % 实际IES总碳排放 E2 = 1.58*(P_buy_e)+0.789*(P_CCHP_h+6/3.6*P_CCHP_e+6/3.6*P_CCHP_c)+0.25*(P_GB_h)-0.91*(P_MR_g)-E1; % 细化每小时实际碳排放 % 阶梯碳交易成本(分段线性化) E_v = sdpvar(1,5); % 每段区间内的长度,分为5段,每段长度是2000 lamda = 0.268; % 碳交易基价:0.268元/kg Constraints=[Constraints, E==sum(E_v), % 总长度等于E 0<=E_v(1:4)<=2000, % 除了最后一段,每段区间长度小于等于2000 0<=E_v(5)]; E_actual_perhour = 1.58*P_buy_e + 0.789*(P_CCHP_h+6/3.6*P_CCHP_e+6/3.6*P_CCHP_c) + 0.25*P_GB_h; Constraints = [Constraints,C_MR_CO2 <= E_actual_perhour]; % 每个时刻的二氧化碳捕获量必须小于或等于实际碳排放量(超过捕获限制的二氧化碳将释放到大自然) % 碳交易成本 C_CO2=0; for v=1:5 C_CO2=C_CO2+(lamda+(v-1)*0.25*lamda)*E_v(v); end % 机组运维成本 C_om=0; for t=1:24 C_om=C_om+P_g_CCHP(t)*0.04+P_g_GB(t)*0.025+P_e_EB(t)*0.021+P_e_EC(t)*0.028+P_e_EL(t)*0.023+P_H2_MR(t)*0.031+C_MR_CO2(t)*0.012+... 0.022*(P_ES1_cha(1,t)+P_ES1_dis(1,t))+0.022*(P_ES2_cha(1,t)+P_ES2_dis(1,t))+0.022*(P_ES3_cha(1,t)+P_ES3_dis(1,t)); end C_om=C_om+PV_om+WT_om; % 加上风、光机组运维成本 % 购能成本(电、气) Cost_e=0; Cost_g=0; for t=1:24 Cost_e=Cost_e+C_e_buy(t)*P_buy_e(t)'; % 购电成本 end for t=1:24 Cost_g=Cost_g+C_g_buy(t)*P_buy_g(t)'; % 购气成本 end Cost_buy=Cost_e+Cost_g; % (购电+购气) % 弃风弃光成本 Cost_WT=0; Cost_PV=0; for t=1:24 Cost_WT=Cost_WT+0.127.*(P_wt_max(t)-P_wt_e(t))'; % 弃风成本 end for t=1:24 Cost_PV=Cost_PV+0.127.*(P_pv_max(t)-P_pv_e(t))'; % 弃光成本 end Cost_FG=Cost_WT+Cost_PV; %% 总目标函数 obj = Cost_buy+C_om+C_CO2+Cost_FG; % 购能成本+运维成本+环境成本+弃风弃光 %% 模型求解 ops=sdpsettings('solver','cplex','verbose',0,'usex0',0); ops.cplex.mip.tolerances.mipgap=1e-6; result=optimize(Constraints,obj,ops); Cost_F=double(obj); display(['通过Yalmip求得的日前最优规划值为(总成本/元 ) : ', num2str(Cost_F)]); Cost_E_buy=value(Cost_e); display(['购电成本/元 : ', num2str(Cost_E_buy)]); Cost_Gas_buy=value(Cost_g); display(['购气成本/元 : ', num2str(Cost_Gas_buy)]); Cost_C_om=value(C_om); display(['运维成本/元 : ', num2str(Cost_C_om)]); Cost_CO2_trade=value(C_CO2); display(['碳交易成本/元 : ', num2str(Cost_CO2_trade)]); Cost_Q_WT=value(Cost_WT); display(['总弃风成本/元 : ', num2str(Cost_Q_WT)]); Cost_Q_PV=value(Cost_PV); display(['总弃光成本/元 : ', num2str(Cost_Q_PV)]); disp(['---------------新能源机组运行结果--------------']); disp(['风能利用率 : ', num2str(sum(value(P_wt_e))/sum(P_wt_max)*100),' %']); Cost_Cost_WT1=value(0.001*(sum(P_wt_max)-sum(value(P_wt_e)))); display(['风电消纳量/MWh : ', num2str(Cost_Cost_WT1)]); disp(['光伏利用率 : ', num2str(sum(value(P_pv_e))/sum(P_pv_max)*100),' %']); Cost_Cost_PV1=value(0.001*((sum(P_pv_max)-sum(value(P_pv_e))))); display(['光电消纳量/MWh : ', num2str(Cost_Cost_PV1)]); disp(['---------------外部联络线交互结果--------------']); Cost_Cost_e=value(P_buy_e); display(['电网联络线交互总功率/kWh : ', num2str(sum(Cost_Cost_e))]); Cost_Cost_g=value(P_buy_g); display(['天然气网联络线交互总功率/kWh : ', num2str(sum(Cost_Cost_g))]); disp(['--------------计机组运行碳排放量-------------']); Cost_Cost_E2=value(E2); display(['总系统碳排放量/t : ', num2str(sum(Cost_Cost_E2))]); %% 日前调度结果存放 P_buy_e_save = [double(P_buy_e')]; % 购电功率(电出力) P_buy_g_save = [double(P_buy_g')]; % 购气功率(气出力) P_g_CCHP_save = [double(P_g_CCHP')]; % CCHP运行功率 P_CCHP_e_save = [double(P_CCHP_e')]; % CCHP的电出力 P_CCHP_h_save = [double(P_CCHP_h')]; % CCHP的热出力 P_CCHP_c_save = [double(P_CCHP_c')]; % CCHP的冷出力 P_GB_h_save = [double(P_GB_h')]; % 燃气锅炉的热出力 P_EB_h_save = [double(P_EB_h')]; % 电锅炉的热出力 P_EC_c_save = [double(P_EC_c')]; % 电制冷机的冷出力 P_EL_H_save = [double(P_EL_H2')]; % 电解槽的氢出力 P_MR_g_save = [double(P_MR_g')]; % 甲烷反应器的气出力 %% 画图 figure(1); % 电功率平衡 Figure_E_in=[P_buy_e', P_wt_e', P_pv_e', P_CCHP_e',P_ES1_dis']; bar(Figure_E_in,'stacked'); hold on Figure_E_out=[-P_ES1_cha',-P_e_EB',-P_e_EL',-P_e_CCS',-P_e_EC']; a=bar(Figure_E_out,'stacked'); a(3).FaceColor = [.1 .7 .3]; a(4).FaceColor = [.7 .5 .3]; a(5).FaceColor = [.8 .8 .3]; plot(P_load_e','-g*'); xlabel('时间/h'); ylabel('功率/kw'); title('电功率平衡'); legend('上网电量','风电机组','光伏机组','CCHP机组','储能放电','储能充电','电锅炉','电解槽','碳捕集','电制冷机','电负荷'); grid on; axis([0 25,-2000,3500]) set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'}) figure(2) % 热功率平衡 Figure_H_in=[P_EB_h',P_GB_h',P_CCHP_h',P_ES2_dis']; bar(Figure_H_in,'stacked'); hold on Figure_H_out=[-P_ES2_cha']; b=bar(Figure_H_out,'stacked'); plot(P_load_h','-r*'); xlabel('时间/h'); ylabel('功率/kw'); title('热功率平衡'); legend('电锅炉','燃气锅炉','CCHP机组','储能放热','储能充热','热负荷'); grid on; axis([0 25,-500,1500]) set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'}) figure(3) % 冷功率平衡 Figure_C_in=[P_EC_c',P_CCHP_c',P_ES3_dis']; bar(Figure_C_in,'stacked'); c1=bar(Figure_C_in,'stacked'); hold on Figure_C_out=[-P_ES3_cha']; c=bar(Figure_C_out,'stacked'); plot(P_load_c','-b*'); xlabel('时间/h'); ylabel('功率/kw'); title('冷功率平衡'); legend('电制冷机','CCHP机组','储能放冷','储能充冷','冷负荷'); grid on; axis([0 25,-200,700]) set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'}) figure(4) x=1:24; plot(x,P_load_e,'-g*'); hold on plot(x,P_load_h,'-r*'); hold on plot(x,P_load_c,'-b*'); xlabel('时间/h') ylabel('功率/kW') title('电、热、冷负荷曲线'); legend('电功率','热功率','冷功率'); axis([0 25,0,1800]) grid on set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'}) figure(5) x1=1:24; plot(x1,P_wt_max,'--bo'); hold on plot(x1,P_pv_max,'--ro'); hold on plot(x1,value(P_wt_e),'-b*'); hold on plot(x1,value(P_pv_e),'-r*'); hold on xlabel('时间/h') ylabel('功率/kW') title('可再生能源消纳水平(日前)'); legend('风电预测出力','光伏预测出力','光伏出力功率','风电出力功率'); axis([0 25,0,2500]) grid on set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'}) figure(6) Q_NU=double(E_actual_perhour); Q_CC=double(C_MR_CO2); bar([Q_NU',Q_CC']) hold on xlabel('时段'); ylabel('二氧化碳量/t'); legend('碳排放量','碳捕集量'); title('碳轨迹结果图(日前)'); axis([0 25,-100,2000]) grid on set(gcf,'color','white'); set(gca,'color','none'); set(gca,'XTick',[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]) set(gca,'XTickLabel',{'0:00','1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00','11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00'... '19:00','20:00','21:00','22:00','23:00','24:00'})
10-25
****** HSPICE -- R-2020.12 linux64 (Nov 23 2020 6727817) ****** Copyright (c) 1986 - 2025 by Synopsys, Inc. All Rights Reserved. This software and the associated documentation are proprietary to Synopsys, Inc. This software may only be used in accordance with the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction, or distribution of this software is strictly prohibited. Input File: AB.sp Command line options: /cad/synopsys/hspice/2020.12/hspice/linux64/hspice -i AB.sp -o Start time: Sun Nov 30 17:08:32 2025 lic: lic: FLEXlm: SDK_12.9 lic: USER: u112011132 HOSTNAME: cwlu lic: HOSTID: "0cc47a6d0cd2" PID: 31364 lic: Using FLEXlm license file: lic: 26585@lshc lic: Checkout 1 hspice lic: License/Maintenance for hspice will expire on 14-jun-2027/2025.06 lic: 378(in_use)/1235(total) FLOATING license(s) on SERVER 26585@lshc lic: **warning** (AB.sp:54) measure result power redefined, ignored the previous. **info** the obsolete option acout is ignored **info** the obsolete option acout is ignored **warning** (AB.sp:5) runlvl smaller than 5, reset to 5 when accurate turned on **warning** (AB.cir:18) Parameter name is not defined in .param. Please enter parameter variable with their respective value/expression. **warning** runlvl smaller than 5, reset to 5 when accurate turned on 1****** HSPICE -- R-2020.12 linux64 (Nov 23 2020 6727817) ****** ****** **********analog ic term project: closed-loop thd********* ****** circuit name directory circuit number to circuit name directory number circuitname definition multiplier 0 main circuit 1 xab. ab 1.00 Warning:'No DC path nodes' occurs 4 times No DC path from the following nodes,connected with gdcpath: -------------------------- |Node |Subckt | |-------------+----------| |xab.net_ptat1|ab | |xab.net_ptat2|ab | |xab.vb3 |ab | |xab.vb4 |ab | -------------------------- **info** set option symb=1 internally to help for convergence. ***************************************************************** ****** option summary ****** runlvl = 5 bypass = 2.0000 Opening plot unit= 15 file=AB.pa0 **info** dc convergence successful at GMINDC ramping method ****** **********analog ic term project: closed-loop thd********* ****** operating point information tnom= 25.000 temp= 25.000 ****** ****** operating point status is all simulation time is 0. node =voltage node =voltage node =voltage +0:in = 0. 0:vcm1 = 1.6500 0:vcm2 = 1.6500 +0:vdd = 3.3000 0:vddm = 3.3000 0:vin = 1.6500 +0:vip = 1.6500 0:vout = 37.6169m 0:vss = 0. +1:int_node= 3.3000 1:net01 = 1.9589 1:net020 = 30.8388n +1:net028 = 3.0886 1:net031 = 3.3000 1:net038 = 207.6521m +1:net064 = 1.3445 1:net08 = 30.8388n 1:net1 = 2.1244 +1:net16 = 3.3000 1:net17 = 3.3000 1:net19 = 2.1244 +1:net5 = 2.1244 1:net8 = 2.1244 1:net_delt= 2.5755 +1:net_init= 3.2864 1:net_ptat= 0. 1:net_ptat= 0. +1:net_vgs1= 1.2876 1:net_vgs2= 1.2876 1:start_no= 3.3000 +1:vb1 = 3.3001 1:vb2 = 3.3000 1:vb3 = 0. +1:vb4 = 0. 1:vb5 = 3.3000 1:vb6 = 3.3000 +1:vb_curre= 3.3000 maximum nodal capacitance= 3.096E-11 on node 0:vss nodal capacitance table node = cap node = cap node = cap +0:in = 0. 0:vcm1 = 0. 0:vcm2 = 0. +0:vdd = 11.8906p 0:vddm = 791.2735f 0:vin = 91.6654f +0:vip = 91.6654f 0:vout = 943.7318f 0:vss = 30.9624p +1:int_node= 23.7464f 1:net01 = 105.7538f 1:net020 = 179.0621f +1:net028 = 80.3610f 1:net031 = 30.0000p 1:net038 = 31.0187f +1:net064 = 44.2788f 1:net08 = 579.0621f 1:net1 = 225.9613f +1:net16 = 709.0904f 1:net17 = 309.0904f 1:net19 = 407.6740f +1:net5 = 114.1160f 1:net8 = 163.4604f 1:net_delt= 11.9787f +1:net_init= 10.0010p 1:net_ptat= 111.7084f 1:net_ptat= 45.3225f +1:net_vgs1= 10.7008f 1:net_vgs2= 1.1662f 1:start_no= 3.7222f +1:vb1 = 137.5843f 1:vb2 = 260.3167f 1:vb3 = 87.4064f +1:vb4 = 131.1097f 1:vb5 = 27.6871f 1:vb6 = 47.6984f +1:vb_curre= 261.1739f **** voltage sources subckt element 0:vac 0:vcm1 0:vcm2 0:vvdd 0:vvddm 0:vvss volts 0. 1.6500 1.6500 3.3000 3.3000 0. current 0. 0. 0. -353.6489p -319.2198u 40.5041f power 0. 0. 0. 1.1670n 1.0534m 0. total voltage source power dissipation= 1.0534m watts **** resistors subckt xab xab xab xab element 1:rb 1:rstart 1:rshift 1:rr0 r value 5.0000k 1.0000g 10.0000k 5.0000k v drop -1.0363p -13.5911m 798.8653n 0. current -207.2564a -13.5911p 79.8865p 0. power 2.148e-28 184.7172f 63.8186a 0. **** voltage-controlled voltage sources subckt element 0:eac1 0:eac2 volts 0. 0. current 0. 0. **** mosfets subckt xab xab xab xab xab xab element 1:mb5 1:mb7 1:mp1 1:mp2 1:mp3 1:mp4 model 0:n_33.1 0:n_33.1 0:p_33.1 0:p_33.1 0:p_33.1 0:p_33.1 region Cutoff Cutoff Linear Linear Cutoff Linear id 0. 0. 0. 0. -8.047e-19 -79.8848p ibs -1.2290f -236.0595a 0. 0. 0. 9.845e-27 ibd -614.4051a -118.0153a 0. 0. 4.955e-23 4.954e-23 vgs -2.5755 -2.5755 -3.3000 -3.3000 0. -3.3000 vds -1.2879 -1.2879 0. 0. -128.6669n -128.6669n vbs -2.5755 -2.5755 0. 0. 0. 0. vth 988.1236m 998.5156m -728.6259m -728.6259m -728.6259m -728.6259m vdsat 41.1869m 41.1511m -1.9284 -1.9284 -36.3728m -1.9284 vod -2.2757 -2.2861 -2.5714 -2.5714 728.6259m -2.5714 beta 1.8006m 179.3189u 256.9978u 256.9978u 333.8072u 256.9978u gam eff 789.1321m 789.1321m 664.3078m 664.3078m 664.3078m 664.3078m gm 0. 0. 0. 0. 20.6623a 17.7806p gds 0. 0. 0. 0. 6.2538p 621.1123u gmb 0. 0. 0. 0. 11.0280a 19.4102p cdtot 10.7008f 1.1662f 61.7294f 61.7294f 14.4630f 61.7294f cgtot 26.6549f 2.7957f 42.5268f 42.5268f 20.4556f 42.5268f cstot 9.8390f 1.0698f 56.4116f 56.4116f 14.4630f 56.4116f cbtot 30.8254f 3.3894f 38.2643f 38.2643f 37.0197f 38.2643f cgs 4.0921f 410.5671a 22.6310f 22.6310f 3.0908f 22.6310f cgd 4.0928f 410.6353a 20.8153f 20.8153f 3.0903f 20.8153f subckt xab xab xab xab xab xab element 1:mstart1 1:mstart2 1:mx1 1:mx2 1:mx5 1:mx6 model 0:p_33.1 0:n_33.1 0:p_33.1 0:p_33.1 0:p_33.1 0:p_33.1 region Cutoff Cutoff Cutoff Cutoff Cutoff Cutoff id -4.9966a 9.5934p 1.5499f 537.2699a -60.6484a -60.6484a ibs 0. -236.0595a 0. 0. 0. 0. ibd 3.803e-22 -301.2134a -3.3000a -1.1441a 3.736e-21 3.736e-21 vgs 0. 724.4496m -128.6669n -128.6669n -128.6669n -128.6669n vds -7.5400u 710.8661m 56.3193u 19.5407u -19.4015u -19.4015u vbs 0. -2.5755 0. 0. 0. 0. vth -733.7847m 1.1882 -725.6994m -725.7163m -728.6259m -728.6259m vdsat -35.9159m 42.7646m -36.8160m -36.8162m -36.3728m -36.3728m vod 733.7847m -463.7325m 725.6429m 725.6966m 728.6258m 728.6258m beta 40.4980u 179.1654u 1.3581m 1.3581m 166.9036u 166.9036u gam eff 664.3078m 809.2425m 664.3110m 664.3089m 664.3078m 664.3078m gm 128.3210a 310.1279p 39.7952f 13.7953f 1.5574f 1.5574f gds 662.6051f 607.2605f 27.4958p 27.4868p 3.1250p 3.1250p gmb 68.2816a 37.8842p 21.2753f 7.3756f 831.1994a 831.1994a cdtot 1.9405f 1.0360f 55.7605f 55.7596f 7.2314f 7.2314f cgtot 2.5404f 1.7817f 82.2630f 82.2630f 10.2278f 10.2278f cstot 1.9405f 1.0698f 55.7592f 55.7592f 7.2315f 7.2315f cbtot 4.9191f 2.2453f 143.5242f 143.5281f 18.5098f 18.5098f cgs 375.5864a 410.6018a 12.5623f 12.5623f 1.5454f 1.5454f cgd 375.5299a 410.5671a 12.5714f 12.5667f 1.5452f 1.5452f subckt xab xab xab xab xab xab element 1:mn_shift 1:mn_shift 1:mm20 1:mm19 1:mm18 1:mm17 model 0:n_33.1 0:n_33.1 0:p_33.1 0:p_33.1 0:p_33.1 0:p_33.1 region Cutoff Cutoff Saturation Cutoff Cutoff Cutoff id 458.6997f 229.3498f -319.2196u -871.6208a -871.6208a -70.3484a ibs -4.624e-27 -2.312e-27 3.903e-20 2.0660f 2.0660f 162.8722a ibd -3.5505f -1.7753f 5.9829f 5.0838f 5.0838f 1.0330f vgs 0. 0. -1.1756 -308.9241m -308.9241m 211.4674m vds 3.3000 3.3000 -3.2624 -1.9589 -1.9589 -1.1296 vbs 0. 0. 0. 1.3411 1.3411 211.4478m vth 680.3418m 680.3418m -716.3166m -1.2187 -1.2187 -820.6616m vdsat 36.7704m 36.7704m -369.7775m -41.6186m -41.6186m -37.6378m vod -680.3418m -680.3418m -459.2526m 909.7635m 909.7635m 1.0321 beta 2.8774m 1.4387m 3.4278m 1.2159m 1.2159m 659.8106u gam eff 761.1512m 761.1512m 664.3066m 604.5661m 604.5661m 652.7891m gm 14.1121p 7.0561p 1.2465m 24.8725f 24.8725f 1.8600f gds 22.9255f 11.4627f 20.5082u 16.9120a 16.9120a 1.7735a gmb 5.4446p 2.7223p 537.8355u 8.3934f 8.3934f 937.5217a cdtot 15.8310f 7.9155f 41.7269f 34.9920f 34.9920f 21.1508f cgtot 43.7032f 21.8516f 96.6214f 60.1401f 60.1401f 40.9115f cstot 21.8784f 10.9392f 146.0016f 42.3015f 42.3015f 26.7870f cbtot 55.2009f 27.6005f 108.0877f 87.9870f 87.9870f 64.1256f cgs 6.5537f 3.2768f 78.2616f 12.3626f 12.3626f 6.1816f cgd 6.5527f 3.2763f 14.7865f 12.3613f 12.3613f 6.1807f subckt xab xab xab xab xab xab element 1:mm16 1:mm5 1:mm4 1:mm3 1:mm2 1:mm1 model 0:p_33.1 0:p_33.1 0:p_33.1 0:p_33.1 0:p_33.1 0:p_33.1 region Cutoff Cutoff Cutoff Cutoff Cutoff Linear id -583.4162f 0. 0. -603.5057f -603.5057f -61.5304p ibs 4.885e-28 226.3774a 226.3768a 1.686e-22 1.686e-22 7.583e-27 ibd 325.7444a 226.3776a 226.3770a 1.8110f 1.8110f 1.686e-22 vgs 56.3193u 1.1756 1.1755 19.6501u 19.6501u -1.1756 vds -211.4478m -849.0449n -849.0829n -1.1756 -1.1756 -109.4247n vbs 0. 1.1756 1.1756 109.4247n 109.4477n 0. vth -728.6097m -1.1672 -1.1672 -728.5358m -728.5358m -728.6259m vdsat -36.3728m -41.1955m -41.1955m -36.3728m -36.3728m -353.7970m vod 728.6660m 2.3427 2.3427 728.5554m 728.5554m -446.9465m beta 1.3352m 154.0227u 154.0227u 1.3352m 1.3352m 1.3088m gam eff 664.3078m 610.6968m 610.6969m 664.3078m 664.3078m 664.3078m gm 14.9813p 0. 0. 15.4971p 15.4971p 135.3458p gds 44.6553f 0. 0. 15.4659f 15.4660f 562.3590u gmb 7.9121p 0. 0. 8.1863p 8.1863p 66.2295p cdtot 53.5740f 5.4191f 5.4191f 43.3525f 43.3526f 235.4075f cgtot 81.8238f 10.2279f 10.2279f 81.8228f 81.8228f 170.4174f cstot 57.8519f 5.4191f 5.4191f 57.8519f 57.8519f 221.8087f cbtot 143.8025f 14.8851f 14.8851f 133.5800f 133.5800f 153.2952f cgs 12.3632f 1.5454f 1.5454f 12.3632f 12.3632f 94.9123f cgd 12.3613f 1.5452f 1.5452f 12.3613f 12.3613f 78.9447f subckt xab xab xab xab xab xab element 1:mm0 1:mm21 1:mm15 1:mm14 1:mm13 1:mm12 model 0:p_33.1 0:n_33.1 0:n_33.1 0:n_33.1 0:n_33.1 0:n_33.1 region Linear Linear Cutoff Cutoff Cutoff Cutoff id -61.5434p 319.2197u 77.6392f 394.1341f 29.1736a 77.6392f ibs 7.585e-27 -4.876e-20 -1.4466f -3.538e-28 -111.7075a -1.4466f ibd 1.686e-22 -52.0251a -3.5505f -223.4151a -723.3056a -3.5505f vgs -1.1756 2.1244 305.4542m 0. -207.6521m 305.4542m vds -109.4477n 37.6169m 1.9555 207.6521m 1.1369 1.9555 vbs 0. 0. -1.3445 0. -207.6521m -1.3445 vth -728.6259m 696.9846m 1.0064 681.4754m 746.5530m 1.0064 vdsat -353.7970m 866.7155m 41.2681m 36.7704m 37.9475m 41.2681m vod -446.9465m 1.4274 -700.9753m -681.4754m -954.2050m -700.9753m beta 1.3088m 8.0464m 2.8728m 2.8773m 1.4390m 2.8728m gam eff 664.3078m 761.1522m 790.1330m 761.1512m 766.6738m 790.1330m gm 135.3743p 150.8027u 2.5927p 12.1268p 919.3427a 2.5927p gds 562.3590u 8.3095m 3.8978f 49.8923f 1.3831a 3.8978f gmb 66.2435p 56.8346u 503.1373f 4.6817p 327.5076a 503.1373f cdtot 235.4075f 102.0048f 15.8310f 20.6791f 8.8558f 15.8310f cgtot 170.4174f 73.9294f 31.5253f 43.7032f 21.8517f 31.5253f cstot 221.8087f 90.9326f 17.7115f 21.8784f 10.3396f 17.7115f cbtot 153.2952f 63.0450f 38.8564f 60.0491f 27.9411f 38.8564f cgs 94.9123f 34.8724f 6.5533f 6.5537f 3.2768f 6.5533f cgd 78.9447f 35.1401f 6.5527f 6.5527f 3.2763f 6.5527f subckt xab xab xab xab xab xab element 1:mm11 1:mm10 1:mm9 1:mm8 1:mm7 1:mm6 model 0:n_33.1 0:n_33.1 0:n_33.1 0:n_33.1 0:n_33.1 0:n_33.1 region Linear Linear Cutoff Cutoff Linear Linear id 101.5795p 101.5795p 435.3105f 435.3105f 36.3253p 36.3255p ibs -1.749e-26 -1.749e-26 -3.318e-23 -3.318e-23 -571.4233a -571.4242a ibd -3.316e-23 -3.316e-23 -2.2857f -2.2857f -571.4235a -571.4244a vgs 2.1244 2.1244 -30.8388n -30.8388n 1.1756 1.1756 vds 30.8388n 30.8388n 2.1244 2.1244 849.0449n 849.0829n vbs 0. 0. -30.8388n -30.8388n -2.1244 -2.1244 vth 681.5516m 681.5516m 680.7728m 680.7728m 1.1317 1.1317 vdsat 975.6915m 975.6915m 36.7704m 36.7704m 96.3145m 96.3126m vod 1.4429 1.4429 -680.7728m -680.7728m 43.8857m 43.8822m beta 2.6490m 2.6490m 2.8774m 2.8774m 715.4522u 715.4523u gam eff 761.1512m 761.1512m 761.1512m 761.1512m 802.7173m 802.7173m gm 52.6735p 52.6735p 13.3930p 13.3930p 386.3349p 386.3442p gds 3.2974m 3.2974m 18.8192f 18.8192f 42.7858u 42.7842u gmb 22.5068p 22.5068p 5.1683p 5.1683p 54.6682p 54.6695p cdtot 122.1916f 122.1916f 16.7550f 16.7550f 18.0677f 18.0674f cgtot 92.8872f 92.8872f 43.7032f 43.7032f 20.2336f 20.2333f cstot 108.0599f 108.0599f 21.8784f 21.8784f 18.0129f 18.0126f cbtot 61.0325f 61.0325f 56.1249f 56.1249f 9.1474f 9.1474f cgs 44.0336f 44.0336f 6.5537f 6.5537f 10.6845f 10.6843f cgd 45.0436f 45.0436f 6.5527f 6.5527f 7.7761f 7.7760f **** small-signal transfer characteristics v(vout)/vac = 274.6791p input resistance at vac = 1.000e+20 output resistance at v(vout) = 120.2698 *************************************************** ****** pole/zero analysis pole/zero analysis stopped - iterno .gt.100 pole/zero analysis stopped --overflowed! input = 0:vac output = v(vout) poles (rad/sec) poles ( hertz) real imag real imag -123.456k 0. -19.6486k 0. -123.456k 0. -19.6486k 0. -145.020k 0. -23.0806k 0. 1.23456x 0. 196.486k 0. -1.23456x 0. -196.486k 0. 1.96955x 0. 313.463k 0. ***** no zeros found ***** ***** constant factor = 1.62149e+27 ****** **********analog ic term project: closed-loop thd********* ****** ac analysis tnom= 25.000 temp= 25.000 ****** gmax= -37.0154 at= 251.1886g from= 1.0000 to= 251.1886g bw= 4.1335g unity_gain_frequency= failed phase= failed phase_margin= failed power= -1.0534m from= 1.0000 to= 251.1886g ***** job concluded ****** **********analog ic term project: closed-loop thd********* ****** job statistics summary tnom= 25.000 temp= 25.000 ****** ****** Machine Information ****** CPU: model name : Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz cpu MHz : 1627.734 OS: Linux version 3.10.0-1160.66.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Wed May 18 16:02:34 UTC 2022 ****** HSPICE Threads Information ****** Command Line Threads Count : 1 Available CPU Count : 32 Actual Threads Count : 1 ****** Circuit Statistics ****** # nodes = 110 # elements = 52 # resistors = 4 # capacitors = 4 # inductors = 0 # mutual_inds = 0 # vccs = 0 # vcvs = 2 # cccs = 0 # ccvs = 0 # volt_srcs = 6 # curr_srcs = 0 # diodes = 0 # bjts = 0 # jfets = 0 # mosfets = 36 # U elements = 0 # T elements = 0 # W elements = 0 # B elements = 0 # S elements = 0 # P elements = 0 # va device = 0 # vector_srcs = 0 # N elements = 0 ****** Runtime Statistics (seconds) ****** analysis time # points tot. iter conv.iter op point 0.06 1 540 ac analysis 0.01 115 115 readin 0.02 errchk 0.01 setup 0.00 output 0.00 peak memory used 460.78 megabytes total cpu time 0.09 seconds total elapsed time 0.32 seconds job started at 17:08:32 11/30/2025 job ended at 17:08:32 11/30/2025 job total runtime 0.32 seconds lic: Release hspice token(s) lic: total license checkout elapse time: 0.22(s)
最新发布
12-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值