VE Lua Documentation

Press F to search!

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