- #1
Fronzbot
- 62
- 0
This is not homework but I would consider it to fall in this category. I am working on a robotics project and wanted to simulate a PID controller before implementation. I need to find a transfer function for my motor for this to work.
As mentioned above, I need to find a Transfer Function for my brushless DC motor (Optima 300 Brushless Motor 2208-1100KV). I have done quite a bit of testing and so the data I have available is:
- RPM of motor at various Duty Cycles (controlled via microcontroller PWM)
- Steady State Voltage at various Duty Cycles
- Voltage across motor (not sure what it is though- I probed the left most wire and grounded it on the right most wire- red and black respectively. Not sure what I am ACTUALLY measuring on the motor, though I believe it is my applied voltage after conversion from my ESC)
[itex]G(s) = \frac{K_{m}}{\tau_{m}\tau_{e}s^{2}+(\tau_{m}+\tau_{e})s+1}[/itex]
I used a plot of Shaft Velocity in rad/s over Applied Voltage whose slope I said was Km
I said my [itex]\tau_{m}[/itex] (mechanical time constant) was 0.02s by saying it was equal to [itex]\frac{R_{a}}{K_{m}\bullet K_{e}}[/itex] where [itex]K_{e}[/itex] is the slope of my applied voltage vs. Shaft Velocity (I think this is wrong) and [itex]R_{a}[/itex] is given in the datasheet as 22[itex]m\Omega[/itex]. This gives me a [itex]\tau_{m}[/itex] value of 0.02s.
This seems reasonable to me.
The next step was to find the electrical time constant, [itex]\tau_{e}[/itex]. I guarantee this is not right but I was hoping I would be approximating it close enough. I said [itex]\tau_{e} = \frac{L_{a}}{R_{a}}[/itex] where [itex]L_{a}[/itex] is the armature inductance which I assumed to be 3mH. This gives me [itex]\tau_{e} = 0.1s[/itex] (approximately).
When all is said and done I end up with a transfer function of:
[itex]\frac{74500}{s^{2}+60s+500}[/itex]
The denominator seems ok, but the numerator appears to be WAY to high. If I multiply [itex]K_{m}[/itex] by my [itex]K_{e}[/itex] I'd have a numerator of 462 which is far closer to what I would expect. My only problem is that I have no idea if I did any of this correctly. Nothing, besides the numerator at least, jumps out at me as being wrong... but that doesn't mean I'm right.
Worst case I'll just have to build the robot and tune everything (the PID parameters) manually, but I'd MUCH rather have some simulations to refer to.
Hopefully someone out there can help me out!
Homework Statement
As mentioned above, I need to find a Transfer Function for my brushless DC motor (Optima 300 Brushless Motor 2208-1100KV). I have done quite a bit of testing and so the data I have available is:
- RPM of motor at various Duty Cycles (controlled via microcontroller PWM)
- Steady State Voltage at various Duty Cycles
- Voltage across motor (not sure what it is though- I probed the left most wire and grounded it on the right most wire- red and black respectively. Not sure what I am ACTUALLY measuring on the motor, though I believe it is my applied voltage after conversion from my ESC)
Homework Equations
[itex]G(s) = \frac{K_{m}}{\tau_{m}\tau_{e}s^{2}+(\tau_{m}+\tau_{e})s+1}[/itex]
The Attempt at a Solution
I used a plot of Shaft Velocity in rad/s over Applied Voltage whose slope I said was Km
I said my [itex]\tau_{m}[/itex] (mechanical time constant) was 0.02s by saying it was equal to [itex]\frac{R_{a}}{K_{m}\bullet K_{e}}[/itex] where [itex]K_{e}[/itex] is the slope of my applied voltage vs. Shaft Velocity (I think this is wrong) and [itex]R_{a}[/itex] is given in the datasheet as 22[itex]m\Omega[/itex]. This gives me a [itex]\tau_{m}[/itex] value of 0.02s.
This seems reasonable to me.
The next step was to find the electrical time constant, [itex]\tau_{e}[/itex]. I guarantee this is not right but I was hoping I would be approximating it close enough. I said [itex]\tau_{e} = \frac{L_{a}}{R_{a}}[/itex] where [itex]L_{a}[/itex] is the armature inductance which I assumed to be 3mH. This gives me [itex]\tau_{e} = 0.1s[/itex] (approximately).
When all is said and done I end up with a transfer function of:
[itex]\frac{74500}{s^{2}+60s+500}[/itex]
The denominator seems ok, but the numerator appears to be WAY to high. If I multiply [itex]K_{m}[/itex] by my [itex]K_{e}[/itex] I'd have a numerator of 462 which is far closer to what I would expect. My only problem is that I have no idea if I did any of this correctly. Nothing, besides the numerator at least, jumps out at me as being wrong... but that doesn't mean I'm right.
Worst case I'll just have to build the robot and tune everything (the PID parameters) manually, but I'd MUCH rather have some simulations to refer to.
Hopefully someone out there can help me out!