Go to Post Just as you and your team will make hard decisions as you struggle to build a robot, FIRST has had to make hard decisions concerning maximizing safety while making the number of rules as small as possible. - Mike Betts [more]
Home
Go Back   Chief Delphi > Technical > Control System
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
 
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread Today, 02:39 AM
AustinSchuh AustinSchuh is offline
Registered User
FRC #0971 (Spartan Robotics) #254 (The Cheesy Poofs)
Team Role: Engineer
 
Join Date: Feb 2005
Rookie Year: 1999
Location: Los Altos, CA
Posts: 799
AustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond repute
Re: Full State Feedback Question

Quote:
Originally Posted by Jared View Post
3). Integral control like 2), but with a different u

u = -(K*(x - x_d) + K_i*x_i);


where x_d is a vector of desired states, not including integrator, which gives me this:
http://i.imgur.com/tf0TdcT.png

For now, I've been able to get away without an observer and just do a bit of filtering on my velocity. It probably helps that I'm sampling at several kHz.
Having a fast, ideal system helps a lot.

For a controller without integral or of type 2) or 3), you need a feed-forwards term . You can see it in your third plot. There is a small steady state error (though much smaller than your first plot). We can show this with the following math.

Suppose we are moving at some velocity Vel. From the motor equations, we know that under 0 torque, this takes volts =Vel / Kv to go that fast.

Vel / Kv = K (R - X)

If we are tracking perfectly, R - X = 0. The only velocity this holds for is 0 velocity. Therefore, we always need feed-forwards with a DeltaU controller or a controller which estimates the disturbance voltage. A controller of type 1) won't have this problem, but will have a time constant when the reference trajectory accelerates/decelerates.

Take a look at our intake code this year for an example of a controller of type 3). //y2016/control_loops/python/intake.py You can play with it yourself if you want.
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 07:39 PM.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi