Download - Modeling and Controls
Controls
Modeling and ControlsSam Dubin, Charlotte Gill, Ryan Hammerschmitt, Joe Miller
IntroductionPast ObjectivesDetermine vehicle properties for implementation in the simulatorDetermine motor mappings from voltage to thrustFinish coding the control laws into the Arduino controller
CurrentlyObtained initial vehicle stability derivatives by linearizing the vehicle around hoverImplemented non linear vehicle dynamics into the simulationFound initial PID gains to test in Simulink model and code into controllerAdded more robustness and safety to motor controller
AUV DynamicsPID ControllerPID controller implementedTakes u, v, depth, and psi commandsKP, KI, and KD gains determined from transfer functions and root locus methodsFeedbackCurrently from AUV dynamicsWill eventually come from onboard sensorsCommands will eventually come from autonomyPossible feed forward control later
PID ControllerGainsUse sisotool to determine gainsKP, KI, and KD approximationsEnter these values in PID controllerThen use Simulink to further tune response
SimulationCommandCurrent Expected Commands from Autonomy: Forward velocity, Lateral velocity, Heading, Depth+-DynamicsThrusters toForces/MomentsMappingEnvironmentStatesSensors & EstimationSimulationUnity FeedbackUnit Impulse InputPID Control
Testing
Verifying the vehicle moves as commanded from MatlabObtaining trim values for thrusts at hoverVerified robustness of communication at a high data rateLearnedNew safety requirementsHigh sensitivity to commands in water Necessity for Matlab to give more than single commandsTesting Matlab/JoystickThrustMappingThrustCommandsTrim TrustXBeeXBeeAUVMotor ControllerAdding IMU integrationPossibly have automatic vehicle trimming5 packet types:Thruster commandsHeartbeatPing/pongIMU telemetryIMU calibration
Coding PID in ArduinoTakes in measured states and commands (u, v, psi, z) and the proportional, integral, and derivative gainsReturns control thrust valuesThe PID controller is coded as KP*error + KI * error + KD* errorControl thrust values then sent to motor controller as PWM signals
Coding PID in ArduinoGoing ForwardAutomate pitch & roll trimming from IMUImplement controller on the ArduinoExperiment with feed forward systemsCompare simulation dynamics with pool testingIntegrate system with Sensing and Autonomy Teams
Competition ReadinessSimulation