View Single Post
  #4   Spotlight this post!  
Unread 01-01-2017, 10:07 PM
Jared's Avatar
Jared Jared is offline
Registered User
no team
Team Role: Programmer
 
Join Date: Aug 2013
Rookie Year: 2012
Location: Connecticut
Posts: 602
Jared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond repute
Re: Full State Feedback Question

I think I have things working now with the first method Austin described, but I plan to try the third method when I have a change.

I have tried three controllers:

1). No integral control, plain fsfb. My states are position, velocity, acceleration. I need the additional acceleration state - the time constant of my motor is significant for the application. I calculate my reference with K(1)*position_goal + K(2)*velocity_goal, where K is my vector of gains.

This gives me the following:
http://i.imgur.com/wJFlhnF.png
which is exactly as Jared described - the velocity tracks too, but will deviate to get position where it needs to be when it can't follow the trajectory exactly.

Note that if I don't add the K(2)*velocity_goal term to my reference, the tracking lags behind and doesn't reach 1 exactly.

2). Integral control that Austin describes in 1).

http://i.imgur.com/rp53mAd.png

This works much better if I add an extra load torque than the previous controller, but doesn't track as well. My reference is simply my desired position and

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


where K is my vector of gains (without the integrator gain), x is the state vector (without the integrator state), and K_i is the integrator gain, and x_i the integrator state.

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.
Reply With Quote