def __init__(self, n): super(BatteryConstraints, self).__init__() self.n = n self.add_param("SOC", np.ones(self.n), units="unitless") self.add_output("Cons1", 1.0) self.KS = KSfunction() self.rho = 50 self.SOC_min = 0.8
class BatteryConstraints(Component): def __init__(self, n): super(BatteryConstraints, self).__init__() self.n = n self.add_param("SOC", np.ones(self.n), units="unitless") self.add_output("Cons1", 1.0) self.KS = KSfunction() self.rho = 50 self.SOC_min = 0.8 def solve_nonlinear(self, params, unknowns, resids): SOC = params['SOC'] #print SOC.min() unknowns['Cons1'] = self.KS.compute(self.SOC_min - SOC, self.rho) def linearize(self, p, u, r): J = {} J['Cons1', 'SOC'] = - self.KS.derivatives()[0].reshape((1, self.n)) return J