RCAIDE.Library.Methods.Powertrain.Converters.Motor.design_optimal_motor

design_optimal_motor#

design_optimal_motor(motor)[source]#

Sizes a DC motor to obtain the best combination of speed constant and resistance values by sizing the motor for a design RPM value.

Parameters:

motor (RCAIDE.Library.Components.Powertrain.Converters.DC_Motor) –

Motor component with the following attributes:
  • no_load_currentfloat

    No-load current [A]

  • nominal_voltagefloat

    Nominal voltage [V]

  • design_angular_velocityfloat

    Angular velocity [radians/s]

  • efficiencyfloat

    Efficiency [unitless]

  • design_torquefloat

    Design torque [N·m]

  • gearboxData
    Gearbox component
    • gear_ratiofloat

      Gear ratio [unitless]

Returns:

motor

Motor with updated attributes:
  • speed_constantfloat

    Speed constant [unitless]

  • resistancefloat

    Resistance [ohms]

  • design_currentfloat

    Design current [A]

Return type:

RCAIDE.Library.Components.Powertrain.Converters.DC_Motor

Notes

This function uses numerical optimization to find the optimal values of speed constant and resistance that satisfy the motor’s design requirements. It attempts to solve the optimization problem with hard constraints first, and if that fails, it uses slack constraints.

The optimization process follows these steps:
  1. Extract motor design parameters (voltage, angular velocity, efficiency, torque)

  2. Define optimization bounds for speed constant and resistance

  3. Set up hard constraints for efficiency and torque

  4. Attempt optimization with hard constraints

  5. If optimization fails, retry with slack constraints

  6. Update the motor with the optimized parameters

The objective function minimizes the current draw for a given voltage, angular velocity, and torque requirement.

Major Assumptions
  • The motor follows a DC motor model

  • The optimization bounds are appropriate for the motor size

  • If hard constraints cannot be satisfied, slack constraints are acceptable

Theory The motor model uses the following relationships:

  • Current: \(I = (V - \omega/Kv)/R\)

  • Torque: \(T = (I - I₀)/Kv\)

  • Efficiency: \(\eta = (1 - (I₀\cdot R)/(V - \omega/Kv))\cdot(\omega/(V\cdot Kv))\)

where:
  • V is the nominal voltage

  • ω is the angular velocity

  • Kv is the speed constant

  • R is the resistance

  • I₀ is the no-load current

  • T is the torque

  • η is the efficiency

objective(x, v, omega, etam, Q, io, G)[source]#
hard_constraint_1(x, v, omega, etam, Q, io, G)[source]#
hard_constraint_2(x, v, omega, etam, Q, io, G)[source]#
slack_constraint_1(x, v, omega, etam, Q, io, G)[source]#
slack_constraint_2(x, v, omega, etam, Q, io, G)[source]#