예제 #1
0
 def powerflowact(model, i):
     if i in gb:
         return model.Pg[i]-Pd[i] == sum(model.vm[i]*model.vm[j]*abs(y[i, j]) *
                                         cos(model.va[i] - model.va[j] - ang(y[i, j])) for j in range(nb))
     else:
         return sum(model.vm[i]*model.vm[j]*abs(y[i, j]) * cos(model.va[i] - model.va[j] -
                                                               ang(y[i, j])) for j in range(nb)) == -Pd[i]
예제 #2
0
 def obj_fun(model):
     return sum(gk[i] * ((model.vm[fr[i]] / model.tr[i])**2 + model.vm[to[i]]**2 -
                         2 / model.tr[i] * model.vm[fr[i]] * model.vm[to[i]] *
                         cos(model.va[fr[i]] - model.va[to[i]])) for i in tp) + \
            sum(gk[i] * ((model.vm[fr[i]] / tr0[i]) ** 2 + model.vm[to[i]] ** 2 -
                         2 / tr0[i] * model.vm[fr[i]] * model.vm[to[i]] *
                         cos(model.va[fr[i]] - model.va[to[i]])) for i in ntp)
예제 #3
0
 def pto(model, i):
     if i in tp:
         return model.Pt[i] == model.vm[to[i]] ** 2 * abs(yft[i]) * np.cos(-ang(yft[i])) - \
                               model.vm[to[i]] * model.vm[fr[i]] * abs(yk[i]) / model.tr[i] * \
                               cos(model.va[to[i]] - model.va[fr[i]] - ang(yk[i]))
     else:
         return model.Pt[i] == model.vm[to[i]] ** 2 * abs(yft[i]) * np.cos(-ang(yft[i])) - \
                               model.vm[to[i]] * model.vm[fr[i]] * abs(yk[i]) / tr0[i] * \
                               cos(model.va[to[i]] - model.va[fr[i]] - ang(yk[i]))
예제 #4
0
 def powerflowact(model, i):
     bfrom_i = tp[find(fr[tp] == i)]  # branches from bus i with transformer
     bto_i = tp[find(to[tp] == i)]  # branches to bus i with transformer
     allbut_i = find(bus[:, BUS_I] != i)  # Set of other buses
     if i in gb:
         return model.Pg[i]-Pd[i] == sum(model.vm[i] * model.vm[j] * abs(y[i, j]) *
                                         cos(model.va[i] - model.va[j] - ang(y[i, j])) for j in allbut_i) - \
                sum(model.vm[i] * model.vm[to[j]] * abs(yk[j]) * cos(model.va[i] -
                    model.va[to[j]] - ang(yk[j])) * (1 / model.tr[j] - 1) for j in bfrom_i) - \
                sum(model.vm[i] * model.vm[fr[j]] * abs(yk[j]) * cos(model.va[i] -
                    model.va[fr[j]] - ang(yk[j])) * (1 / model.tr[j] - 1) for j in bto_i) + \
                model.vm[i] ** 2 * (sum(abs(yk[j]) * (1 / model.tr[j]**2 - 1) *
                                        np.cos(- ang(yk[j])) for j in bfrom_i) + real(y[i, i]))
     else:
         return sum(model.vm[i] * model.vm[j] * abs(y[i, j]) *
                    cos(model.va[i] - model.va[j] - ang(y[i, j])) for j in allbut_i) - \
                sum(model.vm[i] * model.vm[to[j]] * abs(yk[j]) * cos(model.va[i] -
                    model.va[to[j]] - ang(yk[j])) * (1 / model.tr[j] - 1) for j in bfrom_i) - \
                sum(model.vm[i] * model.vm[fr[j]] * abs(yk[j]) * cos(model.va[i] -
                    model.va[fr[j]] - ang(yk[j])) * (1 / model.tr[j] - 1) for j in bto_i) + \
                model.vm[i] ** 2 * (sum(abs(yk[j]) * (1 / model.tr[j]**2 - 1) *
                                        np.cos(- ang(yk[j])) for j in bfrom_i) + real(y[i, i])) == -Pd[i]
예제 #5
0
 def obj_fun(model):
     return sum(gk[i] * ((model.vm[fr[i]] / tr[i])**2 + model.vm[to[i]]**2 -
                      2/tr[i] * model.vm[fr[i]] * model.vm[to[i]] *
                      cos(model.va[fr[i]] - model.va[to[i]])) for i in range(nl))
예제 #6
0
 def pto(model, i):
     return model.Pt[i] == model.vm[to[i]] ** 2 * abs(yft[i]) * np.cos(-ang(yft[i])) - \
                           model.vm[to[i]] * model.vm[fr[i]] * abs(yk[i]) * \
                           cos(model.va[to[i]] - model.va[fr[i]] - ang(yk[i]))
예제 #7
0
 def pfrom(model, i):
     return model.Pf[i] == model.vm[fr[i]] ** 2 * abs(yft[i]) / (tr[i] ** 2) * np.cos(-ang(yft[i])) - \
                           model.vm[fr[i]] * model.vm[to[i]] * abs(yk[i]) * \
                           cos(model.va[fr[i]] - model.va[to[i]] - ang(yk[i]))