Modelling a DC Motor

  • Engineering
  • Thread starter Fronzbot
  • Start date
  • #1
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.

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!
 

Answers and Replies

  • #2
NascentOxygen
Staff Emeritus
Science Advisor
9,244
1,073
I can't see that any of your tests have involved the time domain. All you have done is vary the average DC applied, and noted the new steady state speed. Nothing to do with time or frequency response there.

In case you're wondering why I don't suggest what tests you could do, it's because I'm not sure. Can you impose a small sinewave on the driving signal? The ac in the voltage from the tachometer on the shaft would then indicate the motor's response.
 
Last edited:

Related Threads on Modelling a DC Motor

  • Last Post
Replies
0
Views
2K
  • Last Post
Replies
0
Views
2K
  • Last Post
Replies
3
Views
2K
  • Last Post
Replies
0
Views
2K
Replies
7
Views
4K
  • Last Post
Replies
9
Views
590
  • Last Post
Replies
1
Views
4K
  • Last Post
Replies
3
Views
1K
Replies
3
Views
1K
Top