import numpy as np
from matplotlib.pyplot import plot, figure, subplot, grid, show, legend
from components.plant.pot import Pot


if __name__ == '__main__':
	dt = 1.0
	theta_amb = 20
	power_on = 3500
	steps_heat = 4000
	steps_cool = 40000

	pot_params = {
		"theta"		: 20,
		"C"			: 4190,
		"M"			: 20,
		"L"			: 0.4,
		"Td"		: 30,
		"gain"		: 1.0
	}

	pot = Pot(dt, pot_params, theta_amb)

	_t = np.empty(0)
	_temp = np.empty(0)
	_p_pot = np.empty(0)
	_power = np.empty(0)

	t = 0
	pot.set_power(power_on)
	for _ in range(steps_heat):
		pot.process()
		_t = np.append(_t, t)
		_temp = np.append(_temp, pot.get_temperature())
		_p_pot = np.append(_p_pot, pot.get_p_pot())
		_power = np.append(_power, pot.get_power())
		t += 1

	pot.set_power(0)
	for _ in range(steps_cool):
		pot.process()
		_t = np.append(_t, t)
		_temp = np.append(_temp, pot.get_temperature())
		_p_pot = np.append(_p_pot, pot.get_p_pot())
		_power = np.append(_power, pot.get_power())
		t += 1

	figure(1)
	subplot(2, 1, 1)
	plot(_t, _temp, '-b', linewidth=1)
	legend(["temp"])
	grid(True)
	subplot(2, 1, 2)
	plot(_t, _power, '-g', _t, _p_pot, '-r', linewidth=1)
	legend(["power", "p_pot"])
	grid(True)
	show()

	print("End of program")
