source: MML/trunk/mml/doc_html/mml/plotidfftable.html @ 4

Last change on this file since 4 was 4, checked in by zhangj, 10 years ago

Initial import--MML version from SOLEIL@2013

File size: 14.6 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2                "http://www.w3.org/TR/REC-html40/loose.dtd">
3<html>
4<head>
5  <title>Description of plotidfftable</title>
6  <meta name="keywords" content="plotidfftable">
7  <meta name="description" content="PLOTIDFFTABLE - Plots various information about the feed forward tables">
8  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
9  <meta name="generator" content="m2html &copy; 2003 Guillaume Flandin">
10  <meta name="robots" content="index, follow">
11  <link type="text/css" rel="stylesheet" href="../m2html.css">
12</head>
13<body>
14<a name="_top"></a>
15<div><a href="../index.html">Home</a> &gt;  <a href="index.html">mml</a> &gt; plotidfftable.m</div>
16
17<!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png">&nbsp;Master index</a></td>
18<td align="right"><a href="index.html">Index for mml&nbsp;<img alt=">" border="0" src="../right.png"></a></td></tr></table>-->
19
20<h1>plotidfftable
21</h1>
22
23<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
24<div class="box"><strong>PLOTIDFFTABLE - Plots various information about the feed forward tables</strong></div>
25
26<h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
27<div class="box"><strong>function FigureHandles = plotidfftable(Sector, GeV) </strong></div>
28
29<h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
30<div class="fragment"><pre class="comment">PLOTIDFFTABLE - Plots various information about the feed forward tables
31  FigureHandles = plotidfftable(Sector, GeV)
32  FigureHandles = plotidfftable(Directory)
33  FigureHandles = plotidfftable
34
35  Sector    - the storage ring sector number for that insertion device
36  GeV       - the storage ring energy (1.0, 1.3, 1.5, 1.9)
37  Directory - the directory location where the files are located.
38
39  For example, plotidfftable(7,1.5) analyzes the most recently generated table for IDFF.Sector 7
40  at 1.5 IDFF.GeV.
41   
42  If no input auguments are used, a dialog box will allow one
43  to choose any feed forward table.  Table are grouped in directories
44  according and energy and the date the file was generated.
45
46  Written by Greg Portmann</pre></div>
47
48<!-- crossreference -->
49<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
50This function calls:
51<ul style="list-style-image:url(../matlabicon.gif)">
52<li><a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>  GETFAMILYDATA - Gets data associated with the accelerator control</li><li><a href="getspos.html" class="code" title="function S = getspos(Family, DeviceList)">getspos</a>      GETSPOS - Returns the longitudinal position in meters</li></ul>
53This function is called by:
54<ul style="list-style-image:url(../matlabicon.gif)">
55<li><a href="measidfftable.html" class="code" title="function ffgettbl(Sector, BPMFlag)">measidfftable</a>      FFGETTBL - Measures an insertion device feed forward table for the vertical gap</li></ul>
56<!-- crossreference -->
57
58
59<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
60<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function FigureHandles = plotidfftable(Sector, GeV)</a>
610002 <span class="comment">%PLOTIDFFTABLE - Plots various information about the feed forward tables</span>
620003 <span class="comment">%  FigureHandles = plotidfftable(Sector, GeV)</span>
630004 <span class="comment">%  FigureHandles = plotidfftable(Directory)</span>
640005 <span class="comment">%  FigureHandles = plotidfftable</span>
650006 <span class="comment">%</span>
660007 <span class="comment">%  Sector    - the storage ring sector number for that insertion device</span>
670008 <span class="comment">%  GeV       - the storage ring energy (1.0, 1.3, 1.5, 1.9)</span>
680009 <span class="comment">%  Directory - the directory location where the files are located.</span>
690010 <span class="comment">%</span>
700011 <span class="comment">%  For example, plotidfftable(7,1.5) analyzes the most recently generated table for IDFF.Sector 7</span>
710012 <span class="comment">%  at 1.5 IDFF.GeV.</span>
720013 <span class="comment">%</span>
730014 <span class="comment">%  If no input auguments are used, a dialog box will allow one</span>
740015 <span class="comment">%  to choose any feed forward table.  Table are grouped in directories</span>
750016 <span class="comment">%  according and energy and the date the file was generated.</span>
760017 <span class="comment">%</span>
770018 <span class="comment">%  Written by Greg Portmann</span>
780019
790020
800021 <span class="keyword">if</span> nargin == 0
810022     <span class="comment">% Load the data tables</span>
820023     [FileName, DirectoryName] = uigetfile(<span class="string">'id*.mat'</span>, <span class="string">'Choose the desired feed forward file.'</span>, [<a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>(<span class="string">'Directory'</span>,<span class="string">'DataRoot'</span>), <span class="string">'ID'</span>, filesep, <span class="string">'FeedForward'</span>, filesep]);
830024     <span class="keyword">if</span> FileName == 0
840025         FigureHandles = [];
850026         <span class="keyword">return</span>
860027     <span class="keyword">end</span>
870028     FileName = [DirectoryName, FileName];
880029 <span class="keyword">elseif</span> nargin == 2
890030     FileName = sprintf(<span class="string">'%sid%02de%c%c.mat'</span>, [<a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>(<span class="string">'Directory'</span>,<span class="string">'DataRoot'</span>), <span class="string">'ID'</span>, filesep, <span class="string">'FeedForward'</span>, filesep], IDFF.Sector, floor(IDFF.GeV(1)), rem(IDFF.GeV(1),1));
900031 <span class="keyword">elseif</span> nargin == 1
910032     FileName = Sector;
920033 <span class="keyword">else</span>
930034     error(<span class="string">'plotidfftable input error'</span>);
940035 <span class="keyword">end</span>
950036
960037 <span class="keyword">try</span>
970038     load(FileName);
980039 <span class="keyword">catch</span>
990040     FigureHandles = [];
1000041     disp(<span class="string">'  File not found.'</span>);
1010042     <span class="keyword">return</span>
1020043 <span class="keyword">end</span>
1030044
1040045
1050046 BPMxs = <a href="getspos.html" class="code" title="function S = getspos(Family, DeviceList)">getspos</a>(IDFF.BPMxFamily, IDFF.BPMxList);
1060047 BPMys = <a href="getspos.html" class="code" title="function S = getspos(Family, DeviceList)">getspos</a>(IDFF.BPMyFamily, IDFF.BPMyList);
1070048
1080049
1090050 <span class="comment">% Plot tables</span>
1100051 Buffer = .01;
1110052 HeightBuffer = .05;
1120053
1130054 h1=figure;
1140055 clf reset
1150056 subplot(2,1,1);
1160057 plot(IDFF.Xtable(:,1),IDFF.Xtable(:,2),<span class="string">'-'</span>, IDFF.Xtable(:,1),IDFF.Xtable(:,3),<span class="string">'--'</span>);
1170058 <span class="comment">%xlabel('Gap Position [mm]');</span>
1180059 ylabel(<span class="string">'Corrector Strength [amps]'</span>);
1190060 title([<span class="string">'Insertion Device Feedfoward Table for Sector '</span>, num2str(IDFF.Sector)]);     
1200061 legend([<span class="string">'HCM4, Sector '</span>,num2str(IDFF.Sector-1),<span class="string">'  '</span>], <span class="keyword">...</span>
1210062        [<span class="string">'HCM1, Sector '</span>,num2str(IDFF.Sector),  <span class="string">'  '</span>],0);
1220063 <span class="comment">%[hl,hl1] = legend(['HCM4, IDFF.Sector ',num2str(IDFF.Sector-1),'  '], ...</span>
1230064 <span class="comment">%                  ['HCM1, IDFF.Sector ',num2str(IDFF.Sector),  '  ']);</span>
1240065 <span class="comment">%set(hl1(1,2),'FontUnits','points','FontSize',10);</span>
1250066 <span class="comment">%set(hl1(2,2),'FontUnits','points','FontSize',10);</span>
1260067 axis tight;
1270068
1280069 subplot(2,1,2);
1290070 plot(IDFF.Ytable(:,1),IDFF.Ytable(:,2),<span class="string">'-'</span>, IDFF.Ytable(:,1),IDFF.Ytable(:,3),<span class="string">'--'</span>);
1300071 xlabel(<span class="string">'Gap Position [mm]'</span>);
1310072 ylabel(<span class="string">'Corrector Strength [amps]'</span>);
1320073 axis tight;
1330074 legend([<span class="string">'VCM4, Sector '</span>,num2str(IDFF.Sector-1),<span class="string">'  '</span>], <span class="keyword">...</span>
1340075        [<span class="string">'VCM1, Sector '</span>,num2str(IDFF.Sector),  <span class="string">'  '</span>],0);
1350076 set(h1,<span class="string">'units'</span>,<span class="string">'normal'</span>,<span class="string">'position'</span>,[.0+Buffer .5+Buffer .5-2*Buffer .5-2*Buffer-HeightBuffer]);
1360077 addlabel(1,0,[num2str(IDFF.GeV),<span class="string">' GeV, '</span>, datestr(IDFF.TimeStamp)]);
1370078 orient tall
1380079
1390080
1400081 h2 = figure;
1410082 clf reset
1420083 <span class="comment">%set(h2,'units','normal','position',[.5+Buffer .1+Buffer .5-2*Buffer .5-2*Buffer-HeightBuffer]);</span>
1430084 set(h2,<span class="string">'units'</span>,<span class="string">'normal'</span>,<span class="string">'position'</span>,[.5+Buffer .5+Buffer .5-2*Buffer .5-2*Buffer-HeightBuffer]);
1440085 subplot(2,1,1);
1450086 plot(IDFF.Xtable(:,1),1000*IDFF.Xrms,<span class="string">'-'</span>, IDFF.Xtable(:,1),1000*IDFF.Yrms,<span class="string">'--'</span>);
1460087 title([<span class="string">'RMS Orbit Change During Table Generation for Sector '</span>, num2str(IDFF.Sector)]);
1470088 xlabel(<span class="string">'GAP Position [mm]'</span>);
1480089 ylabel(<span class="string">'BPM Error [microns]'</span>);
1490090 legend([<span class="string">'Horizontal'</span>],[<span class="string">'Vertical'</span>],0);
1500091 axis tight;
1510092
1520093 subplot(2,1,2);
1530094 plot(BPMxs, 1000*(IDFF.Xmax.Data - IDFF.XmaxEnd.Data),<span class="string">'-'</span>, BPMys, 1000*(IDFF.Ymax.Data - IDFF.YmaxEnd.Data),<span class="string">'--'</span>);
1540095 title([<span class="string">'Drift in the Orbit During Table Generation'</span>]);
1550096 xlabel(<span class="string">'BPM Position [meters]'</span>);
1560097 ylabel(<span class="string">'BPM Drift [microns]'</span>);
1570098 axis tight;
1580099 xaxis([0 <a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>(<span class="string">'Circumference'</span>)]);
1590100 legend([<span class="string">'Horizontal'</span>],[<span class="string">'Vertical'</span>],0);
1600101
1610102 addlabel(1,0,[num2str(IDFF.GeV),<span class="string">' GeV, '</span>, datestr(IDFF.TimeStamp)]);
1620103 orient tall
1630104
1640105
1650106 <span class="comment">% Rate of change</span>
1660107 ExtraPlots = 1;
1670108 <span class="keyword">if</span> ExtraPlots == 1
1680109    <span class="comment">% Rate of change</span>
1690110    h3 = figure;
1700111    clf reset
1710112    set(h3,<span class="string">'units'</span>,<span class="string">'normal'</span>,<span class="string">'position'</span>,[.0+Buffer .1+Buffer .5-2*Buffer .5-2*Buffer-HeightBuffer]);
1720113   
1730114    N = size(IDFF.Xtable,1);
1740115    subplot(2,1,1);
1750116    plot(IDFF.Xtable(2:N,1),diff(IDFF.Xtable(:,2))./diff(IDFF.Xtable(:,1)),<span class="string">'-'</span>, IDFF.Xtable(2:N,1),diff(IDFF.Xtable(:,3))./diff(IDFF.Xtable(:,1)),<span class="string">'--'</span>);
1760117    <span class="comment">%xlabel('Gap Position [mm]');</span>
1770118    ylabel(<span class="string">'Horizontal [amps/mm]'</span>);
1780119    title([<span class="string">'Corrector Magnet Rates for Sector '</span>, num2str(IDFF.Sector)]);
1790120    axis tight;
1800121    legend([<span class="string">'HCM4, Sector '</span>,num2str(IDFF.Sector-1),<span class="string">'  '</span>], [<span class="string">'HCM1, Sector '</span>,num2str(IDFF.Sector),<span class="string">'  '</span>],0);
1810122       
1820123    subplot(2,1,2);
1830124    plot(IDFF.Ytable(2:N,1),diff(IDFF.Ytable(:,2))./diff(IDFF.Ytable(:,1)),<span class="string">'-'</span>, IDFF.Ytable(2:N,1),diff(IDFF.Ytable(:,3))./diff(IDFF.Ytable(:,1)),<span class="string">'--'</span>);
1840125    xlabel(<span class="string">'Gap Position [mm]'</span>);
1850126    ylabel(<span class="string">'Vertical [amps/mm]'</span>);
1860127    axis tight;
1870128    legend([<span class="string">'VCM4, Sector '</span>,num2str(IDFF.Sector-1),<span class="string">'  '</span>], [<span class="string">'VCM1, Sector '</span>,num2str(IDFF.Sector),<span class="string">'  '</span>],0);
1880129
1890130    addlabel(1,0,[num2str(IDFF.GeV),<span class="string">' GeV, '</span>, datestr(IDFF.TimeStamp)]);
1900131    orient tall
1910132       
1920133    FigureHandles = [h1;h2;h3];
1930134 <span class="keyword">else</span>
1940135    FigureHandles = [h1;h2];       
1950136 <span class="keyword">end</span>
1960137
1970138
1980139 <span class="keyword">if</span> 0
1990140    figure
2000141    clf reset
2010142    set(h1,<span class="string">'units'</span>,<span class="string">'normal'</span>,<span class="string">'position'</span>,[.0+Buffer .5+Buffer .5-2*Buffer .5-2*Buffer-HeightBuffer]);
2020143
2030144    subplot(2,1,1);
2040145    plot(IDFF.Xtable(:,1),IDFF.Xtable(:,2)*407,<span class="string">'-'</span>, IDFF.Xtable(:,1),IDFF.Xtable(:,3)*407,<span class="string">'--'</span>);
2050146    <span class="comment">%xlabel('Gap Position [mm]');</span>
2060147    ylabel(<span class="string">'Corrector Strength [Gauss CM]'</span>);
2070148    title([<span class="string">'Insertion Device Feedfoward Table for Sector '</span>, num2str(IDFF.Sector)]);     
2080149    axis tight;
2090150    legend([<span class="string">'HCM4, IDFF.Sector '</span>,num2str(IDFF.Sector-1),<span class="string">'  '</span>], <span class="keyword">...</span>
2100151           [<span class="string">'HCM1, IDFF.Sector '</span>,num2str(IDFF.Sector),  <span class="string">'  '</span>],0);
2110152   
2120153    subplot(2,1,2);
2130154    plot(IDFF.Ytable(:,1),IDFF.Ytable(:,2)*171,<span class="string">'-'</span>, IDFF.Ytable(:,1),IDFF.Ytable(:,3)*171,<span class="string">'--'</span>);
2140155    xlabel(<span class="string">'Gap Position [mm]'</span>);
2150156    ylabel(<span class="string">'Corrector Strength [Gauss CM]'</span>);
2160157    legend([<span class="string">'VCM4, Sector '</span>,num2str(IDFF.Sector-1),<span class="string">'  '</span>], <span class="keyword">...</span>
2170158           [<span class="string">'VCM1, Sector '</span>,num2str(IDFF.Sector),  <span class="string">'  '</span>],0);
2180159    axis tight;
2190160    addlabel(1,0,[num2str(IDFF.GeV),<span class="string">' GeV, '</span>, datestr(IDFF.TimeStamp)]);
2200161    orient tall
2210162 <span class="keyword">end</span>
2220163
2230164</pre></div>
224<hr><address>Generated on Mon 21-May-2007 15:29:18 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address>
225</body>
226</html>
Note: See TracBrowser for help on using the repository browser.