Source code for suboptimumg.vehicle.driver_interface.driver_interface

from ...constants import *
from ..models import VehicleModel


[docs] class DriverInterface: def __init__( self, vehicle_model: VehicleModel, ): self.vehicle_model = vehicle_model self.params = vehicle_model.dri
[docs] def calc_force_ratio(self): """ Calculate the force ratio between front and rear brakes. Returns ------- float Force ratio where f_front = f_rear * force_ratio """ # Calculate force ratio (front/rear) from brake bias return self.params.brake_bias / (1 - self.params.brake_bias)
[docs] def update_forces(self, front_min_f, rear_min_f): """ Update tire forces based on brake bias. Parameters ---------- front_min_f : float Minimum acceleration force between front tires rear_min_f : float Minimum acceleration force between rear tires Returns ------- tuple Updated (front_min_f, rear_min_f) values that respect brake bias """ force_ratio = self.calc_force_ratio() # Calculate limits based on force ratio front_limit = rear_min_f * force_ratio rear_limit = front_min_f / force_ratio # Apply limits to ensure brake bias is maintained updated_front_min_f = min(front_min_f, front_limit) updated_rear_min_f = min(rear_min_f, rear_limit) return updated_front_min_f, updated_rear_min_f