YAMS
Yet Another Mechanism System
Loading...
Searching...
No Matches
Public Member Functions | List of all members
yams::motorcontrollers::SimSupplier Class Referenceabstract

#include <SimSupplier.hpp>

Inheritance diagram for yams::motorcontrollers::SimSupplier:
Inheritance graph
[legend]

Public Member Functions

virtual ~SimSupplier ()=default
 
virtual void UpdateSim ()=0
 
virtual bool GetUpdatedSim ()=0
 
virtual void FeedUpdateSim ()=0
 
virtual void StarveUpdateSim ()=0
 
virtual bool IsInputFed ()=0
 
virtual void FeedInput ()=0
 
virtual void StarveInput ()=0
 
virtual void SetMechanismStatorDutyCycle (double dutyCycle)=0
 
virtual wpi::units::volt_t GetMechanismSupplyVoltage ()=0
 
virtual wpi::units::volt_t GetMechanismStatorVoltage ()=0
 
virtual void SetMechanismStatorVoltage (wpi::units::volt_t volts)=0
 
virtual wpi::units::turn_t GetMechanismPosition ()=0
 
virtual void SetMechanismPosition (wpi::units::turn_t angle)=0
 
virtual wpi::units::turn_t GetRotorPosition ()=0
 
virtual wpi::units::turns_per_second_t GetMechanismVelocity ()=0
 
virtual void SetMechanismVelocity (wpi::units::turns_per_second_t velocity)=0
 
virtual wpi::units::turns_per_second_t GetRotorVelocity ()=0
 
virtual wpi::units::turns_per_second_squared_t GetMechanismAcceleration ()=0
 
virtual wpi::units::turns_per_second_squared_t GetRotorAcceleration ()=0
 
virtual void SetRotorPosition (wpi::units::turn_t angle)=0
 
virtual void SetRotorVelocity (wpi::units::turns_per_second_t velocity)=0
 
virtual wpi::units::ampere_t GetStatorCurrent ()=0
 
virtual wpi::units::ampere_t GetSupplyCurrent ()=0
 

Detailed Description

Abstract interface for simulation state providers.

Implementors feed simulated mechanism and rotor positions/velocities back into a SmartMotorController during simulation iterations.

Constructor & Destructor Documentation

◆ ~SimSupplier()

virtual yams::motorcontrollers::SimSupplier::~SimSupplier ( )
virtualdefault

Member Function Documentation

◆ FeedInput()

virtual void yams::motorcontrollers::SimSupplier::FeedInput ( )
pure virtual

◆ FeedUpdateSim()

virtual void yams::motorcontrollers::SimSupplier::FeedUpdateSim ( )
pure virtual

◆ GetMechanismAcceleration()

virtual wpi::units::turns_per_second_squared_t yams::motorcontrollers::SimSupplier::GetMechanismAcceleration ( )
pure virtual

Get the simulated mechanism angular acceleration.

Returns
Mechanism acceleration in turns per second squared.

Implemented in yams::motorcontrollers::simulation::ArmSimSupplier, yams::motorcontrollers::simulation::DCMotorSimSupplier, and yams::motorcontrollers::simulation::ElevatorSimSupplier.

◆ GetMechanismPosition()

virtual wpi::units::turn_t yams::motorcontrollers::SimSupplier::GetMechanismPosition ( )
pure virtual

◆ GetMechanismStatorVoltage()

virtual wpi::units::volt_t yams::motorcontrollers::SimSupplier::GetMechanismStatorVoltage ( )
pure virtual

Get the voltage applied to the simulated motor.

Returns
Stator voltage in volts.

Implemented in yams::motorcontrollers::simulation::ArmSimSupplier, yams::motorcontrollers::simulation::DCMotorSimSupplier, and yams::motorcontrollers::simulation::ElevatorSimSupplier.

◆ GetMechanismSupplyVoltage()

virtual wpi::units::volt_t yams::motorcontrollers::SimSupplier::GetMechanismSupplyVoltage ( )
pure virtual

Get the supply voltage available to the simulated motor controller (bus voltage).

Returns
Supply voltage in volts.

Implemented in yams::motorcontrollers::simulation::ArmSimSupplier, yams::motorcontrollers::simulation::DCMotorSimSupplier, and yams::motorcontrollers::simulation::ElevatorSimSupplier.

◆ GetMechanismVelocity()

virtual wpi::units::turns_per_second_t yams::motorcontrollers::SimSupplier::GetMechanismVelocity ( )
pure virtual

Get the simulated mechanism velocity.

Returns
Mechanism velocity in turns per second.

Implemented in yams::motorcontrollers::simulation::ArmSimSupplier, yams::motorcontrollers::simulation::DCMotorSimSupplier, and yams::motorcontrollers::simulation::ElevatorSimSupplier.

◆ GetRotorAcceleration()

virtual wpi::units::turns_per_second_squared_t yams::motorcontrollers::SimSupplier::GetRotorAcceleration ( )
pure virtual

Get the simulated rotor angular acceleration.

Returns
Rotor acceleration in turns per second squared.

Implemented in yams::motorcontrollers::simulation::ArmSimSupplier, yams::motorcontrollers::simulation::DCMotorSimSupplier, and yams::motorcontrollers::simulation::ElevatorSimSupplier.

◆ GetRotorPosition()

