source: MML/trunk/mml/doc_html/mml/at/modelchro.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: 10.2 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 modelchro</title>
6  <meta name="keywords" content="modelchro">
7  <meta name="description" content="MODELCHRO - Returns the AT model chromaticity">
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; <a href="index.html">at</a> &gt; modelchro.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/at&nbsp;<img alt=">" border="0" src="../../right.png"></a></td></tr></table>-->
19
20<h1>modelchro
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>MODELCHRO - Returns the AT model chromaticity</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 [Chro, Tune] = modelchro(varargin) </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">MODELCHRO - Returns the AT model chromaticity
31  [Chromaticity, Tune] = modelchro(DeltaRF)
32
33  INPUTS
34  1. DeltaRF - Change in RF used to compute the chromaticity [Hz]  {Default: .1 Hz}
35  2. 'Hardware' returns chromaticity in hardware units (Tune/MHz (usually))
36     'Physics'  returns chromaticity in physics  units (Tune/(dp/p))
37
38  OUTPUTS
39  1. Chromaticity vector (2x1)
40  1. Tune vector (2x1)
41
42  Also see, modelbeta, modeltune, modeldisp, modeltwiss
43
44  Written by Greg Portmann</pre></div>
45
46<!-- crossreference -->
47<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../../up.png"></a></h2>
48This function calls:
49<ul style="list-style-image:url(../../matlabicon.gif)">
50<li><a href="getcavity.html" class="code" title="function [CavityState, PassMethod, ATCavityIndex, RF, HarmNumber] = getcavity">getcavity</a>   GETCAVITY - Returns the RF cavity state ('On' / 'Off')</li><li><a href="getnusympmat.html" class="code" title="function nu = getnusympmat(M44)">getnusympmat</a>        GETNUSYMPMAT - Calculate the tune from a symplectic one-turn matrix</li><li><a href="setcavity.html" class="code" title="function ATCavityIndex = setcavity(InputString)">setcavity</a> SETCAVITY - Set the RF cavity state</li></ul>
51This function is called by:
52<ul style="list-style-image:url(../../matlabicon.gif)">
53</ul>
54<!-- crossreference -->
55
56
57<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../../up.png"></a></h2>
58<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function [Chro, Tune] = modelchro(varargin)</a>
590002 <span class="comment">%MODELCHRO - Returns the AT model chromaticity</span>
600003 <span class="comment">%  [Chromaticity, Tune] = modelchro(DeltaRF)</span>
610004 <span class="comment">%</span>
620005 <span class="comment">%  INPUTS</span>
630006 <span class="comment">%  1. DeltaRF - Change in RF used to compute the chromaticity [Hz]  {Default: .1 Hz}</span>
640007 <span class="comment">%  2. 'Hardware' returns chromaticity in hardware units (Tune/MHz (usually))</span>
650008 <span class="comment">%     'Physics'  returns chromaticity in physics  units (Tune/(dp/p))</span>
660009 <span class="comment">%</span>
670010 <span class="comment">%  OUTPUTS</span>
680011 <span class="comment">%  1. Chromaticity vector (2x1)</span>
690012 <span class="comment">%  1. Tune vector (2x1)</span>
700013 <span class="comment">%</span>
710014 <span class="comment">%  Also see, modelbeta, modeltune, modeldisp, modeltwiss</span>
720015 <span class="comment">%</span>
730016 <span class="comment">%  Written by Greg Portmann</span>
740017
750018
760019 UnitsFlag = getunits(<span class="string">'TUNE'</span>);
770020 <span class="keyword">if</span> isempty(UnitsFlag)
780021     UnitsFlag = <span class="string">'Hardware'</span>;
790022 <span class="keyword">end</span>
800023
810024 MCF = [];
820025
830026 <span class="comment">% Look if 'struct' or 'numeric' in on the input line</span>
840027 <span class="keyword">for</span> i = length(varargin):-1:1
850028     <span class="keyword">if</span> strcmpi(varargin{i},<span class="string">'Physics'</span>)
860029         UnitsFlag = <span class="string">'Physics'</span>;
870030         varargin(i) = [];
880031         <span class="comment">%if length(varargin) &gt;= i</span>
890032         <span class="comment">%    if isnumeric(varargin{i})</span>
900033         <span class="comment">%        MCF = varargin{i};</span>
910034         <span class="comment">%        varargin(i) = [];</span>
920035         <span class="comment">%    end</span>
930036         <span class="comment">%end</span>
940037     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'Hardware'</span>)
950038         UnitsFlag = <span class="string">'Hardware'</span>;
960039         varargin(i) = [];
970040         <span class="comment">%if length(varargin) &gt;= i</span>
980041         <span class="comment">%    if isnumeric(varargin{i})</span>
990042         <span class="comment">%        MCF = varargin{i};</span>
1000043         <span class="comment">%        varargin(i) = [];</span>
1010044         <span class="comment">%    end</span>
1020045         <span class="comment">%end</span>
1030046     <span class="keyword">end</span>       
1040047 <span class="keyword">end</span>
1050048
1060049
1070050 DeltaRF = [];
1080051 <span class="keyword">if</span> length(varargin) &gt;= 1
1090052     <span class="keyword">if</span> isnumeric(varargin{1})
1100053         DeltaRF = varargin{1};  <span class="comment">% Hz</span>
1110054     <span class="keyword">end</span>
1120055 <span class="keyword">end</span>
1130056 <span class="keyword">if</span>  isempty(DeltaRF)   
1140057     DeltaRF = .1;  <span class="comment">% Hz</span>
1150058 <span class="keyword">end</span>
1160059
1170060
1180061 <span class="keyword">global</span> THERING
1190062 <span class="keyword">if</span> isempty(THERING)
1200063     error(<span class="string">'Simulator variable is not setup properly.'</span>);
1210064 <span class="keyword">end</span>
1220065
1230066
1240067 <span class="comment">% tunechrom does not take into account the present RF frequency</span>
1250068 <span class="comment">% [Tune, Chro] = tunechrom(THERING, 0, 'chrom');</span>
1260069 <span class="comment">% Tune = Tune(:);</span>
1270070 <span class="comment">% Chro = Chro(:);</span>
1280071
1290072
1300073 [CavityState, PassMethod, iCavity] = <a href="getcavity.html" class="code" title="function [CavityState, PassMethod, ATCavityIndex, RF, HarmNumber] = getcavity">getcavity</a>;
1310074 <span class="keyword">if</span> isempty(CavityState)
1320075     error(<span class="string">'The model does not have a cavity, hence the chromaticity cannot be determined.'</span>);
1330076 <span class="keyword">else</span>
1340077     <span class="keyword">if</span> any(strcmpi(CavityState(1,:),<span class="string">'Off'</span>))
1350078         <span class="comment">% Turn on the cavities</span>
1360079         <a href="setcavity.html" class="code" title="function ATCavityIndex = setcavity(InputString)">setcavity</a>(<span class="string">'On'</span>);
1370080     <span class="keyword">end</span>
1380081 <span class="keyword">end</span>
1390082
1400083
1410084 <span class="comment">% If the integer tune in needed</span>
1420085 <span class="comment">%[TD, Tune] = twissring(THERING,0,1:length(THERING)+1);</span>
1430086 <span class="comment">%IntTune = fix(Tune(:));</span>
1440087
1450088
1460089 <span class="comment">% Get tune (Johan's method)</span>
1470090 M66 = findm66(THERING);
1480091 FracTune0 = <a href="getnusympmat.html" class="code" title="function nu = getnusympmat(M44)">getnusympmat</a>(M66);
1490092 <span class="comment">%Tune = fix(IntTune) + FracTune0;</span>
1500093
1510094
1520095 <span class="comment">% Small change in the RF and remeasure the tune</span>
1530096 RF0 = THERING{iCavity(1)}.Frequency;
1540097 <span class="keyword">for</span> i = 1:length(iCavity)
1550098     THERING{iCavity(i)}.Frequency = RF0 + DeltaRF;
1560099 <span class="keyword">end</span>
1570100
1580101 <span class="comment">% Get tune (Johan's method)</span>
1590102 M66 = findm66(THERING);
1600103 FracTune1 = <a href="getnusympmat.html" class="code" title="function nu = getnusympmat(M44)">getnusympmat</a>(M66);
1610104
1620105
1630106 <span class="comment">% Reset the RF</span>
1640107 <span class="keyword">for</span> i = 1:length(iCavity)
1650108     THERING{iCavity(i)}.Frequency = RF0;
1660109 <span class="keyword">end</span>
1670110
1680111
1690112 <span class="comment">% Chromaticity in hardware units (DeltaTune / DeltaRF)</span>
1700113 DeltaRF = physics2hw(<span class="string">'RF'</span>, <span class="string">'Setpoint'</span>, DeltaRF, [1 1], <span class="string">'Model'</span>);
1710114 Chro = (FracTune1 - FracTune0) / DeltaRF;
1720115
1730116
1740117 <span class="keyword">if</span> strcmpi(UnitsFlag,<span class="string">'Physics'</span>)
1750118     <span class="comment">% Change to Physics units</span>
1760119     MCF = mcf(THERING);
1770120     RF0 = physics2hw(<span class="string">'RF'</span>, <span class="string">'Setpoint'</span>, RF0, [1 1], <span class="string">'Model'</span>);
1780121     Chro = (-MCF * RF0) * Chro;
1790122 <span class="keyword">end</span>
1800123
1810124
1820125 <span class="comment">% if strcmpi(UnitsFlag,'Hardware')</span>
1830126 <span class="comment">%     % Change to Hardware units</span>
1840127 <span class="comment">%     MCF = mcf(THERING);</span>
1850128 <span class="comment">%     CavityFrequency  = THERING{iCavity(1)}.Frequency;</span>
1860129 <span class="comment">%     Chro = Chro / (-MCF * RF0);</span>
1870130 <span class="comment">% end</span>
1880131
1890132
1900133
1910134 <span class="comment">% Reset cavity PassMethod</span>
1920135 <a href="setcavity.html" class="code" title="function ATCavityIndex = setcavity(InputString)">setcavity</a>(PassMethod);
1930136
1940137
1950138</pre></div>
196<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>
197</body>
198</html>
Note: See TracBrowser for help on using the repository browser.