FOC Implementation for putting multirotor motors in robots

Dependencies:   FastPWM3 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers ImpedanceController.cpp Source File

ImpedanceController.cpp

00001 #include "TorqueController.h"
00002 #include "ImpedanceController.h"
00003 #include "CurrentRegulator.h"
00004 #include "PositionSensor.h"
00005 
00006 
00007 ImpedanceController::ImpedanceController(TorqueController *torqueController, PositionSensor *sensor_pos, PositionSensor *sensor_vel){
00008     _torqueController = torqueController;
00009     _sensor_pos = sensor_pos;
00010     _sensor_vel = sensor_vel;
00011     }
00012 
00013  void ImpedanceController::SetImpedance(float K, float B, float ref){
00014     float position = _sensor_pos->GetMechPosition();
00015     float velocity = _sensor_vel->GetMechVelocity();
00016     float error = ref-position;
00017     float output = K*error + B*velocity;
00018     
00019     _torqueController->SetTorque(output);
00020     
00021     }
00022