change to motor controlling to temper high-pitched noise

main
mwinter 3 weeks ago
parent 30fd638cb1
commit 468cac4dff

@ -42,7 +42,7 @@ void setup() {
// enable more verbose output for debugging // enable more verbose output for debugging
// comment out if not needed // comment out if not needed
SimpleFOCDebug::enable(&Serial); //SimpleFOCDebug::enable(&Serial);
// initialize encoder sensor hardware // initialize encoder sensor hardware
sensor.init(); sensor.init();
@ -83,9 +83,9 @@ void setup() {
motor.PID_velocity.P = 0.01; motor.PID_velocity.P = 0.01;
motor.PID_velocity.I = 0.004; motor.PID_velocity.I = 0.004;
driver.voltage_limit = 8; driver.voltage_limit = 10;
motor.voltage_limit = 4; motor.voltage_limit = 5;
//motor.current_limit = 2; //motor.current_limit = 0.2;
motor.PID_velocity.limit = motor.voltage_limit; motor.PID_velocity.limit = motor.voltage_limit;
@ -94,13 +94,13 @@ void setup() {
motor.PID_velocity.output_ramp = 10; motor.PID_velocity.output_ramp = 10;
// velocity low pass filtering time constant // velocity low pass filtering time constant
//motor.LPF_velocity.Tf = 0.1; motor.LPF_velocity.Tf = 0.01;
// comment out if not needed // comment out if not needed
motor.useMonitoring(Serial); //motor.useMonitoring(Serial);
motor.monitor_downsample = 10000; //motor.monitor_downsample = 100000;
//motor.motion_downsample = 4; motor.motion_downsample = 1;
// initialize motor // initialize motor
motor.init(); motor.init();
@ -118,6 +118,7 @@ void setup() {
} }
void loop() { void loop() {
// main FOC algorithm function // main FOC algorithm function
motor.loopFOC(); motor.loopFOC();
@ -129,6 +130,7 @@ void loop() {
// Motion control function // Motion control function
motor.move(targetV); motor.move(targetV);
if (abs(motor.target) < 20.0f && motor.enabled==1) if (abs(motor.target) < 20.0f && motor.enabled==1)
motor.disable(); motor.disable();
if (abs(motor.target) >= 20.0f && motor.enabled==0) if (abs(motor.target) >= 20.0f && motor.enabled==0)
@ -136,10 +138,18 @@ void loop() {
// function intended to be used with serial plotter to monitor motor variables // function intended to be used with serial plotter to monitor motor variables
// significantly slowing the execution down!!!! // significantly slowing the execution down!!!!
motor.monitor(); //motor.monitor();
// user communication // user communication
/*
static uint32_t lastSerialRead = 0;
if (lastSerialRead == 32) {
lastSerialRead = 0;
commandESP.run(); commandESP.run();
commandComp.run(); commandComp.run();
}
lastSerialRead += 1;
*/
commandESP.run();
//commandComp.run();
} }

Loading…
Cancel
Save