How to create a fuzzy controller for dc motor position?

4 views (last 30 days)
Hey all, considering a fuzzy speed control of a dc motor [<http://www.mathworks.com/matlabcentral/fileexchange/36508-fuzzy-controller-based-speed-control-of-dc-motor>] i tried to adapt the given model to a position control. Firstly, one changes the system output of the dc model to theta. Secondly, one implements additional gains to the fuzzy controller input in order to influence the change of error and the error itself. Anyway, the result is not sufficient. The overshoot is immense, no matter which parameters i take. To my understanding it is not necessary to change any of the fuzzy controller's parameters except the width of the output voltage in order to configure the maximum applied voltage to the dc motor. Is this approach right so far? Or am i missing a crucial fact about setting up fuzzy controllers?
Thanks in advance.
Kev

Answers (1)

Ryan G
Ryan G on 17 Sep 2012
I would consider instead of changing the fuzzy controller adding another loop around the model. Remove the step input and put a summing junction there with a gain. Instead of trying to control position directly this new outer loop will control the motor speed to obtain the position desired.
Something like this where the step goes from 1 to 2 radians and I set the gain, Kp, to 1200 simply by observation of what worked well.

Communities

More Answers in the  Power Electronics Control

Categories

Find more on Fuzzy Logic in Simulink in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!