Hello!
I’m running a MATLAB simulation of Balboa32U4 using non-linear model of a balancing robot system. The dynamic variables are tilt angle \theta and rotational angle of the wheel \phi. I would like to confirm the motor torque- speed relation between the torque of the motor and motorSpeed mentioned in Balance.cpp file. I am using the following relation:
motorSpeed f(\tau) = 430 - 38 \tau
This relation is taken from datasheet of Pololu micro-metal gear-motor (75:1 HPCB 6V). I assuming the motorSpeed mentioned in the program is the same as speed mentioned in page 47 of the motor datasheet.
Hello.
The motorSpeed variable in our Balboa 32U4 library and example programs are not directly related to the relationships defined in the motor datasheet and performance curves. The motorSpeed variables correspond to the duty cycle and direction for the drivers to apply power to the motors. The value -400 corresponds to 100% duty cycle in one direction, and +400 corresponds to 100% duty cycle in the other (though by default, our example program limits the range to ±300, 75% duty cycle). You can find more information in the Balboa32U4Motors.h file.
- Patrick
Hi Patrick,
Thanks for clarifying my doubt. This seems troubling. Now motorSpeed variable can be expressed as fraction of top speed i.e 400, as duty cycle fraction. However, the Balbao32U4Motors.h file has no hints about approaching the right speed(rpm)-torque(kg-mm) model.
Does Pololu have any resources that can help me in arriving at the new speed-torque relation, for a motor under load?
Thanks.
It is not clear what you are asking for, but I think there’s enough information here for you to make a model/simulation. The performance curves in the motor datasheet provide the speed versus torque relationship for the motor when powered from a 6V supply. Speed, current, and torque are approximately linearly proportional with the supply voltage, so if needed you can use the information in the 6V performance curves to estimate the motor’s behavior at other voltages. Meanwhile, we established here that the program controls the duty cycle that power is applied with, which means the program controls the average applied voltage to the motors.
In summary, here are the tools you have:
- Speed versus torque relationship that scales with the applied voltage
- A program that controls the average applied voltage
So it seems like you just need to combine those two tools and you will have your model. If you still think there is something missing, can you try to clarify what you are looking for?
- Patrick
Hi Patrick,
Thanks for your suggestions. It’s true that I have two tools currently-
a) Speed(rpm) vs Torque(kg-mm) linear relationship curve
b) Duty-cycle, from which one can get an idea about the speed(rpm)
It’s observed that the speed-torque model is a linear model. With a cap of \pm 300 in the program, that suggests a limit on the torque as well. This model does work for small changes in the state/ angle deviation of robot from vertical 0. If we would want to explore larger deviations, we may need to arrive at a non-linear torque-speed mapping.
I have the following questions:-
- Given a duty-cycle of 75%, its corresponding speed(rpm) can be found with help of no-load speed. If the motor is operating under load, like rotating a wheel/ gears in a gearbox, can one refer the same performance curve and no-load speed given in the datasheet?
- Is there any mapping provided for speed(rpm)-torque relation, given this scenario?
Thanks.
As I mentioned in my previous post, speed, current, and torque are approximately linearly proportional with the supply voltage and by extension duty cycle. So if for a particular load (torque) the motor’s speed at 100% duty cycle is ω, then at 75% duty cycle the motor’s speed will be approximately 0.75ω if the same load is applied.
We have not published any information regarding our motors’ performance beyond what is available in the motor datasheet and performance curves.
- Patrick