def output_constraint(b, t): if t == t0: return pyo.Constraint.Skip else: return self.output[t] ==\ smooth_min( smooth_max(self.unconstrained_output[t], l, e), h, e)
def minimum_pressure(b, t, i): if i == self.inlet_list[0]: return self.inlet_blocks[i][t].pressure else: pi = self.inlet_list[self.inlet_list.index(i) - 1] prev_p = self.minimum_pressure[t, pi] this_p = self.inlet_blocks[i][t].pressure return smooth_min(this_p, prev_p, self.eps_pressure)
def minimum_pressure_constraint(b, t, i): if i == self.inlet_idx.first(): return self.minimum_pressure[t, i] == ( inlet_blocks[i - 1][t].pressure) else: return self.minimum_pressure[t, i] == (smooth_min( self.minimum_pressure[t, i - 1], inlet_blocks[i - 1][t].pressure, self.eps_pressure))
def rule_Cmin(blk, t): caph = (blk.hot_side.properties_in[t].flow_mol * blk.hot_side.properties_in[t].cp_mol) capc = pyunits.convert(blk.cold_side.properties_in[t].flow_mol * blk.cold_side.properties_in[t].cp_mol, to_units=hunits("power") / hunits("temperature")) return smooth_min(caph, capc, eps=blk.eps_cmin)
def test_smooth_min(simple_model): # Test that smooth_min gives correct values assert smooth_min(3.0, 12.0) == pytest.approx(3.0, abs=1e-4) assert value(smooth_min(simple_model.a, simple_model.b, simple_model.e)) == pytest.approx(-4.0, abs=1e-4)
def rule_teq(b): return b._teq[phase_pair] == smooth_min( _t1, b.temperature_dew[phase_pair], eps_2)
def inlet_pressure_eqn(b, t): return b.valve_1.control_volume.properties_in[t].pressure == \ smooth_min(600000, smooth_max(500000, 50000*(b.time_var[t] - 10) + 500000))
def rule_teq(b): return b._teq == smooth_min(b._t1, b.temperature_dew, b.eps_2)