EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  <19961997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  <19961997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: CCMatrix for coordinated move again
From: [email protected] (Tim Mooney)
To: [email protected], [email protected]
Date: Fri, 16 Aug 1996 02:46:35 -0500
Holger, re...

> I have an application which applies a coordinated move to four stepper
> motors. A 4X4 cross-coupling matrix multiplies four error terms (error
> vector) to generate drive values. A gain vector is also applied during
> closed-loop operation to avoid overshoot.
> ...
> I'm using a 4X4 cross-coupling matrix to multiply an error term to
> generate motor drive values in a coordinated fashion. The matrix is
> preloaded based on a calibration procedure between a mirror and lens
> assembly. The mirror and lens can both be moved in two axes.
> 
> Does anyone have any experience with this approach, or a suggestion for
> what record types might be used to accommodate this approach, or has anyone
> built custom records used for matrix multiplies, etc.

Boy do *you* have fun!

The quickest solution to implement is probably four CALC records (with
matrix elements and gains either embedded in the expressions or
gathered via input links from, say, AI records) and a SEQ record to
poke the results to the motors.  The second quickest to implement is
probably an AAI record and an SNL program.

I've written two records that seem relevant:

The TABLE record controls a six-degree-of-freedom optical table, taking
table rotations and translations through a 6x6 matrix to get motor
positions (and calculating motor speeds so motors start and stop at the
same time), and taking motor positions through the inverse matrix to
recover table coordinates.  The matrix elements are calculated at run
time from the user-specified location of the point about which the
table is to rotate.  You can load your own (6x6) matrix and use it, if
you avoid hitting any of the fields that cause the matrix to be
recalculated.  I haven't tried it, though (heh, heh).

I also wrote the TRANSFORM record, which is intended for sets of
coupled equations.  This thing is basically 10 CALC records stacked
together: each calc section has an input link, an expression, and an
output link.  The result from section i is used in expressions j>i.
Output links are fired as nearly simultaneously as possible.
I have done constant-matrix multiplication with this record, but the
matrix elements have to be embedded in the calculation expressions.

Both of these records are available from the EPICS Software
Distribution pages (http://www.aps.anl.gov/EpicsSoft) in the section
"Custom EPICS related software".  The TABLE record is currently
available only as part of the tar file XFDApp_071296.tar.gz, which
contains nearly everything we use to control synchrotron-radiation
beamlines under EPICS 3.12.2.  The TRANSFORM record is also available
separately on the same WEB page.

Tim Mooney

Beamline Controls & Data Acquisition Group
Experimental Facilities Division
Advanced Photon Source


Navigate by Date:
Prev: CCMatrix for coordinated move again Holger Jones
Next: "Edge sensitive" record processsing. Bill Brown
Index: 1994  1995  <19961997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: CCMatrix for coordinated move again Holger Jones
Next: "Edge sensitive" record processsing. Bill Brown
Index: 1994  1995  <19961997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·