From 489411e8c43bc4bd3878f9c97aba89b59ad33053 Mon Sep 17 00:00:00 2001
From: Jonathan Redpath <legoboyvdlp@gmail.com>
Date: Mon, 3 Jan 2022 21:43:55 +0000
Subject: [PATCH] HYD: improve fire valve code; add 1500 feet inhibition for
 PTU

---
 A320-main.xml              |   4 +-
 Systems/a320-hydraulic.xml | 128 +++++++++++++++++++++++++------------
 2 files changed, 88 insertions(+), 44 deletions(-)

diff --git a/A320-main.xml b/A320-main.xml
index 2f24d876..823c5cf0 100644
--- a/A320-main.xml
+++ b/A320-main.xml
@@ -1340,7 +1340,7 @@
 				<blue-elec-ovht type="bool">0</blue-elec-ovht>
 				<blue-leak type="bool">0</blue-leak>
 				<blue-reservoir-air-press-lo type="bool">0</blue-reservoir-air-press-lo> <!-- true at 22 psi relative, false at 25 psi relative -->
-				<blue-reservoir-ovht type="bool">0</blue-reservoir-ovht> <!-- 95 deg -->
+				<blue-reservoir-ovht type="bool">0</blue-reservoir-ovht> <!-- 95 deg, cancel at 88.4 deg -->
 				<green-edp type="bool">0</green-edp>
 				<green-leak type="bool">0</green-leak>
 				<green-reservoir-air-press-lo type="bool">0</green-reservoir-air-press-lo>
@@ -1348,7 +1348,7 @@
 				<ptu type="bool">0</ptu>
 				<yellow-edp type="bool">0</yellow-edp>
 				<yellow-elec type="bool">0</yellow-elec>
-				<yellow-elec-ovht type="bool">0</yellow-elec-ovht>
+				<yellow-elec-ovht type="bool">0</yellow-elec-ovht> <!-- 162 deg -->
 				<yellow-leak type="bool">0</yellow-leak>
 				<yellow-reservoir-air-press-lo type="bool">0</yellow-reservoir-air-press-lo>
 				<yellow-reservoir-ovht type="bool">0</yellow-reservoir-ovht>
diff --git a/Systems/a320-hydraulic.xml b/Systems/a320-hydraulic.xml
index bd034982..13afd59a 100644
--- a/Systems/a320-hydraulic.xml
+++ b/Systems/a320-hydraulic.xml
@@ -133,6 +133,16 @@
 			<default value="/systems/hydraulic/sources/rat/source-psi"/>
 		</switch>
 		
+		
+		<!-- TODO PSI according to flow rate
+		0 L / M = 2987 psi
+		23 L / M = 2854 psi
+		32 L / M = 2175 psi
+		
+		Power Draw 45A at speed of 7600 RPM to 8000 RPM max load
+		Startup Draw 138A
+		-->
+		
 		<!-- Elec Blue -->
 		<switch name="/systems/hydraulic/sources/blue-elec/pump-operate">
 			<default value="0"/>
@@ -204,6 +214,11 @@
 			</test>
 		</switch>
 		
+		<!-- TODO PSI according to flow rate
+		0 L / M = 3000 psi
+		140 L / M = 2854 psi
+		-->
+		
 		<!-- EDP Green -->
 		<fcs_function name="/systems/hydraulic/sources/green-edp/source-psi">
 			<function>
@@ -233,7 +248,6 @@
 			<default value="0"/>
 			<test value="/systems/hydraulic/sources/green-edp/source-psi">
 				/controls/hydraulic/switches/green-edp eq 1
-				/systems/hydraulic/sources/green-edp/fire-valve lt 0.10
 			</test>
 		</switch>
 		
@@ -250,6 +264,15 @@
 			</test>
 		</switch>
 		
+		<!-- TODO PSI according to flow rate
+		0 L / M = 2987 psi
+		23 L / M = 2842 psi
+		32 L / M = 2175 psi
+		
+		Power Draw 45A at full speed of 7700 RPM
+		Startup 138A
+		-->
+		
 		<fcs_function name="/systems/hydraulic/sources/yellow-elec/source-psi">
 			<function>
 				<table>
@@ -269,6 +292,12 @@
 			</test>
 		</switch>
 		
+		
+		<!-- TODO PSI according to flow rate
+		0 L / M = 3000 psi
+		140 L / M = 2854 psi
+		-->
+		
 		<!-- EDP Yellow -->
 		<fcs_function name="/systems/hydraulic/sources/yellow-edp/source-psi">
 			<function>
@@ -298,7 +327,6 @@
 			<default value="0"/>
 			<test value="/systems/hydraulic/sources/yellow-edp/source-psi">
 				/controls/hydraulic/switches/yellow-edp eq 1
-				/systems/hydraulic/sources/yellow-edp/fire-valve lt 0.10
 			</test>
 		</switch>
 		
@@ -345,17 +373,20 @@
 		
 		<fcs_function name="/systems/hydraulic/green-psi-cmd">
 			<function>
