Control of angular velocity

Hello,

I’m making a simple tracking experiment where the target is a spinning wheel. The speed (angular velocity) varies randomly. The subject is asked to match the speed of another wheel to the target speed. I’ve attached a picture - the left wheel is the target, the right one is controlled by moving a slider on the far right.

The point is to find the properties of the ‘angular velocity control system’. The delay should be longer than in pursuit tracking - consistent with the hierarchy of perception / control. I’ve attached a result of one run, it shows the subject and model data - the delay is about 300 ms, and gain is low.

I’m still trying out different ranges of velocity for the target and different difficulties - i’ve used the random wave generator from TrackAnalyse.

I plan to include another situation - instead of a wheel, the target would consist of vertical lines (like a ladder on the side) and the speed of moving left or right would vary. The subject would match that speed. Then I could compare the angular velocity and linear velocity control systems.

Does this sound like a valid control experiment?

Comments and suggestions are welcome.

Adam

angular velocity.PNG

SubjectModel.PNG

[From Rick Marken (2012.10.18.0845)]

Hello,
I'm making a simple tracking experiment where the target is a spinning
wheel. The speed (angular velocity) varies randomly. The subject is asked to
match the speed of another wheel to the target speed. I've attached a
picture - the left wheel is the target, the right one is controlled by
moving a slider on the far right.

The point is to find the properties of the 'angular velocity control
system'. The delay should be longer than in pursuit tracking - consistent
with the hierarchy of perception / control. I've attached a result of one
run, it shows the subject and model data - the delay is about 300 ms, and
gain is low....

Does this sound like a valid control experiment?
Comments and suggestions are welcome.

It sounds great. Since the aim is to compare control of angular
velocity to control of position (as in the pursuit tracking
experiment) why not include pursuit tracking experiment as one
condition. Then compare the parameters for the compensatory tracking
model to those for the angular velocity model.

Nice work. It would be nice if you could post the code for the model
you are using and tell us how you estimate the best fitting parameters
of the model.

Best

Rick

···

On Thu, Oct 18, 2012 at 6:55 AM, Adam Matic <adam.matic@gmail.com> wrote:
--
Richard S. Marken PhD
rsmarken@gmail.com
www.mindreadings.com

[From Rick Marken (2012.10.18.0845)]
It sounds great. Since the aim is to compare control of angular

velocity to control of position (as in the pursuit tracking

experiment) why not include pursuit tracking experiment as one

condition. Then compare the parameters for the compensatory tracking

model to those for the angular velocity model.

Great. I could use TrackAnalyse from LCSIII with the same subjects.

Nice work. It would be nice if you could post the code for the model

you are using and tell us how you estimate the best fitting parameters

of the model.
Thanks.

It’s practicaly the same as the model from TrackAnalyse, with adjustable gain, delay, reference and damping.

The only difference is that it’s writen in C#. The fitting of parameters is also done just like in TrackAnalyse, with the AutoFit function.

I’ve attached the C# project (I’m still working on it).

The important code files are: Form1.cs, FormAnalyse.cs and ModelAnalysis.cs

Adam

···

On Thu, Oct 18, 2012 at 5:43 PM, Richard Marken rsmarken@gmail.com wrote:

Code reattached.

Adam

Angular Velocity.zip (77.6 KB)

[From Rick Marken (2012.10.18.1030)]

RM: It sounds great. Since the aim is to compare control of angular
velocity to control of position (as in the pursuit tracking
experiment) why not include pursuit tracking experiment as one
condition. Then compare the parameters for the compensatory tracking
model to those for the angular velocity model.

AM: Great. I could use TrackAnalyse from LCSIII with the same subjects.

RM: Yes, I would be interested in seeing what the parameter estimates
are for the two kinds of tasks. Maybe something like this:

                                       Gain Damping
         Delay (Transport Lag)
Position 90 100
                   150 msec
Angular Velocity 100 150
            300 mec

I made up the entries; they are meant to represent possible average
values for one participant (averaging over several trials after
learning is complete by some criterion). This would be really nifty it
it came out that way. It would be quite relevant to work I am doing on
hierarchical control. Please keep me posted.

AM: It's practicaly the same as the model from TrackAnalyse, with adjustable
gain, delay, reference and damping.
The only difference is that it's writen in C#. The fitting of parameters is
also done just like in TrackAnalyse, with the AutoFit function.

I've attached the C# project (I'm still working on it).
The important code files are: Form1.cs, FormAnalyse.cs and ModelAnalysis.cs

