#Intermediates Vin[1:4] = [m.Intermediate(Vout[i]) for i in range(3)] Vevap = [m.Intermediate(evap_c[i] * A[i]) for i in range(4)] #Equations m.Equations( [V[i].dt() == Vin[i] - Vout[i] - Vevap[i] - Vuse[i] for i in range(4)]) m.Equations([1000 * V[i] == h[i] * A[i] for i in range(4)]) m.Equations([Vout[i]**2 == c[i]**2 * h[i] for i in range(4)]) #Set to simulation mode m.options.imode = 4 #Solve m.solve() m.GUI() #%% Plot results # time = [x * 12 for x in m.time] # # plot results # plt.figure(1) # # plt.subplot(311) # plt.plot(time,h[0],'r-') # plt.plot(time,h[1],'b--') # plt.ylabel('Level (m)') # plt.legend(['Jordanelle Reservoir','Deer Creek Reservoir']) # # plt.subplot(312) # plt.plot(time,h[3],'g-')
r21 = m.Intermediate(gamma / (1 - nu) * J2) r22 = m.Intermediate(gamma / (1 - eta) * Iv2) r23 = m.Intermediate(sigma * R1) r24 = m.Intermediate(sigma * R2) r25 = m.Intermediate(sigma * R) r26 = m.Intermediate(sigmaV * V) # Equations m.Equation(N.dt() == (0)) m.Equation(S.dt() == ((1.0 * r1) + (-1.0 * r3) + (-1.0 * r13) + (-1.0 * r14) + (1.0 * r23) + (1.0 * r24) + (1.0 * r25) + (1.0 * r26))) m.Equation(I1.dt() == ((-1.0 * r5) + (1.0 * r13) + (-1.0 * r16))) m.Equation(I2.dt() == ((-1.0 * r6) + (1.0 * r14) + (-1.0 * r17))) m.Equation(R1.dt() == ((-1.0 * r8) + (1.0 * r16) + (-1.0 * r19) + (-1.0 * r23))) m.Equation(R2.dt() == ((-1.0 * r9) + (1.0 * r17) + (-1.0 * r18) + (-1.0 * r24))) m.Equation(V.dt() == ((1.0 * r2) + (-1.0 * r4) + (-1.0 * r15) + (-1.0 * r26))) m.Equation(Iv2.dt() == ((-1.0 * r7) + (1.0 * r15) + (-1.0 * r22))) m.Equation(J2.dt() == ((-1.0 * r11) + (1.0 * r19) + (-1.0 * r21))) m.Equation(J1.dt() == ((-1.0 * r10) + (1.0 * r18) + (-1.0 * r20))) m.Equation(R.dt() == ((-1.0 * r12) + (1.0 * r20) + (1.0 * r21) + (1.0 * r22) + (-1.0 * r25))) # Global Options m.options.CV_TYPE = 0 m.options.COLDSTART = 1 m.options.IMODE = 7 m.GUI = True m.solve()