-				<ifthen>
-					<ge>
-						<property>/systems/hydraulic/green-qty</property>
-						<value>1.0</value>
-					</ge>
-					<max>
-						<property>/systems/hydraulic/green-psi-cmd-pump</property>
-						<property>/systems/hydraulic/sources/ptu/yellow-green</property>
-					</max>
-					<value>0</value>
-				</ifthen>
+				<product>
+					<ifthen>
+						<ge>
+							<property>/systems/hydraulic/green-qty</property>
+							<value>1.0</value>
+						</ge>
+						<max>
+							<property>/systems/hydraulic/green-psi-cmd-pump</property>
+							<property>/systems/hydraulic/sources/ptu/yellow-green</property>
+						</max>
+						<value>0</value>
+					</ifthen>
+					<property>/systems/hydraulic/sources/green-edp/fire-valve</property>
+				</product>
 			</function>
 		</fcs_function>
 		
@@ -389,17 +420,20 @@
 		
 		<fcs_function name="/systems/hydraulic/yellow-psi-cmd">
 			<function>
-				<ifthen>
-					<ge>
-						<property>/systems/hydraulic/yellow-qty</property>
-						<value>1.0</value>
-					</ge>
-					<max>
-						<property>/systems/hydraulic/yellow-psi-cmd-pump</property>
-						<property>/systems/hydraulic/sources/ptu/green-yellow</property>
-					</max>
-					<value>0</value>
-				</ifthen>
+				<product>
+					<ifthen>
+						<ge>
+							<property>/systems/hydraulic/yellow-qty</property>
+							<value>1.0</value>
+						</ge>
+						<max>
+							<property>/systems/hydraulic/yellow-psi-cmd-pump</property>
+							<property>/systems/hydraulic/sources/ptu/green-yellow</property>
+						</max>
+						<value>0</value>
+					</ifthen>
+					<property>/systems/hydraulic/sources/yellow-edp/fire-valve</property>
+				</product>
 			</function>
 		</fcs_function>
 
@@ -442,10 +476,6 @@
 			<rate_limit sense="decr">/systems/hydraulic/sys-decr-rate</rate_limit>
 		</actuator>
 		
-	</channel>
-		
-	<channel name="Power Transfer Unit" execrate="8">
-		<!-- PTU -->
 		<fcs_function name="/systems/hydraulic/yellow-psi-diff">
 			<function>
 				<difference>
@@ -455,9 +485,15 @@
 			</function>
 		</fcs_function>
 		
+	</channel>
+		
+	<channel name="Power Transfer Unit" execrate="8">
+		<!-- PTU -->
+		<!-- todo - add yellow pump running to close cargo doors inhibits PTU -->
 		<switch name="/systems/hydraulic/sources/ptu/ptu-inhibited">
 			<default value="0"/>
 			<test logic="AND" value="1">
+				/systems/electrical/bus/dc-service-bus ge 25
 				/gear/gear[0]/compression-norm ne 0
 				<test logic="OR">
 					<test logic="AND">
@@ -501,18 +537,38 @@
 			</test>
 		</switch>
 		
+		<!-- Direction -->
 		<switch name="/systems/hydraulic/sources/ptu/green-yellow">
 			<default value="0"/>
 			<test logic="AND" value="/systems/hydraulic/green-psi-ptu">
+				<test logic="OR">
+					/position/altitude-ft ge 1500
+					/gear/gear[0]/compression-norm ne 0
+				</test>
+				/systems/electrical/bus/dc-service-bus ge 25
 				/controls/hydraulic/switches/ptu eq 1
 				/systems/hydraulic/sources/ptu/ptu-hydraulic-condition eq 1
 				/systems/hydraulic/sources/ptu/ptu-inhibited eq 0
-				/systems/electrical/bus/dc-2 ge 25
 				/systems/failures/hydraulic/ptu ne 1
-				/systems/hydraulic/sources/yellow-edp/fire-valve lt 0.10
 			</test>
 		</switch>
 		
+		<switch name="/systems/hydraulic/sources/ptu/yellow-green">
+			<default value="0"/>
+			<test logic="AND" value="/systems/hydraulic/yellow-psi-ptu">
+				<test logic="OR">
+					/position/altitude-ft ge 1500
+					/gear/gear[0]/compression-norm ne 0
+				</test>
+				/systems/electrical/bus/dc-service-bus ge 25
+				/controls/hydraulic/switches/ptu eq 1
+				/systems/hydraulic/sources/ptu/ptu-hydraulic-condition eq 1
+				/systems/hydraulic/sources/ptu/ptu-inhibited eq 0
+				/systems/failures/hydraulic/ptu ne 1
+			</test>
+		</switch>
+		
+		<!-- fade in loop sound over 1 second -->
 		<switch name="/systems/hydraulic/sources/ptu/ptu-loop-sound-cmd">
 			<default value="0"/>
 			<test logic="OR" value="1">
@@ -527,18 +583,6 @@
 			<rate_limit sense="decr">120</rate_limit> <!-- instant -->
 		</actuator>
 		
-		<switch name="/systems/hydraulic/sources/ptu/yellow-green">
-			<default value="0"/>
-			<test logic="AND" value="/systems/hydraulic/yellow-psi-ptu">
-				/controls/hydraulic/switches/ptu eq 1
-				/systems/hydraulic/sources/ptu/ptu-hydraulic-condition eq 1
-				/systems/hydraulic/sources/ptu/ptu-inhibited eq 0
-				/systems/electrical/bus/dc-2 ge 25
-				/systems/failures/hydraulic/ptu ne 1
-				/systems/hydraulic/sources/green-edp/fire-valve lt 0.10
-			</test>
-		</switch>
-		
 	</channel>
 	
 	<channel name="Brakes" execrate="8">