calculateInertia
Definition
-- @/lua/vehicle/powertrain/shaft.lua:192
local function calculateInertia(device)
local outputInertia
local cumulativeGearRatio = 1
local maxCumulativeGearRatio = 1
if device.children and #device.children > 0 then
local child = device.children[1]
outputInertia = child.cumulativeInertia
cumulativeGearRatio = child.cumulativeGearRatio
maxCumulativeGearRatio = child.maxCumulativeGearRatio
elseif device.connectedWheel then
local axisInertia = 0
local wheel = powertrain.wheels[device.connectedWheel]
local hubNode1 = vec3(v.data.nodes[wheel.node1].pos)
local hubNode2 = vec3(v.data.nodes[wheel.node2].pos)
for _, nid in pairs(wheel.nodes) do
local n = v.data.nodes[nid]
local distanceToAxis = vec3(n.pos):distanceToLine(hubNode1, hubNode2)
axisInertia = axisInertia + (n.nodeWeight * (distanceToAxis * distanceToAxis))
end
--print(device.connectedWheel .. " Hub-Axis Inertia: " .. axisInertia .. " kgm^2")
outputInertia = axisInertia
else
--Nothing connected to this shaft :(
outputInertia = device.virtualInertia --some default inertia
end
device.cumulativeInertia = outputInertia / device.gearRatio / device.gearRatio
device.invCumulativeInertia = device.cumulativeInertia > 0 and 1 / device.cumulativeInertia or 0
device.cumulativeGearRatio = cumulativeGearRatio * device.gearRatio
device.maxCumulativeGearRatio = maxCumulativeGearRatio * device.gearRatio
end
Callers
@/lua/vehicle/powertrain/dctGearbox.lua
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/frictionClutch.lua
device.damageLockTorqueCoef = max(device.damageLockTorqueCoef - linearScale(damageAmount, 0, 0.01, 0, 0.1), 0.2)
device:calculateInertia()
end
device:calculateInertia()
end
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/viscousClutch.lua
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/linearActuator.lua
local function calculateInertia(device)
local outputInertia
@/lua/vehicle/powertrain/manualGearbox.lua
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/electricMotor.lua
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/electricServo.lua
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/hydraulicAccumulator.lua
local function calculateInertia(device)
local outputInertia
@/lua/vehicle/powertrain/centrifugalClutch.lua
device.damageLockTorqueCoef = max(device.damageLockTorqueCoef - linearScale(damageAmount, 0, 0.01, 0, 0.1), 0.2)
device:calculateInertia()
end
device:calculateInertia()
end
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/automaticGearbox.lua
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain.lua
for i = deviceCount, 1, -1 do
orderedDevices[i]:calculateInertia()
--log("D", "powertrain.calculateTreeInertia", string.format("Cumulative downstream inertia for %s: %.3f", orderedDevices[i].name, orderedDevices[i].cumulativeInertia))
@/lua/vehicle/powertrain/rangeBox.lua
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/genericTorqueProvider.lua
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/sequentialGearbox.lua
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/hydraulicPump.lua
local function calculateInertia(device)
local outputInertia
@/lua/vehicle/powertrain/multiShaft.lua
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/combustionEngine.lua
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/torqueConverter.lua
device:calculateInertia()
end
device:calculateInertia()
end
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/electricWinch.lua
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/cvtGearbox.lua
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/compressor.lua
local function calculateInertia(device)
local outputInertia
@/lua/vehicle/powertrain/torsionReactor.lua
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/splitShaft.lua
local function calculateInertia(device)
local outputInertia = 0
@/lua/vehicle/powertrain/differential.lua
local function calculateInertia(device)
local outputInertia = 0