virtual wpi::units::turn_t yams::motorcontrollers::SimSupplier::GetRotorPosition ( )
pure virtual

◆ GetRotorVelocity()

virtual wpi::units::turns_per_second_t yams::motorcontrollers::SimSupplier::GetRotorVelocity ( )
pure virtual

◆ GetStatorCurrent()

virtual wpi::units::ampere_t yams::motorcontrollers::SimSupplier::GetStatorCurrent ( )
pure virtual

◆ GetSupplyCurrent()

virtual wpi::units::ampere_t yams::motorcontrollers::SimSupplier::GetSupplyCurrent ( )
pure virtual

Get the simulated supply (battery) current: duty cycle times stator current, filtered by a 0.1 s single-pole IIR filter.

Returns
Supply current in amperes.

Implemented in yams::motorcontrollers::simulation::ArmSimSupplier, yams::motorcontrollers::simulation::DCMotorSimSupplier, and yams::motorcontrollers::simulation::ElevatorSimSupplier.

◆ GetUpdatedSim()

virtual bool yams::motorcontrollers::SimSupplier::GetUpdatedSim ( )
pure virtual

Whether the simulation has already been stepped this loop.

Returns
true if UpdateSim() stepped the physics since the last StarveUpdateSim().

Implemented in yams::motorcontrollers::simulation::ArmSimSupplier, yams::motorcontrollers::simulation::DCMotorSimSupplier, and yams::motorcontrollers::simulation::ElevatorSimSupplier.

◆ IsInputFed()

virtual bool yams::motorcontrollers::SimSupplier::IsInputFed ( )
pure virtual

Whether an input voltage was supplied directly this loop (e.g. from a hardware sim state).

Returns
true if the input was fed since the simulation last stepped.

Implemented in yams::motorcontrollers::simulation::ArmSimSupplier, yams::motorcontrollers::simulation::DCMotorSimSupplier, and yams::motorcontrollers::simulation::ElevatorSimSupplier.

◆ SetMechanismPosition()

virtual void yams::motorcontrollers::SimSupplier::SetMechanismPosition ( wpi::units::turn_t  angle)
pure virtual

Set the simulated mechanism position.

Parameters
angleMechanism position to inject.

Implemented in yams::motorcontrollers::simulation::ArmSimSupplier, yams::motorcontrollers::simulation::DCMotorSimSupplier, and yams::motorcontrollers::simulation::ElevatorSimSupplier.

◆ SetMechanismStatorDutyCycle()

virtual void yams::motorcontrollers::SimSupplier::SetMechanismStatorDutyCycle ( double  dutyCycle)
pure virtual

Apply a duty cycle of the supply voltage as the motor input (feeds the input).

Parameters
dutyCycleDuty cycle in [-1, 1].

Implemented in yams::motorcontrollers::simulation::ArmSimSupplier, yams::motorcontrollers::simulation::DCMotorSimSupplier, and yams::motorcontrollers::simulation::ElevatorSimSupplier.

◆ SetMechanismStatorVoltage()

virtual void yams::motorcontrollers::SimSupplier::SetMechanismStatorVoltage ( wpi::units::volt_t  volts)
pure virtual

Set the motor input voltage directly, e.g. from a hardware sim state (feeds the input).

Parameters
voltsVoltage to apply.

Implemented in yams::motorcontrollers::simulation::ArmSimSupplier, yams::motorcontrollers::simulation::DCMotorSimSupplier, and yams::motorcontrollers::simulation::ElevatorSimSupplier.

◆ SetMechanismVelocity()

virtual void yams::motorcontrollers::SimSupplier::SetMechanismVelocity ( wpi::units::turns_per_second_t  velocity)
pure virtual

Set the simulated mechanism velocity.

Parameters
velocityMechanism velocity to inject.

Implemented in yams::motorcontrollers::simulation::ArmSimSupplier, yams::motorcontrollers::simulation::DCMotorSimSupplier, and yams::motorcontrollers::simulation::ElevatorSimSupplier.

◆ SetRotorPosition()

virtual void yams::motorcontrollers::SimSupplier::SetRotorPosition ( wpi::units::turn_t  angle)
pure virtual

◆ SetRotorVelocity()

virtual void yams::motorcontrollers::SimSupplier::SetRotorVelocity ( wpi::units::turns_per_second_t  velocity)
pure virtual

◆ StarveInput()

virtual void yams::motorcontrollers::SimSupplier::StarveInput ( )
pure virtual

◆ StarveUpdateSim()

virtual void yams::motorcontrollers::SimSupplier::StarveUpdateSim ( )
pure virtual

◆ UpdateSim()

virtual void yams::motorcontrollers::SimSupplier::UpdateSim ( )
pure virtual

Advance the simulation by one loop iteration.

When the input has not been fed this loop (see FeedInput()), the motor duty cycle times the supply voltage is applied as the input and the battery voltage is updated. The physics are only stepped if the simulation has not already been updated this loop (see GetUpdatedSim()); stepping marks it updated, so a mechanism and its motor controller calling UpdateSim() in the same loop step the physics once.

Implemented in yams::motorcontrollers::simulation::ArmSimSupplier, yams::motorcontrollers::simulation::DCMotorSimSupplier, and yams::motorcontrollers::simulation::ElevatorSimSupplier.


The documentation for this class was generated from the following file: