Alcator C-Mod ICRF System Operation Manual

Created by Yijun Lin. 1st full-version on 09/25/2007. Last updated on 2/1/2008.

Table of Contents

  1. RF fast monitor (rf_monitor on pcdaqeng1)

  2. RF control program (rf_control)

  3. Antenna matching (rf_tune)

  4. Tuning transmitters

  5. Changing J antenna frequency

  6. Antenna conditioning

  7. Fast ferrite tuning (FFT) system on E port

  8. Digitizers, timing modules and data management

  9. PLC computers, arc protection, etc

  10. List of scope files

RF fast monitor

  1. Introduction

  2. Normal behavior

  3. Trouble shooting

Source program:

   /usr/local/cmod/codes/rf/idl/rf_monitor.pro 

Usage:

   ssh pcdaqeng1                                   ;;  login first
   /usr/local/cmod/codes/rf/idl/rf_monitor.sh

The rf monitor consists of two digitizers (on two difference racks):

\RF_MONITOR::TOP:DT216_XMTR12
\RF_MONITOR::TOP:DT216_XMTR34

The rf monitor program initializes and arms the digitizers and monitors their status. As soon as one or both digitizers are triggered, the program also stores the data. After finishing the store action, it re-arms the digitizers. As a result, the rf monitor is almost always ready to take data, except during the dead period while it is in store action, which can last about as long as 3 minutes. The digitizers are hard-wired to be triggered by an rf test shot that includes any transmitters, a C-Mod shot, or an event that indicates a transmitter fault (e.g., crowbar fired). The shot number of the RF monitor data starts from 101, for example, 1070831101. After each store action, the rf monitor program also makes an entry in the C-Mod logbook under topic "rf_monitor", like the following:

1070831xxx      ylin    rf_monitor      Aug 31 2007 09:10AM     
RF_monitor shot 1070831101 is done. CMOD shot @ 1070831001, RF test shot @ 4167
No event detected.

These logs help to track the absolute timing of the data. They also help determine what triggered the rf monitor (C-Mod shot, test shot or fault event). The rf monitor data can be viewed by the following scope files:

/usr/local/cmod/codes/rf/scopes/rf_monitor_fmit*.dat

back to rf monitor

Normal behavior: After the rf monitor is launched, it should update its outputs regularly on the screen (once every 15 sec if not in store action), and also write a time stamp in the screen approximate every 3 minutes.

/usr/local/cmod/codes/rf/idl/rf_monitor.sh
alcdata::/cmod/trees/new/~t;alcdata::/cmod/trees/models/~t
IDL Version 6.1 (linux x86 m32). (c) 2004, Research Systems, Inc.
Installation number: 101682-144.
Licensed for use by: users on pcdaqeng1

% Compiled module: RF_MONITOR.
% Compiled module: RF_MONITOR_ANALYSIS.
Warning: the rf monitor can only be run on pcdaqeng1
% Compiled module: MDSVALUE.
% Compiled module: MDSCHECKARG.
% Compiled module: MDSISCLIENT.
% Compiled module: MDSIDLIMAGE.
Dt200WriteMaster( 54,getState)
-ACQ32:0 ST_STOP
Dt200WriteMaster( 55,getState)
-ACQ32:0 ST_STOP
% Compiled module: MDSOPEN.
% Compiled module: MDSTCL. 
Dt200WriteMaster(          54,getState)
-ACQ32:2 ST_RUN
Dt200WriteMaster(          55,getState)
-ACQ32:2 ST_RUN
***** Time stamp *** Thu Sep  6 09:50:49 2007

After the digitizers are triggered, the following is a normal “trigger, store, and re-arm” cycle:

Dt200WriteMaster(          54,getState)
-ACQ32:0 ST_STOP
Dt200WriteMaster(          55,getState)
-ACQ32:0 ST_STOP
RF Monitor triggered at Thu Sep  6 09:56:54 2007
RF Monitor shot  1070906101
Dt200WriteMaster(          54,getState)
-ACQ32:0 ST_STOP
Dt200WriteMaster(          55,getState)
-ACQ32:0 ST_STOP
Storing dt216_xmtr12...
Storing dt216_xmtr34...
RF monitor shot   1070906101 store is done
RF monitor #  1070906101, CMOD #  1070831033, RF test #        4169
Writing data to rf_monitor shot   1070906101
Making logbook entry
Dt200WriteMaster(          54,getState)
-ACQ32:0 ST_STOP
Dt200WriteMaster(          55,getState)
-ACQ32:0 ST_STOP
Dt200WriteMaster(          54,getState)
-ACQ32:2 ST_RUN
Dt200WriteMaster(          55,getState)
-ACQ32:2 ST_RUN

Normal exit: If you know which terminal the program is running, you can simply use Ctrl-C to terminate the rf monitor. However, you need to wait for ~2 minutes before re-starting the program. The other way to stop a normal behaving rf monitor is use the following:

  /usr/local/cmod/codes/rf/idl/rf_monitor_stop.sh

Usually, we only terminate the rf monitor when the rf is not expected to run in multiple days. Otherwise, please just leave it running.

back to rf monitor

Trouble shooting: when the monitor is stuck for any reason, there would be no update on the terminal. The time stamp on the screen can show you the time when the monitor was first stuck. You may also see warning in the status indicators in the rf control program. Here are a few steps you can do before calling for help:

Ctrl-z                          ;;1. to exit the IDL session
ps -C rf_monitor.sh             ;;2. to be sure it is hung and running in the background.
killall -9 rf_monitor.sh        ;;3. kill the hung process.
ps  -C rf_monitor.sh            ;;4. to be sure the process is killed.if it is not, use 
kill -9 pidvalue                ;; the pid shown in step 4. and run step 4 again
rm rf_monitor_status.log        ;;5. reset the rf monitor status
/usr/local/cmod/codes/rf/idl/rf_monitor.sh     ;;6. re-start the rf monitor

If the monitor is hung again (for example, it cannot get into ST_RUN status), you need to re-do steps 1 to 5. Very often other people may have already complained about computer/data problems. If it is not at a time that may interfere a plasma shot (e.g., >5 minutes into recool), you can try the following to reboot the mdsip_analysis server on pcdaqeng1:

ssh pcdaqeng1
mdstcl
stop server pcdaqeng1:mdsip_analysis
exit                                     ;; exit mdstcl
exit                                     ;; logout from pcdaqeng1

The following error message is expected when rebooting:

mdsdcl: Error from ServerStopServer
mdsdcl: --> failed on line 'stop server pcdaqeng1:mdsip_analysis'

and the sever starts on its own. You can restart the rf monitor after about 30 seconds. If it is hung again, call Josh Stillerman at x38176, and tell him that pcdaqeng1 is probably broken.

back to rf monitor || back to table of contents

RF control program

  1. Introduction

  2. Waveform editing

  3. Status indicators

  4. Test shot

  5. Logbook entry

  6. Other functions

  7. Trouble shooting

Source program:

   /usr/local/cmod/codes/rf/idl/rf_control.pro 

Usage with RF monitor on:

   /usr/local/cmod/codes/rf/idl/rf_control_startup.sh

Usage with RF monitor off (when no HV is applied and no rf power is expected)

   cd /usr/local/cmod/codes/rf/idl/
   idl
   .r rf_control
   rf_control, /nopower 

Usage for observers (not permitted to update information in the MDSplus tree)

   cd /usr/local/cmod/codes/rf/idl/
   idl
   .r rf_control
   rf_control, /monitor

The RF control program automatically check the monitor screen size. When run on a laptop, it does not have features like logbook entry, and ready lights.

back to rf control

Waveform editing: In most cases, one can start with the 'Load Shot' button after enter a shot number (either a C-Mod shot or an rf test shot) to reload previous waveforms. Besides the standard waveform editing capabilities shown the function below the waveform panel, you can also invoke other functions using the right mouse button when it is inside one of the top 4 sub-panels. The functions are 'save to file...', 'restore from file...', 'Zero out...', and 'Edit Waveform...'. The most frequently used is the 'Edit Waveform...' function. A independent widget will appear after it is selected. The operator needs to enter the value at each time point in order to generate a waveform. To add more points, one needs to use the 'ADD' function below the waveform panel (mid-mouse-button = add point, shift and mid-mouse-button = remove point). Be aware of the 'STRETCH' function below the panel. It often gives you unexpected result, and may cause a shift in 0V baseline.

Clicking the 'Apply' button will calculate the actual voltage traces of transmitter 1 to 4 for the waveform generator and store the waveforms to the MDSplus tree, for example,

\RF::TOP.TRANSMITTERS.TRANSMITTER1.WAVE_FORM                ;; waveform in power [MW].
\RF::TOP.TRANSMITTERS.TRANSMITTER1.WAVE_FORM:ANALOG_OUT_V   ;; waveform in output (V). Always <0.
\RF::TOP.TRANSMITTERS:DT196AO:OUTPUT_01                     ;; from D-Tacq module.

See section on timing modules for details. The calibration of waveform voltage and power, see here. The total power and total energy is also calculated automatically and shown in the fifth panel. Please be sure that the gate signal is longer than the programed waveform (see modify gate signal).

Because at a given time, several RF operators may be running the rf control program simultaneously, one needs to use 'Reset' button to be sure that the waveform in the tree is what he (or she) has applied. This button often needs to be clicked multiple times (for unfathomable reason).

Occasionally, especially after a network problem or data system problem, the waveform generator may be hang, and only generates 0 V output. In this case, you can reboot the waveform generator/digitizer remotely or locally.

back to rf control

Status indicators: there are two indicators, one is the RF system status (square) and the other RF monitor status (rectangular).

The RF system status indicator has 4 possible colors:

  1. Green: it means the RF system is ready for a plasma shot. It also appears on the big screen for the physics operator to watch. It turns green ONLY after the "ready" button is clicked.

  2. Gray: it means the RF system is "unready". The indicator turns to grey after a plasma pulse, or after the "Unready" button (in "other functions") is selected. The icrf ready button on the big screen also turns grey.

  3. Yellow: it indicates that the RF data are ready, and the automatic data process has been finished. It requests the RF operator to look at the information, and if necessary, make a logbook entry. This yellow status has no effect on the big screen.

  4. Red: it indicates that there is something wrong in the RF system, including high voltage faults, poor matching (max power < 50 kW), or data system problems. The RF operator is required to take a look and make decision. This red status has no effect on the big screen.

