source: MML/trunk/machine/SOLEIL/doc_html/machine/Soleil/StorageRing/modelchrosensitivity.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: 9.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 modelchrosensitivity</title>
6  <meta name="keywords" content="modelchrosensitivity">
7  <meta name="description" content="modelchrosensitivity - Computes sextupole change for a given dxi">
8  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
9  <meta name="generator" content="m2html v1.5 &copy; 2003-2005 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="#">machine</a> &gt; <a href="#">Soleil</a> &gt; <a href="index.html">StorageRing</a> &gt; modelchrosensitivity.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 machine/Soleil/StorageRing&nbsp;<img alt=">" border="0" src="../../../right.png"></a></td></tr></table>-->
19
20<h1>modelchrosensitivity
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>modelchrosensitivity - Computes sextupole change for a given dxi</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 [DSx DSz DchroVal] = modelchrosensitivity(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">modelchrosensitivity - Computes sextupole change for a given dxi
31
32  INPUTS
33  1. dxix - horizontal tune change
34  2. dxiz - vertical tune change
35
36  OUTPUTS
37  1. DSx - sextupole change to get dxix
38  2. DSz - sextupole change to get dxiz
39
40  See Also <a href="modeltunesensitivity.html" class="code" title="function [DKx DKz DtuneVal]=modeltunesensitivity(varargin)">modeltunesensitivity</a></pre></div>
41
42<!-- crossreference -->
43<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
44This function calls:
45<ul style="list-style-image:url(../../../matlabicon.gif)">
46</ul>
47This function is called by:
48<ul style="list-style-image:url(../../../matlabicon.gif)">
49</ul>
50<!-- crossreference -->
51
52
53
54<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
55<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function [DSx DSz DchroVal] = modelchrosensitivity(varargin)</a>
560002 <span class="comment">%modelchrosensitivity - Computes sextupole change for a given dxi</span>
570003 <span class="comment">%</span>
580004 <span class="comment">%  INPUTS</span>
590005 <span class="comment">%  1. dxix - horizontal tune change</span>
600006 <span class="comment">%  2. dxiz - vertical tune change</span>
610007 <span class="comment">%</span>
620008 <span class="comment">%  OUTPUTS</span>
630009 <span class="comment">%  1. DSx - sextupole change to get dxix</span>
640010 <span class="comment">%  2. DSz - sextupole change to get dxiz</span>
650011 <span class="comment">%</span>
660012 <span class="comment">%  See Also modeltunesensitivity</span>
670013
680014 <span class="comment">% TODO see modeltunesensitivity</span>
690015
700016 <span class="comment">%</span>
710017 <span class="comment">%  Written by Laurent S. Nadolski</span>
720018
730019 NumericFlag = 1;
740020 Unit = <span class="string">'Hardware'</span>;
750021 Mode = <span class="string">'Model'</span>;
760022 DebugFlag = 0;
770023
780024 timeout = 1; <span class="comment">% second</span>
790025
800026 DSx= NaN; DSz=NaN;
810027
820028 <span class="comment">% Switchyard factory</span>
830029 <span class="keyword">for</span> i = length(varargin):-1:1
840030     <span class="keyword">if</span> strcmpi(varargin{i},<span class="string">'Model'</span>)
850031         Mode = <span class="string">'Model'</span>;
860032         varargin(i) = [];
870033     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'Online'</span>)
880034         Mode = <span class="string">'Online'</span>;
890035         varargin(i) = [];
900036     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'Simulator'</span>)
910037         Mode = <span class="string">'Simulator'</span>;
920038         varargin(i) = [];
930039     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'Physics'</span>)
940040         Unit = <span class="string">'Physics'</span>;
950041         varargin(i) = [];
960042     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'Hardware'</span>)
970043         Unit = <span class="string">'Hardware'</span>;
980044         varargin(i) = [];
990045     <span class="keyword">end</span>
1000046 <span class="keyword">end</span>
1010047
1020048
1030049 <span class="keyword">if</span> isempty(varargin)
1040050     dxix = 1e-1;
1050051     dxiz = 1e-1;
1060052 <span class="keyword">elseif</span> nvargin == 1
1070053     dxix = varargin{1};
1080054     dxiz = dxix;
1090055 <span class="keyword">end</span>
1100056
1110057 <span class="keyword">global</span> GLOBVAL;
1120058
1130059 fprintf(<span class="string">'   ******** Summary for ''%s'' ********\n'</span>, GLOBVAL.LatticeFile);
1140060
1150061 <span class="comment">%fprintf('Sextupole change for dxix of %f and dxiz = %f \n',dxix,dxiz);</span>
1160062
1170063 <span class="comment">% get all sextupoles</span>
1180064 a = findmemberof(<span class="string">'SEXT'</span>);
1190065 FamNb= length(a);
1200066
1210067 <span class="keyword">if</span> ~NumericFlag
1220068     <span class="keyword">for</span> k = 1:FamNb,
1230069
1240070         Family = a{k};
1250071
1260072         [bx bz] = modeltwiss(<span class="string">'beta'</span>,Family);
1270073         [etax etaz] = modeldisp(Family);
1280074
1290075         L = getleff(Family);
1300076         NQ = length(getspos(Family));
1310077
1320078         DSx(k) =  2*pi*dxix/bx(1)/etax(1)/NQ/L(1);
1330079         DSz(k) = -2*pi*dxiz/bz(1)/etax(1)/NQ/L(1);
1340080
1350081         fprintf(<span class="string">'%s : DSxL = %1.2e DSzL = %1.2e betax = %2.2f m betaz = %2.2f m etax = %2.2f m NQ = %2.0f  L= %1.2e m \n'</span>, <span class="keyword">...</span>
1360082             Family, DSx(k)*L(1), DSz(k)*L(1), bx(1), bz(1), etax(1), NQ, L(1));
1370083     <span class="keyword">end</span>
1380084 <span class="keyword">else</span>
1390085     DchroVal  = zeros(2,FamNb)*NaN;
1400086
1410087     <span class="comment">% Quadrupole variation in Ampere</span>
1420088     StepValue = [20 40 10 10 50 50 50 25 5 10]; <span class="comment">% A</span>
1430089
1440090
1450091     <span class="keyword">for</span> k = 1:FamNb,
1460092
1470093         Family = a{k};
1480094
1490095         <span class="keyword">if</span> DebugFlag
1500096             fprintf(<span class="string">'%s changed by %f\n'</span>, Family,  0.5*StepValue(k));
1510097         <span class="keyword">end</span>
1520098         stepsp(Family, 0.5*StepValue(k), Mode, Unit); <span class="comment">% plus delta</span>
1530099         <span class="keyword">if</span> strcmp(Mode, <span class="string">'Model'</span>)
1540100             ChroValplus = modelchro;
1550101         <span class="keyword">else</span>
1560102             pause(timeout);
1570103             ChroValplus = measchro(Mode, <span class="string">'NoDisplay'</span>);
1580104         <span class="keyword">end</span>
1590105         <span class="keyword">if</span> DebugFlag
1600106             fprintf(<span class="string">'Xix = %f Xiz = %f \n'</span>, ChroValplus);
1610107         <span class="keyword">end</span>       
1620108
1630109         <span class="keyword">if</span> DebugFlag
1640110             fprintf(<span class="string">'%s changed by %f\n'</span>, Family, -0.5*StepValue(k));
1650111         <span class="keyword">end</span>
1660112         stepsp(Family, -StepValue(k), Mode, Unit); <span class="comment">% minus delta</span>
1670113         <span class="keyword">if</span> strcmp(Mode, <span class="string">'Model'</span>)
1680114             ChroValminus = modelchro;
1690115         <span class="keyword">else</span>
1700116             pause(timeout);
1710117             ChroValminus = measchro(Mode, <span class="string">'NoDisplay'</span>);
1720118         <span class="keyword">end</span>
1730119
1740120         <span class="keyword">if</span> DebugFlag
1750121             fprintf(<span class="string">'Xix = %f Xiz = %f \n'</span>, ChroValminus);
1760122         <span class="keyword">end</span>
1770123
1780124         stepsp(Family, 0.5*StepValue(k), Mode, Unit); <span class="comment">% come back to nominal value</span>
1790125
1800126         DchroVal(:,k) = (ChroValplus - ChroValminus) / StepValue(k);
1810127
1820128     <span class="keyword">end</span>
1830129 <span class="keyword">end</span>
1840130
1850131 <span class="keyword">for</span> k = 1:FamNb,
1860132     fprintf(<span class="string">'%3s (%3.1f A): Dxix = % 1.2e Dxiz = % 1.2e\n'</span>, <span class="keyword">...</span>
1870133         a{k}, StepValue(k), DchroVal(1,k)*StepValue(k), DchroVal(2,k)*StepValue(k));
1880134 <span class="keyword">end</span></pre></div>
189<hr><address>Generated on Fri 23-Jul-2010 00:42:07 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/" title="Matlab Documentation in HTML">m2html</a></strong> &copy; 2005</address>
190</body>
191</html>
Note: See TracBrowser for help on using the repository browser.