Add machine workshop, typed logic, mechanics and sensor-driven ECUs

This commit is contained in:
max
2026-11-02 07:27:13 +01:00
parent eb2b6366c2
commit abfcce0f46
99 changed files with 28835 additions and 145 deletions

View File

@@ -0,0 +1,165 @@
format = 7
name = 'Ideal sensor bench'
primary_shaft = 6
next_id = 8
next_sensor_id = 7
cells_per_meter = 40.0
solver = 'rusanov'
scene = 0
[[parts]]
id = 1
kind = 'reservoir'
name = 'Compressed air supply'
position_m = [-0.5, 0.25, 0.0]
pressure_pa = 200000.0
temperature_k = 300.0
[[parts]]
id = 2
kind = 'throttle'
name = 'Fixed opening valve'
position_m = [-0.1, 0.25, 0.0]
size_m = [0.04, 0.05, 0.05]
pedal_control = false
opening = 0.45
[[parts]]
id = 3
kind = 'chamber'
name = 'Receiving tank'
position_m = [0.3, 0.25, 0.0]
size_m = [0.12, 0.12, 0.12]
[[parts]]
id = 4
kind = 'pipe'
name = 'Supply pipe'
position_m = [0.0, 0.0, 0.0]
points_m = [[-0.5, 0.25, 0.0], [-0.12, 0.25, 0.0]]
point_diameters_m = [0.04, 0.04]
[[parts]]
id = 5
kind = 'pipe'
name = 'Measured filling pipe'
position_m = [0.0, 0.0, 0.0]
points_m = [[-0.08, 0.25, 0.0], [0.24, 0.25, 0.0]]
point_diameters_m = [0.04, 0.04]
[[parts]]
id = 6
kind = 'shaft'
name = 'Pickup demonstration shaft'
position_m = [0.1, 0.2, 0.3]
size_m = [0.25, 0.035, 0.035]
[parts.shaft]
inertia_kg_m2 = 0.15
[[parts]]
id = 7
kind = 'drive_motor'
name = 'Ideal speed drive'
position_m = [-0.25, 0.2, 0.3]
size_m = [0.12, 0.09, 0.09]
[parts.drive]
speed_control = true
target_speed_rad_s = 188.49556
enabled = true
[[connections]]
a_part = 4
a_port = 'start'
b_part = 1
b_port = 'gas'
method = 'orifice'
[[connections]]
a_part = 4
a_port = 'end'
b_part = 2
b_port = 'inlet'
method = 'orifice'
[[connections]]
a_part = 5
a_port = 'start'
b_part = 2
b_port = 'outlet'
method = 'orifice'
[[connections]]
a_part = 5
a_port = 'end'
b_part = 3
b_port = 'face_x_negative'
method = 'orifice'
[[connections]]
a_part = 6
a_port = 'shaft'
b_part = 7
b_port = 'shaft'
method = 'mechanical'
[[sensors]]
id = 1
kind = 'pressure'
name = 'Tank absolute pressure'
target = {part = 3, position = 0.5, label = 'Receiving tank'}
reference = {part = 0, position = 0.5, label = ''}
[[sensors]]
id = 2
kind = 'gas_temperature'
name = 'Tank gas temperature'
target = {part = 3, position = 0.5, label = 'Receiving tank'}
reference = {part = 0, position = 0.5, label = ''}
[[sensors]]
id = 3
kind = 'differential_pressure'
name = 'Supply minus tank pressure'
target = {part = 1, position = 0.5, label = 'Compressed air supply'}
reference = {part = 3, position = 0.5, label = 'Receiving tank'}
[[sensors]]
id = 4
kind = 'mass_flow'
name = 'Signed total filling flow'
target = {part = 5, position = 0.5, label = 'Measured filling pipe'}
reference = {part = 0, position = 0.5, label = ''}
[[sensors]]
id = 5
kind = 'crank'
name = 'Shaft speed and crank position'
angle_offset_rad = 0.0
target = {part = 6, position = 0.5, label = 'Pickup demonstration shaft'}
reference = {part = 0, position = 0.5, label = ''}
[[sensors]]
id = 6
kind = 'throttle_position'
name = 'Valve mechanism opening'
target = {part = 2, position = 0.5, label = 'Fixed opening valve'}
reference = {part = 0, position = 0.5, label = ''}
[[probes]]
id = 1
part = 3
name = 'Tank pressure'
quantity = 0
[[probes]]
id = 2
part = 5
name = 'Total filling flow'
quantity = 2
position = 0.5
[[probes]]
id = 3
part = 6
name = 'Demonstration shaft RPM'
quantity = 6