From 272263b07cf67cdf5816c0f455800c104820ff77 Mon Sep 17 00:00:00 2001 From: Lostlarry Date: Wed, 21 Jul 2021 10:39:35 +0200 Subject: [PATCH 1/8] tweak TEG having icon when connect to circulator with no powergrid --- code/modules/power/generator.dm | 4 +++- icons/obj/machines/thermoelectric.dmi | Bin 38897 -> 39100 bytes 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index 5a9420591d0f..b3a7f1394efd 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -45,6 +45,8 @@ add_overlay("teg-panel") return + if(!powernet) + add_overlay("teg-nogrid") if(stat & (NOPOWER)) return else @@ -93,7 +95,7 @@ var/datum/gas_mixture/cold_circ_air1 = cold_circ.airs[1] cold_circ_air1.merge(cold_air) - update_icon() + update_icon() src.updateDialog() diff --git a/icons/obj/machines/thermoelectric.dmi b/icons/obj/machines/thermoelectric.dmi index 3e0f5d5fdccadb729b6e27d8fab76564dd18b9ee..29c526bfa16872e79e7e3bb71f6847dc52345742 100644 GIT binary patch delta 16114 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 delta 15893 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
``2**ZB49bpwPdPR3YOsi~dc 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 bus;e-i@dn|R>9o?K#z=sym*)`CtME From 280f3754efa22af97aa2e2b3316a658d8cb45f8e Mon Sep 17 00:00:00 2001 From: Lostlarry Date: Wed, 21 Jul 2021 11:19:17 +0200 Subject: [PATCH 2/8] i redo the TEG code because it broke thermodynamics --- code/modules/power/generator.dm | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index b3a7f1394efd..7b540d803a7b 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -62,7 +62,7 @@ return if(powernet) - var/datum/gas_mixture/cold_air = cold_circ.return_transfer_air() + var/datum/gas_mixture/cold_air = cold_circ.return_transfer_air() //ciculators decide how much air moves torugh var/datum/gas_mixture/hot_air = hot_circ.return_transfer_air() if(cold_air && hot_air) @@ -70,19 +70,20 @@ var/cold_air_heat_capacity = cold_air.heat_capacity() var/hot_air_heat_capacity = hot_air.heat_capacity() - var/delta_temperature = hot_air.return_temperature() - cold_air.return_temperature() + var/temp_diff = hot_air.return_temperature() - cold_air.return_temperature() - if(delta_temperature > 0 && cold_air_heat_capacity > 0 && hot_air_heat_capacity > 0) + if(temp_diff > 0 && cold_air_heat_capacity > 0 && hot_air_heat_capacity > 0) var/efficiency = 0.65 - var/energy_transfer = delta_temperature*hot_air_heat_capacity*cold_air_heat_capacity/(hot_air_heat_capacity+cold_air_heat_capacity) + var/energy_transfer = delta_temperature*hot_air_heat_capacity + // gives enegry of temp above cold air temp - var/heat = energy_transfer*(1-efficiency) + var/heat = energy_transfer*(1-efficiency) * (cold_air_heat_capacity + hot_air_heat_capacity) lastgen += energy_transfer*efficiency - hot_air.set_temperature(hot_air.return_temperature() - energy_transfer/hot_air_heat_capacity) - cold_air.set_temperature(cold_air.return_temperature() + heat/cold_air_heat_capacity) + hot_air.set_temperature(hot_air.return_temperature() - heat) + cold_air.set_temperature(cold_air.return_temperature() + heat) //add_avail(lastgen) This is done in process now // update icon overlays only if displayed level has changed From 7c3db6396d2af78cf1d62e52749782710b679af5 Mon Sep 17 00:00:00 2001 From: Lostlarry Date: Wed, 21 Jul 2021 11:29:36 +0200 Subject: [PATCH 3/8] comments --- code/modules/power/generator.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index 7b540d803a7b..ac89a0339de9 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -76,14 +76,14 @@ if(temp_diff > 0 && cold_air_heat_capacity > 0 && hot_air_heat_capacity > 0) var/efficiency = 0.65 - var/energy_transfer = delta_temperature*hot_air_heat_capacity + var/energy_transfer = temp_diff*hot_air_heat_capacity // gives enegry of temp above cold air temp - var/heat = energy_transfer*(1-efficiency) * (cold_air_heat_capacity + hot_air_heat_capacity) + var/delata_temprature = energy_transfer*(1-efficiency) * (cold_air_heat_capacity + hot_air_heat_capacity) // gives how much tempreature changes lastgen += energy_transfer*efficiency - hot_air.set_temperature(hot_air.return_temperature() - heat) - cold_air.set_temperature(cold_air.return_temperature() + heat) + hot_air.set_temperature(hot_air.return_temperature() - delata_temprature) // this bit may be wrong will need to think about it + cold_air.set_temperature(cold_air.return_temperature() + delata_temprature) //add_avail(lastgen) This is done in process now // update icon overlays only if displayed level has changed From f0855577fe1108f49ccb52be7a39f8eebbfc52cf Mon Sep 17 00:00:00 2001 From: Lostlarry Date: Wed, 21 Jul 2021 11:31:26 +0200 Subject: [PATCH 4/8] fixed typo --- code/modules/power/generator.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index ac89a0339de9..dcfa0f5e2aa5 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -79,11 +79,11 @@ var/energy_transfer = temp_diff*hot_air_heat_capacity // gives enegry of temp above cold air temp - var/delata_temprature = energy_transfer*(1-efficiency) * (cold_air_heat_capacity + hot_air_heat_capacity) // gives how much tempreature changes + var/delta_temprature = energy_transfer*(1-efficiency) * (cold_air_heat_capacity + hot_air_heat_capacity) // gives how much tempreature changes lastgen += energy_transfer*efficiency - hot_air.set_temperature(hot_air.return_temperature() - delata_temprature) // this bit may be wrong will need to think about it - cold_air.set_temperature(cold_air.return_temperature() + delata_temprature) + hot_air.set_temperature(hot_air.return_temperature() - delta_temprature) // this bit may be wrong will need to think about it + cold_air.set_temperature(cold_air.return_temperature() + delta_temprature) //add_avail(lastgen) This is done in process now // update icon overlays only if displayed level has changed From 5f647c117e357e3a4879f03097e283909c880935 Mon Sep 17 00:00:00 2001 From: Lostlarry Date: Wed, 21 Jul 2021 13:23:37 +0200 Subject: [PATCH 5/8] is this more accurate? --- code/modules/power/generator.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index dcfa0f5e2aa5..d09dd06ec5de 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -82,7 +82,7 @@ var/delta_temprature = energy_transfer*(1-efficiency) * (cold_air_heat_capacity + hot_air_heat_capacity) // gives how much tempreature changes lastgen += energy_transfer*efficiency - hot_air.set_temperature(hot_air.return_temperature() - delta_temprature) // this bit may be wrong will need to think about it + hot_air.set_temperature(hot_air.return_temperature() - energy_transfer / hot_air_heat_capacity) // this bit may be wrong will need to think about it cold_air.set_temperature(cold_air.return_temperature() + delta_temprature) //add_avail(lastgen) This is done in process now From fcaf1fb3020b756e1b9438a8c17e19f225d049f9 Mon Sep 17 00:00:00 2001 From: Lostlarry Date: Wed, 21 Jul 2021 16:54:43 +0200 Subject: [PATCH 6/8] not it should work like normal physics does --- code/modules/power/generator.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index d09dd06ec5de..9dee1e1a88cc 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -79,11 +79,11 @@ var/energy_transfer = temp_diff*hot_air_heat_capacity // gives enegry of temp above cold air temp - var/delta_temprature = energy_transfer*(1-efficiency) * (cold_air_heat_capacity + hot_air_heat_capacity) // gives how much tempreature changes + var/output_temprature = cold_air.return_temperature() + energy_transfer*(1-efficiency) * (cold_air_heat_capacity + hot_air_heat_capacity) // gives how much tempreature changes lastgen += energy_transfer*efficiency - hot_air.set_temperature(hot_air.return_temperature() - energy_transfer / hot_air_heat_capacity) // this bit may be wrong will need to think about it - cold_air.set_temperature(cold_air.return_temperature() + delta_temprature) + hot_air.set_temperature(output_temprature) // this bit may be wrong will need to think about it + cold_air.set_temperature(output_temprature) //add_avail(lastgen) This is done in process now // update icon overlays only if displayed level has changed From 2065f22fab0595ad03e5464fa9a5a6834505dfea Mon Sep 17 00:00:00 2001 From: Lostlarry Date: Thu, 22 Jul 2021 21:26:58 +0200 Subject: [PATCH 7/8] framework is done --- code/modules/power/generator.dm | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index 9dee1e1a88cc..033e220c9399 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -13,6 +13,9 @@ var/lastgen = 0 var/lastgenlev = -1 + var/internal_heat_cap = 1000 //needs experimantal data + var/internal_temp = T0C + /obj/machinery/power/generator/Initialize(mapload) . = ..() find_circs() @@ -62,28 +65,36 @@ return if(powernet) - var/datum/gas_mixture/cold_air = cold_circ.return_transfer_air() //ciculators decide how much air moves torugh + var/datum/gas_mixture/cold_air = cold_circ.return_transfer_air() //circulators give us air that is moving trough var/datum/gas_mixture/hot_air = hot_circ.return_transfer_air() if(cold_air && hot_air) - var/cold_air_heat_capacity = cold_air.heat_capacity() - var/hot_air_heat_capacity = hot_air.heat_capacity() + var/cold_air_heat_cap = cold_air.heat_capacity() // not sure if this isnt pointless + var/hot_air_heat_cap = hot_air.heat_capacity() + + var/cold_temp = cold_air.return_temperature() + var/hot_temp = hot_air.return_temperature() + + if((hot_temp - cold_temp) > 0 && cold_air_heat_cap > 0 && hot_air_heat_cap > 0) - var/temp_diff = hot_air.return_temperature() - cold_air.return_temperature() + //air moving trough equalises temperature with it subsection + var/cold_subsection_temp = (cold_air_heat_cap * cold_temp + internal_heat_cap * internal_temp) / (internal_heat_cap + cold_air_heat_cap) + var/hot_subsection_temp = (hot_air_heat_cap * hot_temp + internal_heat_cap * internal_temp) / (internal_heat_cap + hot_air_heat_cap) + hot_air.set_temperature(hot_subsection_temp) // cooled / heated air gets spit back out + cold_air.set_temperature(cold_subsection_temp) - if(temp_diff > 0 && cold_air_heat_capacity > 0 && hot_air_heat_capacity > 0) var/efficiency = 0.65 - var/energy_transfer = temp_diff*hot_air_heat_capacity - // gives enegry of temp above cold air temp + //how much energy do we have stored in temperature differetial + var/energy_transfer = (hot_subsection_temp - cold_subsection_temp)*internal_heat_cap - var/output_temprature = cold_air.return_temperature() + energy_transfer*(1-efficiency) * (cold_air_heat_capacity + hot_air_heat_capacity) // gives how much tempreature changes + //produce electricity lastgen += energy_transfer*efficiency - hot_air.set_temperature(output_temprature) // this bit may be wrong will need to think about it - cold_air.set_temperature(output_temprature) + //transfer rest of energy into waste heat/chill + internal_temp = cold_subsection_temp + energy_transfer * (1 - efficiency) / (internal_heat_cap * 2) //add_avail(lastgen) This is done in process now // update icon overlays only if displayed level has changed From 9ff587dfe366d6a6c73abdeb273cbb2ab7a3d50c Mon Sep 17 00:00:00 2001 From: Lostlarry <51096401+Lostlarry@users.noreply.github.com> Date: Tue, 3 Aug 2021 20:18:57 +0200 Subject: [PATCH 8/8] Update code/modules/power/generator.dm Co-authored-by: adamsong --- code/modules/power/generator.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index 033e220c9399..3fff4e5159fd 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -65,7 +65,7 @@ return if(powernet) - var/datum/gas_mixture/cold_air = cold_circ.return_transfer_air() //circulators give us air that is moving trough + var/datum/gas_mixture/cold_air = cold_circ.return_transfer_air() //circulators give us air that is moving through var/datum/gas_mixture/hot_air = hot_circ.return_transfer_air() if(cold_air && hot_air) @@ -293,4 +293,4 @@ /obj/machinery/power/generator/obj_break(damage_flag) kill_circs() ..() - \ No newline at end of file +