Thanks. I'm not very good at reading object code but I think I found
the model code; here it is:

                mPerc = mCurs - TargetVal[T];
                mDelP = TransportLag(mPerc, timelag);
                mErr = ModelRef - mDelP;
                mHand = mHand + (Gain * mErr - Damping * mHand) * dt;
                if (mHand > 1000) mHand = 1000;
                if (mHand < -1000) mHand = -1000;
                mCurs = mHand;
                ModelPercep[T] = mPerc;
                ModelDelPerc[T] = mDelP;
                ModelCursor[T] = mCurs;
                ModelHandle[T] = mHand;
                FitErr[T] = mHand - SubjectVal[T];
                PredictErr[T] = SubjectVal[T] - TargetVal[T];
                T++;

It looks like this is the model code for the pursuit traking task, not
the control of angular velocity task. Unless you are taking the cursor
(mCurs) to be directly proportional to angular velocity, which I
suppose it is. In my model of angular velocity control (which I built
for other reasons than trying to get a transport lag estimate) I had
to actually compute the perception of angular velocity from the
observed movement of the cursor. That model, in case you haven't seen
it, is at Bimanual Coordination. That model
was built to imitate the findings in a coordinated movement task. But
your model looks great for your purposes -- getting an estimate of
"delay" depending on the type of perception controlled.

This really looks like a very nice little study. I look forward to
seeing how it comes out.

Best

Rick

···

On Thu, Oct 18, 2012 at 9:33 AM, Adam Matic <adam.matic@gmail.com> wrote:
--
Richard S. Marken PhD
rsmarken@gmail.com
www.mindreadings.com

[Rick Marken (2012.10.18.1035)]

Oops I see my little table was all off kilter. Try this:

Controlled Variable Gain Damping Delay (Transport Lag)

Position 90 100 150 msec
Angular Velocity 100 150 300 mec

···


Richard S. Marken PhD
rsmarken@gmail.com
www.mindreadings.com

RM: Yes, I would be interested in seeing what the parameter estimates

are for the two kinds of tasks. Maybe something like this:

                                   Gain                 Damping

     Delay (Transport Lag)

Position 90 100

               150 msec

Angular Velocity 100 150

        300 mec

I made up the entries; they are meant to represent possible average

values for one participant (averaging over several trials after

learning is complete by some criterion). This would be really nifty it

it came out that way. It would be quite relevant to work I am doing on

hierarchical control. Please keep me posted.

AM:

Sure. I’m guessing I’ll have the results in a month or so at most…

RM: Thanks. I’m not very good at reading object code but I think I found

the model code; here it is:

            mPerc = mCurs - TargetVal[T];

            mDelP = TransportLag(mPerc, timelag);

            mErr = ModelRef - mDelP;

            mHand = mHand + (Gain * mErr - Damping * mHand) * dt;

            if (mHand > 1000) mHand = 1000;

            if (mHand < -1000) mHand = -1000;

            mCurs = mHand;

            ModelPercep[T] = mPerc;

            ModelDelPerc[T] = mDelP;

            ModelCursor[T] = mCurs;

            ModelHandle[T] = mHand;

            FitErr[T] = mHand - SubjectVal[T];

            PredictErr[T] = SubjectVal[T] - TargetVal[T];

            T++;

It looks like this is the model code for the pursuit traking task, not

the control of angular velocity task. Unless you are taking the cursor

(mCurs) to be directly proportional to angular velocity, which I

suppose it is.

AM:

Yes, the subject moves the slider up or down to increase or decrease angular velocity, and the values are directly proportional.

RM: In my model of angular velocity control (which I built

for other reasons than trying to get a transport lag estimate) I had

to actually compute the perception of angular velocity from the

observed movement of the cursor. That model, in case you haven’t seen

it, is at http://www.mindreadings.com/Coordination.html. That model

was built to imitate the findings in a coordinated movement task. But

your model looks great for your purposes – getting an estimate of

“delay” depending on the type of perception controlled.

AM:

I’ve seen it and showed it to other people. It’s a very effective demonstration of control of input vs control of output. I didn’t realise there was agular velocity control in the model until you mentioned it.

RM: This really looks like a very nice little study. I look forward to

seeing how it comes out.

I’ll keep you posted.

Thank you!

Adam

···

On Thu, Oct 18, 2012 at 7:31 PM, Richard Marken rsmarken@gmail.com wrote: