m0_52739434 2021-10-19 13:18 采纳率: 100%
浏览 96
已结题

对于未定义函数或变量此类问题如何解决


T=8760;%时间范围
global P_S;
P_S=load('P_S.txt');%光照强度
global P_T;
P_T=load('P_T.txt');%温度
global E1;
E1=load('load.txt');%一年负荷序列
P_T1=P_T+P_S*160;
a=1+0.00485*(P_T-25);
b=a/200;
pv=2300*0.05*0.9*P_S.*b;%太阳能一年发出的电量
P_MT1=300;%微型汽轮机装机容量
P_MT=0.81*P_MT1;%微型汽轮机出力
yitac=0.9;%逆变器功率转换效率
yitab=0.9;%蓄电池效率
yitacc=0.6;%电解槽工作效率
yitacd=0.5;%储氢罐工作效率
yitact=0.6;%燃料电池工作效率
Ebn=0.9*pop(1);%蓄电池
Ebmin=0.2*pop(1);%蓄电池约束条件
Ecn=0.27*pop(2);%储氢罐
Ecmin=0.054*pop(2);%储氢罐约束条件
delE=pv+P_MT1-E1;%功率缺额(发电量-负荷)

for k=1:T
    if delE(k)>0 %功率剩余
        if delE >= Ebn*yitac
            Eb=Ebp+Ebn*yitabc;
            if Eb>Ebn
                Eb=Ebn;
            end
        elseif delE >= Ebn*yitac+Ecn
            Eb=Ebn;
            Ecc=delE-Ebn;
            if Ecc>Ecn
                Ec=Ecn;
                Efire=(Ecc-Ecn)*0.9*0.99;
            else
                Ec=Ecp+Ecc*0.6*yitac;
            end
        end
         Eb=Eb(k-1);
         Ec=Ec(k-1); 
    else
        delE(k)=-1*delE(k);%功率缺额
         if delE >= Ebn*yitac
            Eb=Ebp-Ebn*yitabc;
            if Eb<Ebmin
                Eb=Ebmin;
            end
        elseif delE >= Ebn*yitac+Ecn
            Eb=Ebmin;
            Ecc=delE-Ebmin;
            if Ecc<Ecmin
                Ec=Ecmin;
                Elps=Ecc-Ecmin;
            else
                Ec=Ecp-Ecc;
            end
         end
         Eb=Eb(k-1);
         Ec=Ec(k-1);
         Elps=Elps;
    end
end

y=6565.12064*pop(1)+31457.883*pop(2);
if 0.72*pop(1) + 0.081*pop(2) < max(E1)*0.7
    y=y+inf;
end

for k=1:T   
if Eb(k)>0.7*delE(k)
      y=y+inf;
end
end
  
LPSP=Elps/sum(E1);
if LPSP> 0.05
   y=y+inf;
end
LPSP

请问,为啥matlab上一直显示62行未定义函数或变量 'Eb',此类问题如何解决

  • 写回答

4条回答 默认 最新

  • 技术专家团-Joel 2021-10-19 13:31
    关注

    你好,同学!
    仔细看了你的代码,如果你的代码运行到了62行,说明是第45行的else是满足的。
    然后从第47行的if逻辑开始看,你的if逻辑下面包含了两个工况即
    (1)第47行的delE >= Ebn*yitac
    (2)第52行的delE >= Ebn*yitac+Ecn
    这两种情况你都定义了Eb
    但是明显可见delE还存在第三种情况,即delE < Ebn*yitac,这种情况你需要再加一个else说明一下Eb是怎么取值的就可以啦。
    希望我的回答能够对你有所帮助,满意还请点各个采纳支持一下答主哦

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 7月19日
  • 已采纳回答 7月11日
  • 修改了问题 10月19日
  • 创建了问题 10月19日

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向