The RF monitor status indicator has 4 possible colors:

  1. Green: It means that the RF monitor is armed and ready to be triggered. In case when starting the RF control with no power option, it is also green.

  2. Gray: Usually during the start-up of the RF control program while it is checking the status of the RF monitor.

  3. Yellow: It means that the RF monitor is in store action. During this period, the RF monitor does not respond to any trigger signal.

  4. Red: Indicates that the RF monitor may be stuck in store action. In most cases, the indicator will turn green eventually given several more minutes. Otherwise, you may have to trouble shoot the rf monitor.

back to rf control

Test shot: Click the "Test Shot" button on the main rf_control widget launches the test shot widget. The test shot number is automatically generated. It will increase shot by shot up to 5000 then reset to 1. One can select any combination of transmitters/antennas/diagnostics. The two diagnostics that are very sensitive to the RF leakage (UVIS and bolometry) are also included in the list, and they can be used to help debug RF leakage related problems. "Auto trigger" selection is by default. "Auto trigger" uses the MDSplus event timing system (engineering encoder) to generate an "RF_start" event in the data highway. If it is not selected, the program will wait for a manual trigger signal (I have never used it, and I don't know exactly how to use it). "Process signals" is an option whether one only needs to get raw data or also get it processed.

Click the "Take shot" button will start the test shot routine. If the rf_control was not started with /nopower option, it first checks whether the rf monitor is on. If the monitor is in store action, the test shot program will wait until the monitor finishes storing and re-armed. After the rf monitor is ready, a new rf shot pulse file is created. The timing module, digitizers, and waveform generators, are initialized. Then it is the trigger signal generated by "RF_START" event. It waits 10 seconds for the digitizers to complete before starting to store data. If the "Process signals" is selected, the program will process data, including calculating RF power, voltage, fault information, and also produces warnings if transmitter faults are present. The transmitter status will appear on the IDL terminal.

Because the data stored in test area will disappear after some period (about 2 weeks), sometimes we need to copy the data to a permanent location. The button "Save Shot" gives you the instruction to do so.

ssh alcdaq.psfc.mit.edu                  ;; login 
cd /cmod/trees/test/rf/
ls *shot*                                ;; shot is the shot number you want to save
cp *shot* /cmod/trees/saved/rf/          ;; move the shot to the new shot area.  

back to rf control

Logbook entry: The right half of the RF control widget is dedicated to logbook entry. When the "Auto Mode" is "on", the program checks whether the RF data is ready. When it is ready (rf status becomes yellow), a standard logbook entry text appears in the text field, and the button "Make Entry" is activated. The shot field is also updated to the current C-Mod shot. The four buttons above the text field will also indicate which transmitter(s) ran in the shot. Although the standard entry texts include almost all relevant information for the RF system, sometimes the RF operator still need to edit the text in the text field. The "Make Entry" button makes the logbook entry under topic "RF" and at the shot number in the shot field. An example of the standard logbook entry is shown below:

Plasma (@ t = 0.50 sec): Bt =  5.4 T, Ip =  0.5 MA, nl04 =  0.7e20 /m^2, DN, gap 2.4 cm. 
H-mode during RF. Max Wmhd =  77 kJ. f-side-neutral 0.34 to 0.11 mTorr. Plasma ended at 1.99 sec
RF Demand:
D : t = [0.50, 1.20] sec, 0.90 MW, 80.5 MHz
E : t = [0.50, 1.20] sec, 0.90 MW, 80.0 MHz
J3: t = [0.50, 1.20] sec, 0.60 MW, 78.0 MHz
J4: t = [0.50, 1.20] sec, 0.60 MW, 78.0 MHz
RF Result:
D : ran to 1.20 sec. Average [0.8 MW, 27 kV], Max [1.0 MW, 36 kV], Energy = 0.55 MJ.  3 faults.
E : ran to 1.20 sec. Average [0.8 MW, 23 kV], Max [1.1 MW, 27 kV], Energy = 0.58 MJ. No fault.
J3: ran to 1.20 sec. Average [0.6 MW, 15 kV], Max [0.6 MW, 21 kV], Energy = 0.17 MJ.  2 faults.
J4: ran to 1.10 sec. Average [0.5 MW, 19 kV], Max [0.6 MW, 22 kV], Energy = 0.15 MJ.  2 faults.
Notes:
Next Shot: No changes.
(DN = double null, USN = upper-single-null, LSN = lower-single-null, gap = mid-plane outer-gap)

Occasionally, the data system may not function properly. The automatic text does not appear, or there are apparent errors, one has to toggle off "Auto Mode". The operator can use "Set Current Shot" to set the shot number, or make a manual entry in the shot field. Button "Run rf_power_all" can do the data analysis again (if it is stuck in the data analysis). Then one can "Create Log Text" and "Make Entry". Since problems rarely happen in consecutive shots, it is recommended to toggle on "Auto Mode" afterwards.

back to rf control

Other functions:

back to rf control

Trouble shooting: Occasionally, button "apply" can cause "segmentation fault", and the program may quit unexpectedly. In some other cases, the program may be hung, especially during a test shot. To exit, one can try the following:

ctrl-z                          ;;1. to exit the IDL session
ps  -C rf_control_star          ;;2. to be sure it is hung and running in the background.
killall -9 rf_control_star      ;;3. kill the hung process.
ps  -C rf_control_star          ;;4. to be sure the process is killed. if it is not, use 
kill -9 pidvalue                ;; the pid shown in step 4. and run step 4 again.

If you are working with /nopower option, you need to find the idl process

ctrl-z 
ps -C idl
kill -9 pidvalue 

In many cases, you need to reboot the pcdaqeng1 server. Occasionally, especially after a network problem or data system problem, the waveform generator may be hang, and only generates 0 V output. In this case, you need to reboot the waveform generator/digitizer remotely or locally.

back to rf control || back to table of contents

Antenna matching

  1. Introduction

  2. Data traces

  3. Smith chart

  4. Predictions

  5. Fudge information

  6. Trouble shooting

  7. How the calculation is done

Introduction

Source program:

   /usr/local/cmod/codes/rf/idl/rf_tune.pro 

Usage:

   /usr/local/cmod/codes/rf/idl/rf_tune_startup.sh

One can use "Set Current Shot" button to load the current C-Mod shot. Use the antenna port drop-list to choose which antenna to look at. "Start time" and "end time" determine the interested time window (by default, the program loads the data from the beginning to the end of the RF power traces). "pwr thresh" determines the minimum forward RF power to be considered. Button "Load Data and Plot" does the work as it means. Button "Help" launches this operation manual.

Layout of the tuning system:

             Stub tuner          Phase shifter
                        _           +===+
                        |           |   |
                        |           |   |
Transmitter  =====A====B|C=========D|   |E===F====== to Antenna
                 DC1                        DC2

Data traces The top panel of the widget is used to plot the time traces of interested RF data. Button "Plot Power DC1" and "Plot Power DC2" plot the forward (blue) and reflected (green) power traces from directional coupler #1 and directional coupler #2 respectively. DC1 is on the transmitter (matched) side of the stub tuner/phase shifter, and DC2 is on the antenna (unmatched) side of the stub tuner (ST) and phase shifter (PS). The goal of this program is to get reflection on DC1 as small as possible for the NEXT plasma shot. Button "Plot Rant" shows the equivalent antenna resistance, which is defined as Rant = 50/(VSWR on DC2). Button "Plot Rho" shows the voltage reflection coefficient, which is defined as rho = sqrt(DC1 reflected power/DC1 forward power).

back to antenna matching

Smith chart The bottom plot field shows a Smith Chart in admittance (Y), conductance (G), susceptance (B) coordinates (Y = G + jB). The difference vs. an impedance Smith chart is that one has to add a negative sign on the voltage reflection coefficient Gamma (a complex value, sqrt(Pref/Pforw)), which is the horizontal axis (-real(gamma)) and vertical axis (-imaginary(gamma)). The dotted circles centered on (0, 0) point are equal reflection coefficient circles. The power reflection coefficients are labeled as percentage, for example, 20%, 30%, etc. The effect of a phase shifter change is to move Gamma_DC2 along one of this lines. The solid circles tangential to the right vertical axis are equal conductance circles. It is the lines that Gamma_DC2 follows when the stub tuner length is adjusted (a stub tuner only add susceptance, but does not change the conductance). Solid arcs are the equal suspectance lines. The idea of matching with a stub tuner and a phase shifter is to move Gamma_DC2 along a dotted circle through a phase shifter to the intersection with the bold black G=1 circle. Then use the stub tuner to move along the circle to the perfect matched target.

List of the buttons and functions:

back to antenna matching

Predictions On the right side of the Smith chart, the widget shows the current stub tuner and phase shifter positions (both are in the range of 0 to 1000), and the predictions to get a good match if the plasma is repeated. The detailed calculation is in section how the calculation is done. After selecting a solution, you need to put the positions on to the PLC controllers on the st/ps positions.

back to antenna matching

Fudge information To make an accurate prediction, the matching program needs to know the lengths very accurately. The lengths includes: lengths from point A to B, stub length, from point C to E (including the phase shifter length, and distance from the phase shifter to DC2). The lengths are measured by tape. However, the real electrical lengths are different because of the coaxial line has diameters (inner conductor and outer conductor). As a result, we record the tape measured length, then use so called fudge data to account for the difference, i.e. dc1 fudge, stub fudge, and dc2 fudge respectively. In rare cases, the DC1 power calibration is off and results in bad reflection coefficient. Therefore, there is an rp fudge (reflected power) to compensate this.

The "Fudge" button on the lower left of the Smith chart launches a widget window. The top two buttons "Get from this shot" and "Get from Shot -1" obtained the fudge data stored in the tree. The values appear in the editable field labeled as "dc1", "dc2", "stub" and "rp" corresponding to the fudges mentioned above. The unit of the length fudges is "meter", and the rf_fudge is a numerical scale factor on the reflection coefficient (1.0 means no fudge). The buttons "Save to this shot" and "Save to Shot -1" write the fudge data in the fields to the MDSplus tree. Note: the rp fudge is always assumed to be 1.0, and it is not stored in the MDSplus tree. A different rp fudge is only used when one is debugging potential problems. If it is really a problem, one needs to update the calibration data of the power signals, instead.

The bottom half of the window is for "Estimate Fudges". Button "fudges/this shot" estimate the dc2 fudge and stub fudge assuming the dc1 fudge and rp fudge has no error. The calculation is based on the comparison of the rf power measurement from direction coupler #1 and directional coupler #2 data. Gammas at the xmtr side as calculated from DC1 measurement (red), and the one transformed from DC2 measurement (purple) are over-plotted. A good (self-consistent) result of the fudge data should make the red and purple clusters overlap in space and shape. If significant deviation exists, it may be due to incorrect rp fudge or dc1 fudge. The suggested fudge are plotted in the bottom panel labeled as "Sugg. Fudges". If the calculated fudges are deemed not reliable, a warning text will appear on the status line on the main antenna matching widget. The button "fudges/multi. shots" behaves more or less like the "fudges/this shot" button, except you need to input the starting shot number and the end shot number so that the program will estimate the fudges on all the shots in between. The default range is all shots on the current run day.

DC1 fudge can be estimated rather accurately if we have a good calibrated rp fudge. We need to tune the antenna to vacuum, and run a number of shots (say, 10), with slightly different stub tuner positions (don't touch the phase shifter). With a correct dc1 fudge, the resulted gammas from all these shots should lie perfectly on the bold black G=1 circle on the Smith chart. The button "dc1_fudge/vacuum" does all the calculation automatically after you enter the shot range from a pop-up window.

In terms of antenna matching, the stub fudge is the most critical one. Because of a short stub transform the impedance in such a way (see section how the calculation is done) that it can diverge significantly in some particular lengths, a wrong fudge length can render the prediction useless.

back to antenna matching

Trouble shooting there are many ways that the matching program is hung, or the prediction fails to generate good matching. Here are some possible problems and fixes.

back to antenna matching

  1. How the calculation is done: calculating the solutions from gamma_dc1 on the transmitter side (IDL code):

   ci=complex(0.,1.) & half_wave = lambda/2.0 & beta = 2*!pi/lambda ;; constants
   Y_GenSide= (1.0 - Gamma_GenSide)/(1.0 + Gamma_GenSide)           ;;Y transmitter side
   Y_AntSide= Y_GenSide - 1.0 /(ci*tan(beta*l_stub))                ;;Y antenna side stub
   Z_AntSide= 1.0/Y_Antside                                         ;;Z antenna side
   
   Zr=float(Z_AntSide)                                              ;;real Z
   Zi=imaginary(Z_AntSide)                                          ;;imaginary Z
   
   t21=sqrt(Zr / ((1.0 - Zr)^2 + Zi^2))
   t22=-t21
   t11=(Zr + t21*zi)/(Zr - 1.0)/t21
   t12=(Zr + t22*zi)/(Zr - 1.0)/t22
   
   Stub1=((atan(t21)/beta - l_stub_min- stub_fudge + 4.0*half_wave) MOD half_wave ) $
        /stub_total_variable_length*stub_total_variable_counts + stub_min_counts
         
   Stub2=((atan(t22)/beta - l_stub_min- stub_fudge + 4.0*half_wave) MOD half_wave ) $
        /stub_total_variable_length*stub_total_variable_counts + stub_min_counts
           
   phase_length = ((current_phase_counts - phase_min_counts)/phase_total_variable_counts)$
        *phase_total_variable_length
      
   Phas1  =((atan(t11)/beta + phase_length + 4.0*half_wave) MOD half_wave) $
        /phase_total_variable_length * phase_total_variable_counts + phase_min_counts
      
   Phas2  =((atan(t22)/beta + phase_length + 4.0*half_wave) MOD half_wave) $
        /phase_total_variable_length * phase_total_variable_counts + phase_min_counts
     

The total length, min counts and total variable counts are stored in nodes like the following:

\RF::TOP.ANTENNA.DATA.D_PORT.TUNERS:COMMENT
\RF::TOP.ANTENNA.DATA.D_PORT.TUNERS:SHIFTER_1
\RF::TOP.ANTENNA.DATA.D_PORT.TUNERS:STUB_1

The min counts and total variable counts are set by running the phase shifter and stub tuner from the PLC computer (details here). The numbers are stored in the following nodes:

\rf::top.antenna:rf3_pos:analog              ;; J3 and J4 ports 
      e.g., Build_Signal([43.,317.,385.,284.], *, ["TUNER3","SHIFT3","TUNER4","SHIFT4"])
\rf::top.antenna:rf_pos:analog                 ;; D and E ports
    ; this one has more info, like loop pressures. 

The fudge information is stored in the follow nodes: for example

\RF::TOP.ANTENNA.DATA.D_PORT.DIR_COUPLERS:DC1_FUDGE
\RF::TOP.ANTENNA.DATA.D_PORT.DIR_COUPLERS:DC2_FUDGE
\RF::TOP.ANTENNA.DATA.D_PORT.DIR_COUPLERS:STUB_FUDGE

the rp (reflected power coefficient) fudge is assumed to be 1.0 (i.e., no fudge). It is only used when one needs to debug the possible problem.

back to antenna matching || back to table of contents

Tuning Transmitters

  RF  -->  Kalmus     -->      IPA      -->     DRVR     -->   FPA  -->  dummy load
0.005 kW -->0.5 kW    -->      5 kW     -->     200 kW   -->  2000 kW                                

Preparation:

  1. Set the previously tuning dimensions.

  2. Set the transmitter to dummy load. For FMIT #3 and #4, you may also need to switch the source ready to independent.

  3. Start the RF monitor.

  4. Check possible changes required if one is changing J port frequency

  5. Set the feed forward/back jump in the modulator board to feed forward.

  6. Run on the transmitter for 30 minutes, then apply high voltage.

  7. Start the rf_control program.

back to tuning transmitters

Step A: Evaluation the tuning status: Program 0.2 MW demand 20 ms pulse, and take a test shot. The result can be viewed from the following scopes

      cd /usr/local/cmod/codes/rf/scopes/
      dwscope -def dcpower1.dat &             
      dwscope -def xmtr1.dat &
      dwscope -def fmit1_ipadrv_coef.dat &
 

You can also use the tuning program like the following to check the status:

   
      cd /usr/local/cmod/codes/rf/idl
      idl
      .r fmit1_tuning                        
      fmit1_tuning, test_shot   ;; if no test_shot is given, current test shot is used.

The output of this program can be pasted to a log file so one can keep track of the progress.

If you get more than 100 kW out of FPA, go to step E; otherwise, go to Step B.

back to tuning transmitters

Step B: Get some power from IPA: The only practical knob at the IPA stage is IPA OUTPUT TUNE (OT). The IPA INPUT TUNE (IT) is very broad, in general you don't have to do anything about it. The IPA OUTPUT LOAD (OL) is way too sensitive, and we don't touch it if it is not absolutely necessary.

You need to raise the RF demand (e.g., 400 kW, 20 ms) and get Kalmus power to the 200-300 W level. You should also have IPA anode current more than 0.5 A (so that the IPA is sufficiently driven). Choose a direction, move IPA OT in step of 10 counts. Check the trend of the IPA power, and decide which direction to continue. It is a slow but sure way to find the IPA peak power at about 2 to 4 kW. Don't touch IPA IT or OL. If you touched OL by accident, the peak will surely be lost, and you won't get it back by changing OL. You will have to work on OT again. After you have peaked the IPA, go to Step C.

back to tuning transmitters

Step C: Match IPA and DRVR: The key knob here is DRVR INPUT LOAD (IL). The DRVR INPUT TUNE is broad, and you don't need to adjust it. Go with step of 10 counts on DRVR IL, and follow the trend of IPA power reflection coefficient shot by shot. At the snap-in point, you will get near zero IPA reflection. You will not miss it by going 10 counts a time. The response of DRVR IL is nonlinear. It means you may not be able to find the solution by simply following a trend. However, since the change on reflection is dramatic at snap-in, it is not too difficult to find it in practice. After finding this match, you need to go back to Step B, by adjusting IPA OUTPUT TUNE, and peak the IPA power again.

At any time, if you get a DRVR screen overload, you should lower your power demand. If it happens repeatedly even at lower IPA power, you need to move away from this particular DRVR IL. The DRVR may be unstable because it is matching to a harmonic.

Go to Step D after you get the matching between IPA and DRVR with reasonable IPA power (2 to 4 kW).

back to tuning transmitters

Step D: Match DRVR and FPA: The knobs in this stage are DRVR OUTPUT TUNE (OT) and FPA INPUT LOAD (IL). Adjust DRVR OT in a step of 10-30 counts, follow the trend of DRVR forward power and peak it (to about 100 kW).

At any time, if you get a DRVR screen overload, you should lower your demand. When I was tuning FMIT #4 on 1060630, I found an unstable state at DRVR OT around 1370. The symptom is very high forward (MW level) and reflected power, with 100% reflection, and high DRVR screen current. The solution is to move DRVR OT 200 points away from this point, and work from there.

Adjust FPA IL to lower the DRVR refl/forw. This knob is rather sensitive, and you need to touch it carefully.

Raise the demand in rf_control program slowly shot by shot, and see how much FPA power the system can deliver. If you can get 1.8 MW to 2 MW, go to Step F, otherwise, to Step E.

back to tuning transmitters

Step E: Get more power: Find the stage that is limiting the total power. For example, if you don't see any more power from IPA after raising the demand, then it is the IPA stage that is limiting the total power. If you find the limiting stage is IPA or DRVR, you need to lower the power demand before doing the following steps to avoid driving the FPA too hard.

If the IPA is limiting stage, you can adjust IPA IT (broad response) to get about 30% more power. Other knobs are not practical as long as you use IPA OT to peak the IPA power previously in Step B.

If the DRVR is the limiting stage: check if the IPA-DRVR is matched (DRVR IL), and check if DRVR-FPA is matched (DRVR OT and FPA IL). You may have to sacrifice some DRVR reflection to get more power from the DRVR. You may have to redo Step C and Step D.

If it is the FPA that is limiting, see Step F.

back to tuning transmitters

Step F: Lower FPA screen current at high power: Touch FPA OUTPUT TUNE (OT) and FPA OUTPUT LOAD (OL) iteratively to get more power while keep the screen current low. FPA INPUT TUNE (IT) may also be touched if necessary. Rule of thumb for FPA power and screen current: 1 MW --> 1 A, 1.5 MW --> 2 A, 1.7 MW --> 3.5 – 4.0 A.

You may adjust DRVR OT and FPA IL in such a way that you can lower the screen current while keeping the same power output. For example, suppose you lower the DRVR OT and get a lower FPA power. Then you change FPA IL (rather sensitive), to get back to the similar power level. After this, you compare the screen currents. If this new setting gives you a higher screen current at the same power, you change DRVR OT and FPA IL in the opposite way. If you indeed get lower screen current at similar power, you should raise demand and see whether the power is still limited by FPA.

In case that you hit the setting limit on one of the knobs, for example, if DRVR OT hits the high limit, you need to raise DRVR OL, and lower DRVR OT away from the limit.

After you can get about 1.8 MW, at screen screen current no more than 3.5 A, and all previous stages are reasonably matched, go to Step G.

back to tuning transmitters

Step G: Evaluation at high power and longer pulse : Move the feed forward/feedback jump on the modulator board to normal feedback position. Take the following pulses: 100 kW/20 ms, 200 kW/100 ms, 500 kW/200 ms, 750 kW/400 ms, 1 MW/500 ms, 1.25 MW/500 ms, 1.5 MW/500 ms, 1.8 MW/500 ms. Watch all the transmitter parameters, for example, FPA anode V/I, screen V/I, DRVR power forward/reflected, IPA power forward/reflected, etc. If all shots are successful, go to finishing up

Here are some of the well tuned conditions:

--------------------- 78 MHz---------------------------
FMIT #3
IPA f 4.57kW, r 1.26kW, anode 4.10kV, 1.24 A 
DRVR f 96.0kW, r 5.8kW, anode 15.1kV, 10.8A, scr 155.mA,Eff(%): 62.3
FPA f 1.703MW, r 0.005MW, anode 20.4kV, 102.8A, scr 1981.mA, Eff(%): 80.9

FMIT #4 
IPA f 3.23 kW, r 0.13kW, anode 4.43kV, 1.39A 
DRVR f 139.1kW, r 19.7kW, anode 15.8kV, 11.7A, scr 36.mA,Eff(%):85.9 
FPA f 1.755 MW, r 0.009MW, anode 21.1kV, 119.6A, scr 2855.mA,Eff(%): 69.3

--------------------- 70 MHz---------------------------
FMIT #3
IPA f 3.79kW, r 0.38kW, anode 4.37kV, 1.12 A 
DRVR f 93.8kW, r 14.9kW, anode 15.4kV, 15.7A, scr -39.mA,Eff(%): 44.9
FPA f 1.787MW, r 0.014MW, anode 20.6kV, 105.9A, scr 2937.mA, Eff(%): 81.4

FMIT #4
IPA f 2.373 kW, r 0.33kW, anode 4.38kV, 1.19A 
DRVR f 57.9kW, r 12.2kW, anode 15.5kV, 9.4A, scr 122.mA,Eff(%):48.1 
FPA f 1.791 MW, r 0.018MW, anode 20.6kV, 121.1A, scr 2516.mA,Eff(%): 71.3

---------------------50 MHz ---------------------------
FMIT#3
IPA f 1.13 kW, r 0.34kW, anode 4.45kV, 1.29A 
DRVR f 48.0kW, r 0.0kW, anode 15.8kV, 9.8A, scr 67.mA,Eff(%):31.1
FPA f 1.817 MW, r 0.006MW, anode 21.3kV, 114.8A, scr 2682.mA,Eff(%): 74.0

FMIT#4
IPA f   1.27 kW, r   0.36kW, anode  4.35kV,  1.20A
DRVR f   50.7kW, r   6.0kW, anode  15.2kV,   9.8A, scr  122.mA,Eff(%):38.1
FPA f  1.787 MW, r  0.006MW, anode  20.5kV, 115.9A, scr 3926.mA,Eff(%): 75.0

back to tuning transmitter

Finishing up:

Measure the harmonic level: Set up the spectrum analyzer, and use this

\RF::TOP.TRANSMITTERS:dio2.channel_1

signal as the trigger for the spectrum analyzer. We can measure the IPA and DRVR harmonics from their directional couplers. However, to get the FPA measurement, we have to run in feed forward mode, and with rather lower power demand and connect the spectrum analyzer to a point before any low-pass-filters. Be sure to change back to feedback, and put back the low-pass-filters.

Typically, as found on 1060703, the 2nd/3rd harmonics are down by about 50 dB in IPA and FPA. However, the level at DRVR is higher and it is only only about 20-30 dB down. This measurement is also affected by the different attenuations of the directional couplers. As a result, the real ratio may be higher or lower than the above numbers. Sometimes, you may find small peaks at hundreds kHz away from the center frequency at a level of more than 50 dB down. The origin of such signals are not known yet.

Re-calibrate waveform generator vs power: ran a shot under feedback, program a ramp-up from 0.01 to 1.8 MW. Compare the power output and the demand using the following program:

 cd /usr/local/cmod/codes/rf/idl/
 idl
 .r waveform_calib.pro
 waveform_calib, 'd', shot_number         ;; use 'e', 'j3', 'j4' for other transmitters.

and follow the instructions. There is only one coefficient (no more guessing or cranky curve fitting), for example,

\RF::TOP.TRANSMITTERS.TRANSMITTER1.WAVE_FORM:MW_V_COEF

that is needed to be calibrated. The rf_control program takes care of the conversion using demodulator calibration curves in the tree. The value of the coefficient is solely determined by the gain in the modulation board. If the modulation board is modified (or swapped) or the demodulator is changed, you may also need to re-calibrate the coefficient (after correctly point the demodulator for the DC0 signals).

If tuning FMIT #3 and #4, you need to switch the source ready back to plasma operation.

During the vacuum conditioning following the tuning, one needs to watch transmitter oscillations.

back to tuning transmitters || back to table of contents

Changing J antenna frequency

  1. Run the following IDL program to update information in the RF data tree (including frequency, demodulator calibration curves, directional couplers attenuations, etc). The program also provide the information on attenuation change.

    idl
    .r /usr/local/cmod/codes/rf/idl/change_j_freq
    change_j_freq, freq=78, shot=-1          ;;other frequency choices are 70, and 50.
  2. calibrate J3/4 DC0 cables and put them into the following nodes. Each node is a two-element array. The first value is the cable attenuation, and the 2nd value is the directional coupler attenuation. You only need to change the first one. For a glance of all the attenuations, check tthe text file at /usr/local/cmod/codes/rf/idl/calibration_J_couplers_probes.caldat. You can modify the tree by changing the values in this file, and run calibiration_couplers_probes, 'JDC0F', /update, frequency=50. (You can also use the time-consuming way and work through “traverser”)

    \RF::TOP.ANTENNA.DATA.J_PORT.FMIT_3.DIR_COUPLERS:P_forw_0:cal     ;; total ~ 96 dB
    \RF::TOP.ANTENNA.DATA.J_PORT.FMIT_3.DIR_COUPLERS:P_refl_0:cal     ;; total ~ 94 dB
    \RF::TOP.ANTENNA.DATA.J_PORT.FMIT_4.DIR_COUPLERS:P_forw_0:cal     ;; total ~ 97 dB
    \RF::TOP.ANTENNA.DATA.J_PORT.FMIT_4.DIR_COUPLERS:P_refl_0:cal     ;; total ~ 95 dB

    It is recommended to add/remove attenuators on the DC0 forw and refl on the demodulators to make the total attenuations close the ideal values above. The directional couplers have different attenuations at different frequency while the cables attenuations are not as sensitive. If this is not achievable, adjustments on the arc protection system has to be made (See Section arc threshold).

  3. calibrate J3/4 DC1 cables and put them into the following nodes. The directional couplers have different attenuations at different frequency while the cables attenuations are not as sensitive. Each node is a two-element array. The first value is the cable attenuation, and the 2nd value is the directional coupler attenuation. You only need to change the first one.

    \RF::TOP.ANTENNA.DATA.J_PORT.FMIT_3.DIR_COUPLERS:P_forw_1:cal    ;; total ~ 99.5 dB
    \RF::TOP.ANTENNA.DATA.J_PORT.FMIT_3.DIR_COUPLERS:P_refl_1:cal    ;; total ~ 92 dB
    \RF::TOP.ANTENNA.DATA.J_PORT.FMIT_4.DIR_COUPLERS:P_forw_1:cal    ;; total ~ 100.5 dB
    \RF::TOP.ANTENNA.DATA.J_PORT.FMIT_4.DIR_COUPLERS:P_refl_1:cal    ;; total ~ 95 dB

    It is recommended to add/remove attenuators on the DC1 forw and refl on the demodulators to make the total attenuations close the ideal values above. If this is not achievable, adjustments on the arc protection system has to be made (See Section arc threshold).

  4. Change the local oscillator frequency on the cell demodulators for the new frequency. The local oscillator frequency is 10 MHz above the RF frequency. For example, to run at 78 MHz, the local frequency is set at 88 MHz. The change is done on the DIP switch near the bottom of the demodulator front panel.

     RF freq.       78 MHz      70 MHz     50 MHz     55 MHz     43 MHz   
     Local freq.    88 MHz      80 MHz     60 MHz     65 MHz     53 MHz
     Dip switch pos.
                       x        x          x             x          x     LSB
                    x           x             x       x          x
                       x           x       x             x       x
                       x           x          x       x             x     MSB
                    0010        0011       0101       1010       0110      
  5. Depending on the loop configuration, you may have to disable or enable the phase balance fault protection. You may also need to adjust voltage limit fault threshold, and digital phase value. See Section arc threshold).

  6. Change the HP RF synthesizer frequencies (one at 30 MHz, and the other one 30 + freq), and switch source ready to independent.

  7. Push ferrite rods all the way in for 78 and 70 MHz. Pull them all the way out for 50 MHz.

  8. Some modification on the dummy load switch has to be made for 50 MHz.

  9. Change the low pass filters above the control rack accordingly.

  10. Change the computer controlled digital phase shifter modules accordingly.

  11. Make sure that the 9-inch lines are capped (or connected to the antenna), then tune FMIT #3 and FMIT #4 following Steps in tuning transmitters.

back to changing J antenna frequency || back to table of contents

Antenna conditioning

Vacuum conditioning This is the most common method in raising the antenna voltage handling. We run low RF power, usually no more than 200 kW, to achieve high voltages in the antenna strap. Gas absorption or minuscule dusts on the antenna that produces arcs can be conditioned away. However, the high voltage locations on the straps are not exactly the same as when running to plasmas, and there are neutral gases and plasmas around the antenna, so that the antenna performance in plasmas is always worse than that in vacuum. Here are some points that one needs to be aware of.

Good starting power levels are 60 kW for D and E, 110 kW for J3 and J4. For D and E antennas, we need to set the threshold for phase balance fault at about 50 kW. It means roughly 300 counts below the normal phase balance threshold on PLC ch24_4 and PLC ch10_4. Put them back for plasma operation. D and E can be conditioned up to 100 kW. J3 and J4 can be as high as 280 kW.

The J3 and J4 antennas have always had a problem in vacuum tuning. The result in running power is different than that tuned using a network analyzer (however we do). The cause has not been figured out. At times, one may have to touch the stub tuner slightly in order to run. After a series of long pulses, the matching will drift also (thermal?), and adjusting the stub tuner length can generally help.

For a freshly tuned transmitter, you need to be wary about transmitter oscillations at the vacuum loading. The symptom is usually max faults at even very low power demand level, and no improvement shot by shot. If one disable the phase-balance protection, such a system will run to the arc power threshold and faults at the point. Since the transmitter does not oscillate to dummy load, the problem is hard to fix. I don't have a standard procedure to deal with it yet. On FMIT#3 and #4, make sure the ferrite rods are at their proper positions. Oscillation on FMIT#3 and #4 may be also resulted from the DC breaks (usually too low capacitance), or an incorrect decoupling loop design. Not all transmitters that oscillate in vacuum will oscillate and become unstable in plasma operation.

In most cases, the pulses should have significantly fewer faults at the same power demand after less than 5 one-sec shots. If this is not achievable, one needs to use chassis ears to locate the arc location. Metallic bangs generally mean that the transmission line is broken down (almost always with Teflon involved). It is strongly recommended to stop further conditioning until the problem is identified or fixed. Faint “zzz...” sound generally means that the break-down is inside the vacuum. Usually, this kind of arcing can be eventually conditioned away. In any cases, be cautious of not overdoing the conditioning because vacuum conditioning can only help plasma operation to a limited extent, but may wreck the system.

Gas filled conditioning This is the way that can mimic the plasma operation, but does not require real plasmas. We only have limited experience on this issue. Generally, we can run the antennas at 0.1 mtorr gas pressure, but may have more faults at 0.2 mtorr level. Although we can reproduce the neutral limit phenomenon, it is still not clear whether running at 0.2 mtorr can help condition the antenna.

We have also tried multi-pactoring experiment on conditioning. On occasions, we did observe a reduced plasma condition time, but in other cases, no improvement was observed. We somewhat suspect that doing multi-pactoring conditioning may cause damages where it hits. As a result, multi-pactoring conditioning is not recommended until we have more knowledge on this technique.

Plasma conditioning Well, just run the antennas and get higher power. Watch all vital signs, including transmitter signals, arc protection signals, JVX phase, etc. For a freshly tuned transmitter, you need to watch closely the FPA screen current also.

back to table of contents

Fast ferrite tuning system on E port


Introduction

                  phase shifter      FFT#2 
          stub tuner  |--|            ||               FFT#1
             |        |  |            ||STUB1          ||STUB2
FMIT#2 ---x--|--------|  |---------x--||-----x---------||-x------To E antenna
         DC1                    FFTDC#1    FFTDC#3      FFTDC#2  

Note: the labels are not consistent. stub1 and stub2 refers to the electrical lengths, while FFT#1 and FFT#2 refer to the power systems for the FFT canisters. DC1, 2, 3 are the directional couplers measuring the rf power.

The FFT is designed to make the reflection coefficient at FFTDC#1 to be zero. Therefore, we need to by-pass the existing stub tuner and phase shifter before running the FFT. The stub length should be at lambda/4 location (for 80 MHz, the length is at 4.6875 meter). In terms of the PLC counts, it should be about 333 (the response is rather broad near this position). One can tune out the stub tuner from the system using a network analyzer looking at a 50 ohm load at FFTDC#1 location before the FFT is installed.

The lengths of the FFTs and the location of the FFTs relative to the antenna is crucial. (Well, there are quite few IDL programs for the design purpose, and really hard to describe them here). The current design tries to make the system to have the largest parameter space of GAMMA_FFTDC#2. It is not the one to have the lowest voltages on the FFTs (we had arc problems at FFT#2 at high power).

The real time routines reside at the following directory:

/usr/local/cmod/codes/rf/fft

Scope file at

/usr/local/cmod/codes/rf/fft/fft_scope.dat 

Timing module: DIO2

\RF::TOP.FFT:DIO2       ; A dedicated highway fiber is connected from the engineering encoder to this module.
                        ; If the fiber signal is too weak, the computer would not have correct event timing.
BOARD ID: 0       MODE: LOCAL       CRATE IPADDR: (LEAVE IT BLANK)   CLOCK SOURCE: HIGHWAY
REC. START EVENT: “”   SYNCH: NO     SYNCH EVENT: “”                 DISPATCH
CH1
FUNCTION: PULSE         COMMENT: TRIGGER SIGNAL FOR DPCS2 FOR FFT CONTROL
TRIG MODE: EVENT        CYCLIC: NO        EVENT: [“RF_START”, “START   “]
INITIAL LEVEL 1: LOW    INITIAL LEVEL 2: HIGH   DELAY: 4
DURATION: 0.1           TRIGGER TIME: \TOP:TSTART

CH2
FUNCTION: CLOCK   COMMENT: 1 MHZ CLOCK FOR DPCS2 MODULE
FREQUENCY: 1000000   DUTY CYCLE: 50

Digital control computer: DPCS2

\RF::TOP.FFT:DPCS2
\RF::TOP.FFT:DPCS2:INIT_ACTION
      action 
      sequential            method
      ident”: pcdaqdpcs2:mdsip_analysis     Device: DPCS2
      phase”: init                          Method”: init
      sequence”: 99
\RF::TOP.FFT:DPCS2:RT_ACTION
      ident”: pcdaqdpcs2:mdsip_analysis     Device: DPCS2
      phase”: CHECK                         Method”: REAL_TIME
      sequence”: 5000
\RF::TOP.FFT:DPCS2:RT_CK_ACTION         ;; this node is usually turned off.
      ident”: DPCS_SERVER                   Device: DPCS2
      phase”: STORE                         Method”: RT_CHECK
      sequence”: 1
\RF::TOP.FFT:DPCS2:STORE_ACTION
      ident”: pcdaqdpcs2:mdsip_analysis     Device: DPCS2
      phase”: STORE                         Method”: STORE
      sequence”: 50
\RF::TOP.FFT:DPCS2.PROCEDURES
\RF::TOP.FFT:DPCS2.PROCEDURES:USER_INIT
      “fft_init”                       ;; initialization routine
\RF::TOP.FFT:DPCS2.PROCEDURES:USER_RT
      “fft_real_time”                  ;; real time routine
\RF::TOP.FFT:DPCS2.PROCEDURES:USER_RT_CK
      undefined
\RF::TOP.FFT:DPCS2.PROCEDURES:USER_STORE
      “fft_store”                     ;; store routine
\RF::TOP.FFT:DPCS2.SETTINGS
\RF::TOP.FFT:DPCS2.SETTINGS:CARDS
      [2]                             ;; total # of cards
\RF::TOP.FFT:DPCS2.SETTINGS:CLOCK
      DIO2.CHANNEL_2:CLOCK            ;; clock signal from DIO2
\RF::TOP.FFT:DPCS2.SETTINGS:DISABLE_INTS
      1                               ;; 1 (normal operation) = interrupts disabled, 0 means enabled
\RF::TOP.FFT:DPCS2.SETTINGS:ECM
      200                             ;; # of clock cycles per iteration, 200 = 200 micro-seconds
\RF::TOP.FFT:DPCS2.SETTINGS:END_TIME
      2                               ;; end time of the DPCS, in seconds relative to t=0
\RF::TOP.FFT:DPCS2.SETTINGS:EVENT_NAME
     undefined
\RF::TOP.FFT:DPCS2.SETTINGS:FIFO
     “/tmp/dpcs2”                     ;; directory for temporary files (?)
\RF::TOP.FFT:DPCS2.SETTINGS:INPUTS
    [32]                              ;; number of input channels (set by hardware)
\RF::TOP.FFT:DPCS2.SETTINGS:LLSHR_IMAGE
    “libllshr-poll.so.full_stats_outputs_02”     ;; a run-time library (?) 
\RF::TOP.FFT:DPCS2.SETTINGS:OUTPUTS
    [16]                             ;; number output channels (set by hardware)
\RF::TOP.FFT:DPCS2.SETTINGS:TRIGGER
     DIO2.CHANNEL_1:TRIGGER_1        ;; trigger signal from DIO2.
\RF::TOP.FFT:DPCS2.SIGNALS
\RF::TOP.FFT:DPCS2.SIGNALS:INPUT_001 ;; one of the 32 input signals
\RF::TOP.FFT:DPCS2.SIGNALS:OUTPUT_001 ;; one of the 16 input signals

Directional couplers

\RF::TOP.FFT.DIR_COUPLERS          ;;FFTDC#1, FFTDC#2, FFTDC#3, same structure.
\RF::TOP.FFT.DIR_COUPLERS.DC1:PFORW:CAL     ;; dc attenuation, cable attenuation
\RF::TOP.FFT.DIR_COUPLERS.DC1:PFORW:CAL_DATE ;; calibration date
\RF::TOP.FFT.DIR_COUPLERS.DC1:PFORW:DEMOD    ;; demodulator name and calibration curves
\RF::TOP.FFT.DIR_COUPLERS.DC1:PFORW:RAW_SIG  ;; raw signal
\RF::TOP.FFT.DIR_COUPLERS.DC1:PFORW:SIG_IO_CH ;; the channel number of the raw signal
FFTDC#1: demod<-> D1041
Pforw <-> input_001, sig_io_ch <-> 1
Prefl <-> input_002, sig_io_ch <-> 2
Phase <-> input_003, sig_io_ch <-> 3
FFTDC#2: demod<-> D1040
Pforw <-> input_004, sig_io_ch <-> 4
Prefl <-> input_005, sig_io_ch <-> 5
Phase <-> input_006, sig_io_ch <-> 6
FFTDC#2: to be added.

Length information and feedback parameters

\RF::TOP.FFT.LENGTHS      ; each node has two values. the total value counts. All total lengths are positive. 
\RF::TOP.FFT.LENGTHS:L_DC1_STUB1  ; distance between FFTDC1 to stub1 (FFT#2), in meter
   [0.46, 0.005]     
\RF::TOP.FFT.LENGTHS:L_ST1_ST2   ; distance between stub1(FFT#2) to stub2 (FFT#1), in meter
   [1.40625,0.]
\RF::TOP.FFT.LENGTHS:L_STUB1_INIT ; The electrical length of stub1 (FFT1) at 0 current, in meter
   [0., 1.605]
\RF::TOP.FFT.LENGTHS:L_STUB2_DC2  ; distance between FFTDC2 to stub2 (FFT#1), in meter
   [0.46, 0.005]
\RF::TOP.FFT.LENGTHS:L_STUB2_INIT  ;The electrical length of stub1 (FFT1) at 0 current, in meter
   [0, 0.996]
   
\RF::TOP.FFT.FEEDBACK      ; each node has two values. the total value counts. All total lengths are positive. 
\RF::TOP.FFT.FEEDBACK:POWERTHRESH ; kW. Control computer only do calculation when FFTDC#1 Pforw > this threshold 
   10                            ;see computation 
\RF::TOP.FFT.FEEDBACK:DC1THRESH ; gamma_dc1 thresholds. See computation 
 [0.316, 0.1]                   ; the 1st value separates feedback or feedforward, the
                                ; 2nd value defines a good-enough threshold. 
                                ;(note: power reflection coef is squared)

PID (proportional-integral-derivative) parameters:
       error signal = e(t-1) = m(t-1) - d(t-1)                    ;m: measured, d: demand
       d(t) = d(t-1) + gain*[e(t) + derivative*(e(t)-e(t-1))]  ; gain <0 for feedback, derivative > 0 for pro-act

\RF::TOP.FFT.FEEDBACK:GAIN_CUR   ; current feedback gain
 -0.5  
\RF::TOP.FFT.FEEDBACK:DERIV_CUR  ; current feedback derivative
 0.2
\RF::TOP.FFT.FEEDBACK:GAIN_ST    ; stub length feedback gain
 -0.2
\RF::TOP.FFT.FEEDBACK:DERIV_ST   ; stub length feedback derivative
 0.2

Voltage and current of the ferrite canisters

\RF::TOP.FFT.TUNERS
\RF::TOP.FFT.FAULT_SIGNAL      ;reference to signal for the FFT fault in the digitizer
         \TOP.ANTENNA:DT196_11:INPUT_49
\RF::TOP.FFT.TUNERS.TUNER1                          ;; FFT#1
\RF::TOP.FFT.TUNERS.TUNER1:CTR_VOLT_SIG             ;; FFT#1 control voltage time trace
\RF::TOP.FFT.TUNERS.TUNER1:CTR_VOLT_SIG:CTR_V_TO_I  ;; 60 amp/v, 1 V ctrl volt --> 60 A output current
\RF::TOP.FFT.TUNERS.TUNER1:CTR_VOLT_SIG:SIG_IO_CH   ; =1, DPCS output channel for ctrl voltage. (ch 2 for FFT#2)

\RF::TOP.FFT.TUNERS.TUNER1:CURRENT                  ; measured FFT#1 coil current time trace
\RF::TOP.FFT.TUNERS.TUNER1:CURRENT:CUR_DEMAND      ;Demand current level from DPCS2
\RF::TOP.FFT.TUNERS.TUNER1:CURRENT:CUR_RANGE       ;[-150.,150.] Amp. current range allowed. 
\RF::TOP.FFT.TUNERS.TUNER1:CURRENT:CUR_RAW_SIG     ;raw signal from the current sensor 
\RF::TOP.FFT.TUNERS.TUNER1:CURRENT:SIG_IO_CH       ;=7 DPCS input channel (ch 8 for FFT#2)
\RF::TOP.FFT.TUNERS.TUNER1:CURRENT:V_TO_I_SCALE    ;=66, 1 V sensor signal = 66 amp real current (65 for FFT#2)

\RF::TOP.FFT.TUNERS.TUNER1:L_STUB                  ;calculated electrical stub(#2) length trace
\RF::TOP.FFT.TUNERS.TUNER1:L_STUB:I_TO_L_CONV      ;calibration curve (2-D array, current vs. length variation.)
\RF::TOP.FFT.TUNERS.TUNER1:L_STUB:L_STUB_REQ       ;time traces of DPCS2 demand of stub#2 length.

\RF::TOP.FFT.TUNERS.TUNER1:VOLTAGE                 ;coil voltage trace
\RF::TOP.FFT.TUNERS.TUNER1:VOLTAGE:SIG_IO_CH       ;=9 DPCS input channel (ch 10 for FFT#2)
\RF::TOP.FFT.TUNERS.TUNER1:VOLTAGE:VOLT_RAW_SIG    ;raw signal from the voltage sensor 
\RF::TOP.FFT.TUNERS.TUNER1:VOLTAGE:V_RANGE         ;=[-200,200], voltage range allowed
\RF::TOP.FFT.TUNERS.TUNER1:VOLTAGE:V_TO_V_SCALE    ;=20, 1 V sensor signal = 20 V real voltage

back to fast ferrite tuner on E-port

PLC interface for remote control (to be added)

Trouble shooting

The problems are mostly computer related, and can be solved by rebooting the digitizer and computer. The first sign of trouble is no data in scope, or the tuner current overloaded. Check the logfile /usr/local/cmod/logs/pcdaqdpcs2-dpcs2.log.

Reboot the digitizer first, then the computer (Dell Server) (the order matters). Go to this webpage, login using your linus account, https://www.psfc.mit.edu/research/alcator/data/c_mod_ac_power.php

The switch is alcpwr9: outlet 3 is for digitizers and outlet 1 is for the server. The server took about 3 minutes to fully recover. You may use “ping pcdaqdpcs2” to check its status remotely, and “ssh pcdaqdpcs2” to be sure it is back. You may take a test shot using idl program “fft_test_shot.pro” to take a shot. If there is data shown in the scope, you have probably fixed the system, and you can reset the tuner over current indicator.

Some times, there may be a problem called “/tmp/dpcs2_in is not a pipe” (you can tell from the logfile). you need to simply login onto pcdaqdpcs2, and “rm /tmp/dpcs2_in”. (I don't know the cause of this problem, but it must be related to the booting process).

If you make changes on the fft programs, you need to reboot the IDL program on the Dell server.

ssh pcdaqdpcs2
mdstcl
set tree rf /shot=-1
set def fft
do /method dpcs2 exit
exit
exit

How the computation is done

The routines need to calculate the required stub lengths to get the match, and also convert the length information to the control voltage to the power supplies of the tuners. The calculation of the stub lengths started from getting the directional coupler data, and scale them to get gamma_fftdc1 and gamma_fftdc2.

Calculate the required stub lengths to match from gamma_fftdc2: when |gamma_fftdc1| > dc1thresh[0] and pforw_dc1 > powerthresh. No stub lengths information is needed. This is feed forward on the stub length related to the reference point of gamma_fftdc1=0 (coil currents are always in feedback mode).

            beta= lambda/2/pi & ci = complex(0.0,1.0)
            gamma = gamma_fftdc2*exp(-2.0*ci*beta*lengths.l_st2_dc2)
            Y = (1-Gamma)/(1+Gamma)
            GL = float(Y)  & BL = imaginary(Y)             
            tan_beta_l = tan(beta*lengths.l_st1_st2) ; reduce calculation time
            cot_beta_l = 1/tan_beta_l
            Gmax = 1.+cot_beta_l^2
            if GL*(Gmax - Gl) ge 0.0 then begin
            ;; two sets of solution. ALMOST ALWAYS, WE CHOOSE CHOICE 1.
                choice = 1
                case choice of
                    1: b = cot_beta_l + sqrt(GL*(Gmax - GL))
                    2: b = cot_beta_l - sqrt(GL*(Gmax - GL))
                endcase       
                                ; STUB 1
                tan_beta_st1 = (GL*tan_beta_L)/(1.-b*tan_beta_l - GL)
                st1_norm = atan(tan_beta_st1)/6.28319
                st1_norm = (st1_norm + 0.5) mod 0.5
                
                                ; STUB 2
                tan_beta_st2 = 1./(BL - B)
                st2_norm = atan(tan_beta_st2)/6.28319 ;; normalized to lambda
                st2_norm = (st2_norm + 0.5) mod 0.5
                
                ;; output in 'meter'
                l_stub1_out = st1_norm*lambda
                l_stub2_out = st2_norm*lambda

Calculate the existing stub lengths from gamma_fftdc2 and gamma_fftdc1: when dc1thresh[1] < |gamma_fftdc1| < dc1thresh[0], and pforw_dc1 > powerthresh.

        gamma1 = gamma_fftdc1*exp(2.0*ci*beta*lengths.l_dc1_st1)
        y1 =  (1.-gamma1)/(1.+gamma1) 
        
        gamma2 = gamma_fftdc2 *exp(-2.0*ci*beta*lengths.l_st2_dc2)
        y2 = (1 - gamma2)/(1 + gamma2)
        
;; write P = tan(beta*l_stub1+beta*lengths.st1_min)  ; unknown, to be solved
;; write Q = tan(beta*l_stub2+beta*lengths.st2_min)  ; unknown, to be solved
;; write R = exp(+2.0*ci*beta*lengths.l_st1_st2)     ; fixed imaginary number.
        
;; then the equation is (two equations because they are complex number)
        
;     (1-y1)P-ci      (1-y2)Q+Ci
;     ----------.R = ----------
;     (1+y1)P+ci      (1+y2)Q-Ci
        
; write y1 = a1+ib1, y2= a2 + ib2, R = a3+ib3 = -ib; in ideal case, R = -i
        
;in the ideal case: the equations have the form
; PQ + U1*P + V1*Q + W1 = 0
; PQ + U2*P + V2*Q + W2 = 0
        
        a1 = float(y1) & b1 = imaginary(y1)
        a2 = float(y2) & b2 = imaginary(y2)
        R = exp(+2.0*ci*beta*lengths.l_st1_st2) 
        a3 = float(R) & b3 = imaginary(R)
        
; ideal case, a3=0, b3=-1
        D1 =(1-a1)*(1+a2) + b1*b2 + b1*(1-a2)-(1+a1)*b2
        U1 = (1+a1-b1)/D1
        V1 = (1-a2+b2)/D1
        W1 = -1/D1
        
        D2 =  (1-a1)*b2 - b1*(1+a2) - (1+a1)*(1-a2)-b1*b2
        U2 = (-1+a1+b1)/D2
        V2 = -(1+a2+b2)/D2
        W2 = 1/D2
        
        AA = V2-V1 
        BB = (W2-W1 - U2*V1+V2*U1) 
        CC = -U2*W1+U1*W2
        
;; check sqrt
        dummy = BB^2-4*AA*CC
        if dummy ge 0.0 then begin
            Q1 =  (-BB + sqrt(BB^2-4*AA*CC)) /2/AA
            P1 = (-V1*Q1-W1)/(Q1+U1)
            Q2= (-BB - sqrt(BB^2-4*AA*CC)) /2/AA
            P2= (-V1*Q2-W1)/(Q2+U1)
            tan1_root1 = P1 & tan1_root2 = P2
            tan2_root1 = Q1 & tan2_root2 = Q2
        endif else begin 
            tan1_root1 = 0. & tan1_root2 = 0.
            tan2_root1 = 0. & tan2_root2 = 0.
        endelse
               
;; to check whether roots exist.
        eff_length_success = (abs(tan1_root1) + $
                              abs(tan1_root1)+ abs(tan1_root1) + abs(tan1_root1)) gt 0.0001
        
        if eff_length_success then begin
            ;; normalized to half lambda    
            st1_norm1 = atan(tan1_root1)/!pi/2.
            st1_norm1 = (st1_norm1 + 0.5) mod 0.5
            st1_norm2 = atan(tan1_root2)/!pi/2.
            st1_norm2 = (st1_norm2 + 0.5) mod 0.5
            st2_norm1 = atan(tan2_root1)/!pi/2.  
            st2_norm1 = (st2_norm1 + 0.5) mod 0.5
            st2_norm2 = atan(tan2_root2)/!pi/2.  
            st2_norm2 = (st2_norm2 + 0.5) mod 0.5
            l_stub1_est1 = st1_norm1*lambda         ;calculated stub lengths from gammas
            l_stub2_est1 = st2_norm1*lambda
            l_stub1_est2 = st1_norm2*lambda
            l_stub2_est2 = st2_norm2*lambda
            
            ;; assuming the good root is the one closer to the initial
            ;; lengths (by design. In rare cases, the root indeed
            ;; jumps)
            delta1 = sqrt((l_stub1_est1 -lengths.l_stub1_ini)^2 +$
              (l_stub2_est1 - lengths.l_stub2_ini)^2)
            
            delta2 = sqrt((l_stub1_est2 -lengths.l_stub1_ini)^2 +$
              (l_stub2_est2 - lengths.l_stub2_ini)^2)
            
            ;; only if the solutions are not far away from the
            ;; estimated initial length (other wise, the dc1/dc2
            ;; signals are wrong).
            if delta1 le 0.5 or delta2 le 0.5 then begin
                ;; note the swapping of 1 and 2 here (because we label fft1 as stub2)
                fft1.l_stub_mea =  l_stub2_est1
                fft2.l_stub_mea =  l_stub1_est1
                if delta2 le delta1 then begin
                    fft1.l_stub_mea =  l_stub2_est2
                    fft2.l_stub_mea =  l_stub1_est2
                endif
            endif
        endif

Calculate the required stub lengths to match from gamma_fftdc1: using the calculated stub lengths, when dc1thresh[1] < |gamma_fftdc1| < dc1thresh[0], and pforw_dc1 > powerthresh. This is feedback on gamma_fftdc1 and also coil currents.

            l_stub1 = fft2.l_stub_mea                            ; use the calculated stub lengths
            l_stub2 = fft1.l_stub_mea
 ; from dc1 to st1 location
            gamma = gamma_dc1*exp(2.0*ci*beta*lengths.l_dc1_st1)
 ;stub 1
            y = (1.-gamma)/(1.+gamma) -  1.0/(ci*tan(beta*l_stub1))
 ;3/8 lambda piece; l = - 3*lambda/8
            gamma = (1.-y)/(y+1.)*exp(+2.0*ci*beta*lengths.l_st1_st2) 
 ;stub 2                
            y = (1.-gamma)/(1.+gamma) - 1.0/(ci*tan(beta*l_stub2))
            GL = float(Y)  & BL = imaginary(Y) 
          ;;follow above calculation using fftdc2 only.   
           

back to table of contents

Digitizers, timing modules and data management

RF monitor signals

back to digitizers, timing modules and data management

Power room signals

back to digitizers, timing modules and data management

Cell signals

back to digitizers, timing modules and data management

Timing modules

back to digitizers, timing modules and data management || back to table of contents

Data management

At present, all the RF data are taken through data server pcdaqeng1. The rf monitor is also run on this server. Many other groups also use this server. They are highway fibers the timing modules. There are also network fibers/routers to the digitizers. To reboot the digitizers/waveform generator mounted on pcdaqeng1, you can do the following:

ssh pcdaqeng1.psfc.mit.edu
acqcmd -b 62 getState           ;; get status of board #62 (DT196_xmtr12, also DT196AO) (board# see digitizers)
acqcmd -b 62 getFwrev           ;; get the version of firmware on the board.
ssh root@192.168.0.62           ;; logon (password as of 09/2007: d-t1012q)
reboot                          ;; reboot the digitizer. (Use “acqcmd -b 62 getState” again after about 1 minute)

There is also a net-based remote switch installed (alcpwr12). login onto this webpage to manipulate the power. https://www.psfc.mit.edu/research/alcator/data/c_mod_ac_power.php

To check the status of the digitizers, you can use the following IDL line:

ssh pcdaqeng1.psfc.mit.edu
idl
state = mdsvalue('_state = Dt200WriteMaster(62, "getState")')  ;; get board 62 status

The shot data are physically located on server alcdaq, for example

ssh alcdaq.psfc.mit.edu                                ;; login 
cd /cmod/trees/test/rf/                                ;; rf test shots
cd /cmod/trees/saved/rf/                               ;; saved rf test shots.
cd /cmod/trees/new/rf/                                 ;; rf data from today's C-Mod run
cd /cmod/trees/new/rf_monitor/                         ;; rf monitor data from today's C-Mod run
cd /cmod/trees/archives/07/08/29/rf/                   ;; archived rf data for run 1070829.
cd /cmod/trees/archives/07/08/29/rf_monitor/           ;; rf monitor data for run 1070829.

During a normal C-Mod shot, the rf data are processed after the store action is finished. The shell scripts are run by so-called devices in the rf MDSplus tree, for example,

\RF::TOP.ANTENNA:RF_POWER_D
Action
Sequential                               Expression
Ident: "SUBMIT_SERVER"     submit("/usr/local/cmod/codes/rf/idl/rf_power_d_submit.sh") 
Phase: "STORE"
Sequence:  DT196_12:STORE_ACTION && .-.TRANSMITTERS:DT196_XMTR12:STORE_ACTION 

Note: the submit server assigns (sort of randomly) which C-Mod Linux computer to do the job. Therefore, rebooting a Linux computer during C-Mod run should generally be avoided.

The shell scripts being called are listed below:

Under directory: /usr/local/cmod/codes/rf/idl/ 
rf_bdot_process_submit.sh            ;; Scale the b-dot probes data (rarely used)             
rf_fault_log_submit.sh               ;; Decipher the analog outputs on faults, 
                                     ;; and make logbook entries under topic 'rf_monitor'      
rf_ioncyc_pos_submit.sh              ;; Calculate ion cyclotron layer location using EFIT data.
rf_power_d_submit.sh                 ;; Calculate D power from demodulator curve and attenuation       
rf_power_e_submit.sh                 ;; Calculate E power from demodulator curve and attenuation    
rf_power_j3_submit.sh                ;; Calculate J3 power from demodulator curve and attenuation   
rf_power_j4_submit.sh                ;; Calculate J4 power from demodulator curve and attenuation
rf_power_s.sh                        ;; Calculate total rf net power.
rf_probes_d_submit.sh                ;; Calculate D probe from demodulator curve and attenuation  
rf_probes_e_submit.sh                ;; Calculate E probe from demodulator curve and attenuation  
rf_probes_j_submit.sh                ;; Calculate J probe from demodulator curve and attenuation  

The log information on these scripts are recorded in the log files. These files can help debug if there are problems with the automatic data processing.

/usr/local/cmod/logs/rf*.log                        ;today's log
/usr/local/cmod/logs/old-logs/logs-2007-08-29.tgz   ;logs for a particular day.

An example of the data structure in the tree:

\RF::TOP.ANTENNA.DATA.D_PORT.DIR_COUPLERS:P_FORW_1               ; The processed power signal (signal with time-axis)
\RF::TOP.ANTENNA.DATA.D_PORT.DIR_COUPLERS:P_FORW_1:CAL           ; calibrated attenuation (cable and DC) (numerics)
\RF::TOP.ANTENNA.DATA.D_PORT.DIR_COUPLERS:P_FORW_1:CAL_DATE      ; calibrated date (a string)
\RF::TOP.ANTENNA.DATA.D_PORT.DIR_COUPLERS:P_FORW_1:DEMOD_CHN     ; demodulator curve location (a string)
                “\RF::TOP.ANTENNA.DATA.DEMODULATORS.D1000:FORW”
\RF::TOP.ANTENNA.DATA.D_PORT.DIR_COUPLERS:P_FORW_1:INCAA_CHN     ; digitizer channel (a direct reference)
                .-.-.-.-:DT196_12:INPUT_32                     

\RF::TOP.ANTENNA.DATA.DEMODULATORS.D1000:FORW                    ; demodulator curve, array [[voltages], [rf signal dbm]]

In some occasions, we do not want to run the RF system during C-Mod cycle. For this purpose, we can make the RF tree not included or included in the C-Mod pulse:

mdstcl
set tree cmod
dir
dir/fu .rf
set node/noinclude .rf            ;; to include, use "set node/include .rf"
dir/fu .rf
close
exit

back to digitizers, timing modules and data management

Long pulse operation

cd /usr/local/cmod/codes/rf/idl
idl
.r change_long_pulse
change_long_pulse, /long_pulse                ;; to up to 4 sec plasma pulse length
change_long_pulse, /norm_pulse                ;; to normal 2 sec plasma pulse length

This program automatically configure the digitizers and the waveform generator. One needs to lengthen the gate signal and waveforms accordingly.

back to digitizers, timing modules and data management || back to table of contents

PLC computers, arc protection, etc

Starting/rebooting the PLC computers: Occasionally, the PLC computers may crash due to a power glitch or network problem. These computers are PCs with Intel-80386 CPU built in early 1990s (It is just amazing that they are still running fine in 2007). There are four such PCs labeled as rfant (the one near the session leader computer), rf (the one with FMIT #1), and rf2, rf3, rf4. After the computer is started, you need to do the following under the grand-old MS-DOS environment to start the PARAGON program:

login
password: rf         ;; passwords are rf (for rfant), rf, rf2, rf3, rf4, respectively.
parn                 ;; the command to launch PARAGON interface.

Sometimes, there may be an error saying a bad .csv file. You need to delete this file, for example, if you are working on rf4,

cd \rf4\report\
del *.v*
parn

If you cannot get them started, contact Joe Bosco or Yuri Rokhman for assistance. After a fresh reboot, one needs to type in all the information on Protection thresholds and limits (disregard all the values appeared initially).

back to PLC computers, arc protection etc

RF control interface well, it is better to learn through practice on this one: Run on/Run off, HV on/HV off, CAMAC/Manual, Reset transmitter, Reset lockout, and Dummy load/Cell.

Stub tuners and phase shifters:

The first time you started the PARAGON program, the default setting is that you are NOT allowed to move the positions. The password is "ctrl" to enable motion.

From time to time, the st/ps length corresponding to the counts have to be calibrated. One needs to run the ST/PS to the hard limits (both upper and lower). Record the numbers, and put them in the tree nodes, for example:

\RF::TOP.ANTENNA.DATA.D_PORT.TUNERS:SHIFTER_1
      4-element array: [max - min length (m), (max - min) (counts), UNUSED, min counts]
\RF::TOP.ANTENNA.DATA.D_PORT.TUNERS:TUNER_1
      4-element array: [max - min length (m), (max - min) (counts), UNUSED, min counts]

In cases that the upper limit is above 1000, or the lower limit is below 0, you need to adjust the resistor pots in the control circuits and make sure the limits are within 0 to 1000. Real voltage 10 V corresponds to 1000.

Protection thresholds and limits:

The arc protection system checks whether there is an arc in the antenna/transmission line, and shut off the gate signal so that no RF is amplified. We detect arcs from reflection coefficient, phase balance from voltage/current probes, and also a voltage limit on the line. The arc detectors' outputs are daisy-chained. On the gate board, it will retry a pre-set number (usually 10) of times before completely giving up. There is a time delay of about 10 ms (to be sure that the arc has been quenched) between retries.

back to PLC computers, arc protection etc

Digital phase control: This digital phase controller sets the phase difference between FMIT #3 and FMIT #4. The PLC convert the input value to 16 bits and connected to a digital phase shifter. We check whether a phase is properly set by looking at JVX3 and JVX4 phase data.

\RF::TOP.ANTENNA.DATA.J_PORT.V_PROBES:JVX_PHASE:INCAA_CHN

In the most common case, FMIT#3 to strap 1-3, and FMIT#4 to strap 2 and 4, with approximately equal coaxial length on both side, JVX phase = 0 for [0, pi, 0, pi] configuration. For normal [0, pi, pi, 0] operation with difference coaxial length on the two straps, JVX phase is also 0. It is at 2.5 V for co-current drive and -2.5 V for counter-current drive. In late campaign 2007, when we fed FMIT #3 to strap 1 and 2, and FMIT #4 to strap 3 and 4, with equal lengths, JVX is at 5 V for [0, pi pi, 0] operation.

For unknown reason, the digital phase is not linearly transferred to JVX phase. As a result, one has to do trial and error to figure out the right value.

back to PLC computers, arc protection etc || back to table of contents

List of scopes

Scope files are setups for the MDSplus dwscope and JAVA scope program. To launch a scope, type

dwscope -def filename            

To launch a JAVA scope, type

jScope

On both types of scopes, one can use menu "customize" --> "Use Saved Settings from..." to load the setups. More information on using the scopes can be found in the MDSplus beginners guide.

The scope files dealing with RF data and other interesting C-Mod data are in the directory:

/usr/local/cmod/codes/rf/scopes/

Here is the list and brief description as of September, 2007:

antenna_update_new.dat          ;antenna dc1 raw data, FPA anode voltage, net power.
bus_rogowskis_and_voltages.dat  ;TF bus, and other magnet information
cpci_clk_test.dat               ; test
cpci_dt196_11-1-49.dat          ; raw data for cpci_dt196_11, channel 1-49. Cell data.
cpci_dt196_12-1-49.dat          ; raw data for cpci_dt196_12, channel 1-49. Cell data.
cpci_dt196_12.dat               ; raw data for cpci_dt196_12, channel 1-49. Cell data.
d_antenna.dat                   ; D antenna information. powers, voltages, etc.
d_ant_faults.dat                ; D antenna faults indicators (arc, phase balance etc)
d_ant_faults_fast.dat           ; obsolete 
dcpower1.dat                    ; FMIT #1 DC powers (voltage, current, power, etc)
dcpower2.dat                    ; FMIT #2 DC powers (voltage, current, power, etc)
dcpower3.dat                    ; FMIT #3 DC powers (voltage, current, power, etc)
dcpower4.dat                    ; FMIT #4 DC powers (voltage, current, power, etc)
dcpower4_old.dat                ; obsolete
de_hvprobes.dat                 ; obsolete
dt196_11_ch1_32_raw.dat         ; raw data of dt196_11, Cell data.
dt196_11_ch33_64_raw.dat        ; raw data of dt196_11, Cell data.
dt196_11_ch65_96_raw.dat        ; raw data of dt196_11, Cell data.
dt196_12_ch1_32_raw.dat         ; raw data of dt196_12, Cell data.
dt196_12_ch33_64_raw.dat        ; raw data of dt196_12, Cell data.
dt196_12_ch65_96_raw.dat        ; raw data of dt196_13, Cell data.
d_vi_dc1_fast.dat               ; obsolete (because of modification on digitizers)
d_vi_dc1_fast_processed.dat     ; obsolete (because of modification on digitizers)
d_vi_probes.dat                 ; D antenna voltage and current probes processed data
d_vi_probes_raw.dat             ; D antenna voltage and current probes raw data
e_antenna.dat                   ; E antenna information. powers, voltages, etc.
e_ant_faults.dat                ; E antenna faults indicators (arc, phase balance etc)
e_ant_faults_fast.dat           ; obsolete (because of modification on digitizers)
e_vi_dc1_fast.dat               ; obsolete (because of modification on digitizers)
e_vi_dc1_fast_processed.dat     ; obsolete (because of modification on digitizers) 
e_vi_probes.dat                 ; E antenna voltage and current probes processed data
e_vi_probes_raw.dat             ; E antenna voltage and current probes raw data
fault_signal.dat                ; faults indicators all (arc, phase balance, etc)
fft_scope.dat                   ; fast ferrite tuners on E port
fmit1_antenna.dat               ; FMIT #1 and D antenna (power, current, voltage etc)
fmit1_antenna_raw.dat           ; FMIT #1 and D antenna raw data (power, I, V etc)
fmit1_ipadrv_coef.dat           ; FMIT #1 IPA/DRVR/FPA processed power traces
fmit2_antenna.dat               ; FMIT #2 and E antenna (power, I, V etc)
fmit2_antenna_raw.dat           ; FMIT #2 and E antenna raw data (power, current, voltage etc)
fmit2_ipadrv_coef.dat           ; FMIT #2 IPA/DRVR/FPA processed power traces
fmit34_antenna.dat              ; FMIT #3/#4 and J antenna  (power, current, voltage..)
fmit34_antenna_raw.dat          ; FMIT #3/#4 and J antenna raw (power, current, voltage..)
fmit34_ipadrv_raw.dat           ; FMIT #3/#4 IPA/DRVR/FPA raw power traces
fmit3_antenna.dat               ; FMIT #3 and J3 antenna information
fmit3_ipadrv_coef.dat           ; FMIT #3 IPA/DRVR/FPA processed power traces
fmit3_rfpwr.dat                 ; FMIT #3 IPA/DRVR/FPA processed power traces
fmit4_antenna.dat               ; FMIT #4 and J3 antenna information
fmit4_ipadrv_coef.dat           ; FMIT #4 IPA/DRVR/FPA processed power traces
fpa_anode_screens.dat           ; FPA #1-#4 anode V/I and screen V/I
gas.dat                         ; Gas puff signals on C-Mod                              
gaspressure.dat                 ; Obsolete
gate_signals.dat                ; RF control gate signals for all transmitters
j34_dc1_phase.dat               ; test
j34_transducer.dat              ; Obsolete
j_antenna.dat                   ; J (J3+J4) antenna information. powers, voltages, etc.
j_ant_faults.dat                ; J antenna faults indicators (arc, phase balance etc)
j_ant_faults_fast.dat           ; Obsolete
j_bdot_fast.dat                 ; Obsolete
j_bdot_raw.dat                  ; Bdot probe raw data
j_dc1_fast_processed.dat        ; Obsolete
j_dc1_fast_raw.dat              ; Obsolete
j_light_detector.dat            ; Obsolete
j_probes.dat                    ; J port voltage and current probes processed data.
j_probes_raw.dat                ; J port voltage and current probes raw data.
j_vprobes.dat                   ; J port voltage probe data.
j_vprobes_fast.dat              ; Obsolete   
j_vprobes_fast_processed.dat    ; Obsolete
j_vprobes_raw.dat               ; J port voltate probe raw data
lh_scope.dat                    ; Lower Hybrid system 
loading_all_antennas.dat        ; Antenna loadings from DC2 measurement
old_antenna_update.dat          ; Antenna raw data
pci_calsig.dat                  ; Phase contrast imaging signal
pci_sig.dat                     ; Phasse contrast imaging signals
plasma_confinement.dat          ; Plasma confinement information
plasma_global_parameters.dat    ; Plasma global parameters
plasma_global_parameters_java.dat  ; JAVA scope for plasma parameters  
plasma_java.dat                 ; JAVA scope for plasma parameters  
plasma_overview.dat             ; Plasma overview
plasma_overview_linux.dat       ; Plasma overview
plasma_overview_new.dat         ; Plasma overview 
plasma_overview_sjw-1.dat       ; Plasma overview (by Steve Wukitch)
plasma_overview_sjw.dat         ; Plasma overview (by Steve Wukitch)
plasma_performance.dat          ; plasma performance
pppl_phase_calibration.dat      ; Obsolete
rf_dc_overview.dat              ; Obsolete
rfload.dat                      ; Obsolete
rf_monitor.dat                  ; RF monitor raw data (all transmitters) 
rf_monitor_fmit1.dat            ; RF monitor raw data (FMIT #1)
rf_monitor_fmit2.dat            ; RF monitor raw data (FMIT #2)
rf_monitor_fmit3.dat            ; RF monitor raw data (FMIT #3)
rf_monitor_fmit4.dat            ; RF monitor raw data (FMIT #4)
rf_power.dat                    ; RF net power for all antennas
rf_power_neutral_pressure.dat   ; RF net power for all antennas plus neutral pressure
rf_tube_press.dat               ; Obsolete. Replaced by vac ion traces in rf_monitor*.dat
shot_summary.dat                ; Plasma shot summary.
sum_antennas.dat                ; Antenna net power and Vmax from DC2. 
survey.dat                      ; Plasma parameters
time_histories_rot.dat          ; Plasma parameters, including toroidal rotation data
vmax_all_antennas.dat           ; Antenna Vmax from DC2 data.
vmax_and_gaspressure.dat        ; Antenna Vmax from DC2 data, plus gas pressures
waveform_test.dat               ; Waveform demands and actual outputs (all transmitters)
xmtr1_raw.dat                   ; FMIT #1 control signals (gate, demand, error, etc)   
xmtr2_raw.dat                   ; FMIT #2 control signals (gate, demand, error, etc)   
xmtr3_raw.dat                   ; FMIT #3 control signals (gate, demand, error, etc)   
xmtr4_raw.dat                   ; FMIT #4 control signals (gate, demand, error, etc)   
xmtrs_faults.dat                ; Transmitter fault indicators power room (analog output)

back to list of scopes || back to table of contents

back to table of contents