40m QIL Cryo_Lab CTN SUS_Lab TCS_Lab OMC_Lab CRIME_Lab FEA ENG_Labs OptContFac Mariner WBEEShop
  SUS Lab eLog, Page 36 of 37  Not logged in ELOG logo
ID Date Author Type Categoryup Subject
  643   Sun Jun 23 14:39:28 2013 Giorgos MamakoukasDailyProgressSUSFinished 6 PCB Boards

On Friday, we tried to get zero offset for the voltage output of the strain gauge, by replacing our fixed-value R2 resistors with adjustable ones. At R2=22.74kΩ, we achieved a 0.01mV offset, which we would then correct with our DC motors.

We measured the voltage required to drive our motors at a slow, steady pace; 5V seemed sufficient. To get that voltage, we used the voltage divider method. The internal resistance of the motors were roughly 100Ω, so we added a 500Ω resistor in series to get close to our desired Vout, using our 15V source. Our motors were "broken" and would however move at all times once connected and pause only when the control buttons were pressed; we ordered new ones.

Since we successfully built one circuit for one strain gauge and DC motor, we wired the rest 5 PCB boards. At the end of the day, we were happy to look at the following:


  645   Mon Jun 24 23:32:04 2013 Giorgos MamakoukasDailyProgressSUSPower PCB boards and design of the box

We wanted to wire up different PCB boards aiming to power our PCB boards that are connected to the strain gauge and amplify the signal. We looked at the schematics and picked resistors' values so that we have negative (using LM2991 adjustable regulator) and positive (with a LM2941 adjustable regulator) voltage inputs of -15V and +15V respectively. We built six of these PCB boards, missing only very few components, which we ordered.

Then, we looked at the box in which we will place the PCB "amplifying" boards. We also figured out how to drill holes on the cover of the box to get all the wires through. Our final measurements are shown below:Photo0446.jpg

  648   Tue Jun 25 22:26:03 2013 GiorgosDailyProgressSUSRare Panel Design and Mechanical Set-up

Today, we started designing the box that will hold all of our circuits.

Particularly, we used a software (Front Panel Designer) to design where to drill the holes on the front and rare panels of our box for our wires to pass through; we will order the designs from a company. Our designs had to be very precise for the plugs and connectors on the PCB boards to fit through the holes.


In the afternoon, we drilled holes on the bottom panel of our box for the "amplifying" PCB boards. At the end of the day, we were almost ready with the amplifying boards. Now, we need to order more spacers and screw the PCB boards on the box.


  650   Wed Jun 26 22:58:44 2013 GiorgosDailyProgressSUSHall-effect sensors and transfer functions

Today, I wired up the power PCB boards for the DC motors and then talked and read about Hall-effect sensors. The box that will hold the sensors is too small, so we spent some time figuring a way to combine two boxes into one to fit all of our components. Then, we spent a lot of time talking about transfer functions, Laplace transforms and how they help us disentangle linear, time-dependent equations from their time-relationship and yield convenient equations that describe the behavior of a system at different frequencies.

We want to apply a high-pass filter to "remove" the low-frequency noise from the signal in our Hall-effect sensors and achieve low frequency seismic noise isolation. So, we used the following high-pass filter circuit and found its transfer function Vout/Vin. It is my homework to find the values for R1, R2, R3, C1, and C2, so that our transfer function gives large output at high frequencies (above 50Hz) and small output at low ones (below 5Hz).


  652   Fri Jun 28 00:30:46 2013 GiorgosDailyProgressSUSHall-effect sensors circuits

Today, we analyzed the transfer function of our circuit:


 Specifically, Vout/Vin= -((R_1 〖+R〗_2)R_3)/(R_1 R_2 ) {((s+Z_o)P_1)/((s+P_o)(s+P_1))} where Z0, P0, and Pare important parameteres of our transfer function.

Were we to graph it against frequency:Transfer_function_of_Hall-effect_sensors_circuits.png

So, we determined the values of R1, R2, R3, C1, and C2 so that Zo occurs at 0.1Hz (close to the estimated natural frequency of the levitated plate), Po=50Hz and P1=200Hz Specifically, R1=R313kΩ, R2=1.5kΩ, C1=2.2μF, and C2=61nF. We did not have a 61nF capacitor, so instead we used a 47nF one (slightly changing our P1 point).

Our Hall-effect sensors give a constant 2.5V when no magnetic field is present. Therefore, we need to include an offset of 2.5V. We will achieve that with a voltage divider with R1=13kΩ, R2=4.3kΩ, R3=R4=2.2kΩ.

In the afternoon, I wired up 7 PCB boards for the Hall-effect sensors circuits. These include the -2.5 offset and the high-pass filter. We used the spectrum analyser to see whether the transfer function of our circuits are as predicted; the experimental and theoretical data agreed.

  656   Fri Jun 28 16:54:02 2013 GiorgosDailyProgressSUSLow-pass filtering, Current booster, and Design of the Box Panels

Today, we determined our low-pas filter circuits and its components. To achieve our cut-off filtering, we need to change the values of our zeroes and poles of the transfer function. Specifically, we saw that only if P1<Z0<P0 can we achieve low-pass filtering.Low-pass_filter_for_dewhitening.png

It is essential that are cut-off frequencies are very close to the values we used in our high-pass circuits, so that we achieve perfect de-whitening, especially for the two lowest cut-off values; we computed the values of our resistors and capacitors that yield such transfer functions and started wiring our 7 actuator PCB boards. However, the low-pass circuits cannot source a lot of current and so our PCB boards, apart from the low-pass filter, also include a current-booster circuit, which consists of the high-noise current buffer that is in a feedback loop with a low-noise op-amp. Later, we designed the box panels where we will place our 7 PCB actuator boards, along with 3 DC control boards, and 3 power boards.

  660   Wed Jul 3 00:01:51 2013 GiorgosDailyProgressSUSDAC and ADC controllers

On Monday and Tuesday, we talked about the ADC & DAC controller and the time signal input from the function generator.

We also designed the boxes, drilled the holes and wired up both the ADC and DAC controller.

In the meantime, we received the components that were missing from the power boards (precise resistors). We started wiring more power boards and we will finish them tomorrow morning.

  661   Wed Jul 3 22:56:53 2013 GiorgosDailyProgressSUSADC/DAC controllers, Power Boards

Today, we completed the power boards and tested to make sure they work. We had a problem with the LM2991 negative voltage regulator; its tab at the back is connected to the input voltage and should therefore not touch our panel, because it is in this way grounded. We will fix that problem by placing spacors below the power boards.

We also built the connections for our DAC and ADC controllers and designed our DAC & ADC panels so that we can order a company to drill holes for our wires.

To this point, we have to finish the circuits for some of our Hall-effect sensors boards (our missing components arrived) and test all of our circuits to make sure they work as desired. After that, we will move to the second stage of this summer research, taking measurements, debugging problems, improving computer processing, and ultimately successfully isolating the levitated plate up to very low frequencies (starting from 5Hz and hopefully going down to 0.01Hz)

  662   Tue Jul 9 01:24:56 2013 GiorgosSummarySUSHE sensors test, arrangement, and offset & Strain Gauge arrangement

Today, we first talked about the connection of the HE conditioning boards to the HE sensors and the arrangement of the wires on the connector. There are 7 HE sensors named after their position (e.g. W=West). Starting from the right, the first four pins denote the sensors that lie above the plate.The bottom row is the bottom part of the connector to the HE signal. X denotes the pins not used and the last three pin places on the left are for the sensors imbedded in the coils, which are though--for the time being--not used.




We tested the transfer functions (TF) of our 7 HE sensor conditioning boards. Six of them had identical TF, same as the ones we expected and one of them (S1) had a similar TF, but a totally different phase. We extracted them to a floppy disk and inserted them to a computer, where we created files that contain the data of the TF plots. Tomorrow, we need to plot the data in Mathematica. We also measured the offset for our Hall-effect sensors on the oscilloscope. We used Vin=0 to measure the actual offset and then adjust R2 to null it. Here are the recorded offsets:

AC1:2.37V, AC2: not working, AC3:2.34V, S1:2.5V, S2:2.5V, N:2.5V, W:2.46V.

We also looked at the connector for the Strain Gauge (S.G.) and DC motors (M). We have six connections for each. We named our S.G. boards, depending on the location of the corresponding--in our setup--strain gauge. IMoving from the right to the left, the strain gauge sensors correspond to: TS (top south), TW, TE, BN (bottom north), BS, BE. We found a problem with the BE op-amp; it must be broken. We tested the output signal of some boards and we did not find a steady DC amplified voltage we expected; we thought of introducing a low-pass filter (since DC signals have ideally a 0Hz frequency)before the signal reaches the strain gauge op-amp.


Tomorrow, we will measured the TF of the Strain Gauge boards to see what is wrong. We will also insert a low-pass filter with a cut-off frequency around 10Hz.

  663   Tue Jul 9 18:13:29 2013 GiorgosSummarySUSStrain Gauge Voltage Offset

Strain Gauge Boards

Our conditioning boards did not have a low-pass filter. That is a problem, since these circuits were designed to amplify a DC voltage offset, but the op-amp cannot provide that gain at very high frequencies. We introduced a capacitor to create a low-pass filter and made sure the cut-off frequency of our setup was lower than the one of the op-amp: f= 1/(RC*2pi). For our R=24kΩ, we chose C=0.1μF. So, we built a low-pass filter for our 6 strain gauge boards and then measured the DC voltage offset. Our digital voltage meter can read up to 200mV, so we adjusted the one adjustable resistor to get the offset voltage as low as a few mV. As we slightly pussed on the strain gauge sensors, the voltage increased indicating that our circuits work fine.

Panels for Coil Actuators & Hall-Effect sensors' power boards

At the end of the day, I marked the holes for 5 power boards on the panels of our coil (3 power boards) and Hall-effect sensors' box (2 power boards).

  665   Thu Jul 11 01:01:30 2013 GiorgosSummarySUSLED connections, Power Boards, and DC magnetic field boards

LED connections

We use LEDs to indicate whether our power boards work. For one power board, we need two LEDs, one for the positive and one for the negative voltage. For boxes that contain more than one power board, we will still use onlyy one pair of LEDs, since we only care to test whether our power supply works. We have six LEDs and we will use 2 for the HE sensors board, 2 for the coil-actuation box and 2 for the strain gauge box. Today, we made the connections for our LEDs; on our power boards, there are two letters: A and K. A is for the signal wires (positive/red or negative/black) and K is for the ground wires.

Power Boards

The missing components for our power boards have arrived, so we finished our power board circuits, drilled the holes on the box panels and screwed the power boards. We also created more power lines, such that we have enough for the 7 coil-actuator and 3 DC offset boards, as well as the HE sensor boards. We prepared power lines for all HE sensor boards and 6 coil-actuator ones, but ran out of components; we still need to create power lines for one coil-actuator board and 3 DC offset ones.

DC magnetic field offset

For the boards that will provide tuning of the magnetic field, we only use a current booster circuit (configuration with a current buffer in a feedback loop with a low-noise op-amp). We built all three boards.






  669   Tue Jul 16 00:15:08 2013 GiorgosDailyProgressSUSDigital Voltage Meters, Labeling and Rest

Digital Voltage Meters

We need 5V to operate our digital voltage meters that indicate the offset from the strain gauge circuit in our DC motors configuration. One of the two power boards in the DC motors box had an unused 4-pin holder (+24V, GND, GND, -24V) and we will use that. To find the internal resistance of the digital voltage meters, we read the manual and the specifics of it: for 5V, the voltage meters source 400μA.


So, the internal resistance of the digital meters is R=V/I=12.5kΩ.We have two boards with 3 digital voltage meters each. They are all connected to the power supply and are in series with R1, whose value we want to determine so that we source enough current for all the resistors. We have six parallel voltage meters of 12.5kΩ each, so Reff=1/ (6/12.5kΩ)=2.08kΩ.

Each voltage meter needs 400mA, so we need in total I=2.4mA. That means that the resistance of the total system Rtot (=Reff+R1) needs to be 24V/2.4mA=10kΩ. Then, R1=7.92kΩ (we used 7.5kΩ). The meters worked fine.


We labeled all the wires in our DC Motors Box:

  • the wires connecting the 6 PCB boards to the fit-through board; either Motor_orientation (such as TS-top south), or Gauge_orientation.
  • the wires connecting the push-buttons to the PCB boards, receiving strain gauge output and sending the signal


After completing the power wires for the DC Motors Box, we were almost finished; we only need very few components for the testing of the LEDs.

We also started fitting everything in our HE sensors box. We drilled holes/cut parts of our panels so that the PCB boards fit and then screwed the panels together.


Tomorrow, we need to do the following:

  • make the labels for the HE sensors and Coils' boxes
  • finish fit-through boards for HE & coils' boxes
  • cut 4 panels for coils, so that the PCB boards can fit inside the box
  671   Tue Jul 16 22:37:22 2013 GiorgosDailyProgressSUSHE & Coils Boxes: Labeling and Power Lines for Fit-through Boards

Progress on HE & Coil Boxes

I used the labeling device to print labels for the HE sensors and coils' boxes. We use medium font and line spacing of 1.

I screwed the boards and panels together and prepared power lines for the coils' box; we have 10 boards (7 for the actuator coils and 3 for the DC magnetic field offset), each with an input and output, so I made 20 power lines. For the connections on the fit-through board, we follow the same order as the physical setup:


 We use A's for the input and B's for the output signal on the fit-through board. 


Tomorrow, we will test our HE and Coils' boxes and see whether they work. We are still waiting for some front panels and some missing components to complete our circuits (such asholders and resistors for the coils' boards)

  672   Fri Jul 19 16:14:06 2013 Edward Taylor & Nic SmithDailyProgressSUSSolid works Model

The solid works model for the experimental apparatus has been set up and the parts have been ordered. Today, I cleaned the cryostat with solvents and delivered the clamp and insulator schematics to the machine specialist in Church.

  673   Mon Jul 22 18:26:30 2013 BenDailyProgressSUSWiring Shadow Sensor Emitter

 Today I figured out the proper orientation for the SME2470 Emitter and the SMD2420 Detector which we will be using for the shadow sensor. A very simple diagram is shown in the first attachment (a photo from my notebook). My system is to always use a black wire for the ground side, which is in both cases the side with a flat (not half-moon-shaped) conductor. The emitter gets a white wire on the curved side, while the detector will get a red wire (so we can tell the two apart). Note that the wiring can be confusing because the Cathode and Anode side of the components are opposite for each, but the fact that they are placed in the reverse orientation un-does this.

The second attachments shows the emitter with two wires soldered onto it. This proved to be difficult. As noted in my notebook, the soldering iron can only be set to 500° F for 5 seconds before the part is ruined (according to its documentation), so making these connections strong took work. The final attachment shows the emitter mounted in the part I designed to hold it. (See my 7/16/13 ELOG).

  676   Wed Jul 24 01:00:36 2013 GiorgosDailyProgressSUSFinished 1st Stage - Installation of MatLab

Today, the front panels for the HE and Coils Board arrived. I spent the day preparing the last power lines for the DC coil boards, marking and drilling holes, cutting ribon wires for the ADC and DAC conversion, grouping the wires together using cable ties, testing the boards. We are officially finished with the first stage. Tomorrow, we will measure the transfer function of the system to start creating the feedback filter with the computer.

I also installed MatLab. At the beginning, the setup.exe file could not load the installation. Apparently, there was a problem with the saving directory, because it included non-English(Greek) characters. I saved the data in a folder inside the C disk: "C:\MatLab" to make it work.  Tomorrow, I will create the Bode Plots and use MatLab to simulate the behavior of our system.

  680   Wed Jul 24 22:10:08 2013 GiorgosDailyProgressSUSAdjusting DC motors resistors, Bode Plots in Matlab and Test Components

DC motors - Tuning Adjustable Resistors

I first tuned the resistors of our DC motors circuits, such that the voltage meters read close to 0V when the strain gauge sensors are not stretched by the plate. A zero voltage reading would later help us know when the plate is at equilibrium. The equilibrium is unstable and so the plate moves either up or down. I tuned the resistors for the bottom sensors while the plate was stuck against the top ones and vice versa. The BE adjustable resistor (R2 in the picture) was very sensitive and acting strangely; the voltage reading would change as long as the screw driver touched the resistor, making it impossible to know whether we are close to 0V while adjusting. The resistances also drifted away from their values throughout the day. Whereas the initial offset was set within 5-10mV, at the end of the day it had grown much larger as is evident in the following image:IMG_4502.JPG     IMG_4507.JPG

Bode Plots in Matlab

I developed a code in Matlab to read .dat files and create Body plots. For future reference, Matlab files should not include a "." in their name, since Matlab recognized whatever comes after the period as the extension of the file. Following is the code for the phase plot and the results:Low_Pass.pdf

>> cd('C:\Users\Γιώργος\Dropbox\maglev\SURF\progress_report\Transfer Functios of Coils')
>> load 008ASC.dat
>> G = semilogx(X008ASC(:,1), X008ASC(:,2))
>> axis ([0.5 1000 -160 0])
colorss = {[0.5  0.5  0.5],
           [0.8  0.3  0.7],
           [0.0  0.0  1.0],
           [0.97  0.1  0.0],
           [0.1  0.9  1.0],
           [0.2  0.8  0.1],
           [0.4  0.4  1.0]};
for k = 1:length(G)
    set(G(k), 'Color', colorss{k});
grid minor
%axis tight
hXLabel = xlabel('Frequency [Hz]');
hYLabel = ylabel('Phase [degrees]');
title('Phase of the Low-Pass filter', 'FontWeight', 'bold', 'FontSize',12)
set( gca                       , ...
    'FontName'   , 'Times'     , ...
    'FontSize'   , 15          );
set([hXLabel, hYLabel], ...
    'FontName'   , 'Times',...
    'FontSize'   , 15          );
set([Legend, gca]             , ...
    'FontSize'   , 15          );
%set( hTitle                    , ...
%    'FontSize'   , 12          , ...
%    'FontWeight' , 'bold'      );

set(gca, ...
  'Box'         , 'on'     , ...
  'TickDir'     , 'in'     , ...
  'TickLength'  , [.02 .0] , ...
  'XMinorTick'  , 'on'      , ...
  'YMinorTick'  , 'on'      , ...
  'YGrid'       , 'on'      , ...
  'XColor'      , .1*[.3 .3 .3], ...
  'YColor'      , .1*[.3 .3 .3], ...
  'FontSize'    , 25, ...
  'LineWidth'   , 1.5        );

 HE boards and coils test

I also measured the output of the HE sensors to see whether there were working fine:

AC1=105mv, AC2=128mV, AC3=137mV, S1=1.73V, S2=82mV, N=16mV, W=7mV. In the same way, I measured the resistances of the coils (since we have not yet created a signal with the computer) and they worked fine, too (same values as before, slightly higher resistances, possibly because of the long ribon wires attached).

Tomorrow, I will start working on Simulink and learn how to use the computer to provide the feedback filter.

  682   Thu Jul 25 22:51:39 2013 GiorgosDailyProgressSUSComputer Feedback (Integrator & Damping), Motors' Speed and ADC bits/voltage conversion

Computer Feedback Filter

I installed Linux on my office computer today, because Windows was sometimes crashing. Then, using secure shell (SSH) I remotely accessed the supercomputer that receives the input signal from the HE sensors. With the Foton software, I created a preliminary feedback filter with an integrator and a damping factor. Assuming a normal response function R(s)=1/[m(s2+ωn2-γs)] for our plate, the transfer function is very large near the resonance frequency (where s2 and ωn2 cancel) and at small frequencies (where only the resonance frequency term, presumably small, remains). Therefore, we need our feedback filter to add to the response function of the plate; the integrator --proportional to s--adds a large term near small frequencies, and the damping factor--proportional to s--adds another factor near the resonance frequency. I designed the filter so that the cut-off frequencies occur at roughly 2, 5, 20, and 200Hz. Below are the results. WIth the correct gain factor, we have a unity gain from 2Hz to 5Hz.



DC Motors

We tried to test the motors, but they did not move as fast. Apparently, we had include a 3.6kΩ resistor in series with them, using a 15V source; no wonder they did not work. We replaced the 3.6kΩ resistors with 1kΩ ones and achieved a better movement.

HE sensors output

We compared the bits of the input signal digitally diagnosed with the output signal of the HE signal measured manually with a voltage meter to check whether the correspondence made any sense. I plotted the pair of data ( {millivolts, bits}, ..) and found the best fit for the data; the slope was 1.64 (1mV corresponds to 1.64bits). For our ADC converters, 20V correspond to 216 or (65536) bits, so 1mV corresponds roughly to 3.3bits. However, the bits correspond to the voltage difference, so the actual readings for the bits should be half (1mV=215/20=1.638bits). Our conversion works. 


I started using Simulink and looked at Rana's examples. I will keep building our setup with Simulink to ultimately simulate the behavior of our plate.

  684   Mon Jul 29 14:22:04 2013 GiorgosDailyProgressSUSADC & DAC bits/volts conversion, HE output and saturation of Transfer Functions


The bits/volts conversion factor is different for our ADC and DAC. Specifically, I measured the voltage output of the ADC and DAC and, by comparing it to the input and output readings--in bits-- of the computer respectively, I found this relationship to be 1.64bit/mV for the ADC and 3.3bit/mV for the DAC.

HE sensors output range

We also measured the output of the HE to fluctuate at most 100mV in response to the movement of the plate. Given that, a small displacement of the plate that produces roughly 30mV would bring approximately a 18bit change in the ADC output. With the already inherent noise and fluctuation of the bits reading, it is therefore difficult to detect small movements of the plate; it is necessary to boost the HE output after subtracting the HE sensors offset.
The HE sensors signal goes a voltage offset and then a high-pass filter. We will adjust our resistors' values only in the first state, so that the voltage offset more accurately corrects the inherent offset of the sensors and amplifies the output even more. Currently, as described in my first research report, the gain was 1; we will now aim for a gain of 50. I calculated the expression for Vout in the voltage offset configuration to be:

Vout=-(R4/R3)Vin + 5* [R2(R4+R3)/R3(R1+R2)].

A gain of 50 would also increase the inherent offset of the sensors, which would now be about (50*2.5)=12.5V; we also need to fix that. I calculated that if we use R4=50*R3 and R1=19.4*R2, we can get the desired gain, while also appropriately correcting for the offset.

Transfer functions saturation

We measured the transfer function of our damping transfer function: (s+Zo)/[(s+Po)(s+P1)] where Zo<Po<P1. We noticed that the voltage source setting of the spectrum analyzer affected our transfer functions. I extracted and plotted the transfer functions for three different voltage sources: 10mV, 100mV and 500mV which are shown in this order below. We are unsure as to why that happens.




  685   Tue Jul 30 09:20:18 2013 GiorgosDailyProgressSUSHE output & DAC output/voltage follower

HE output

We tested the HE output and found that all the outputs were fine, except for the S1 board which saturated. This board was also the one with the odd phase function (when measured earlier in the summer). We realized that some components may have been disconnected (not enough soldering) and we easily fixed the problem.

DAC output - Voltage Follower

The output of DAC was lower than the one we expect. We measured the DAC output in V for different feedback filters and compared it to the value we would expect by converting the digital feedback of our computer from bits to volts. However, when the ribon wires connecting the DAC and the actuation conditioning boards (coils) is disconnected, we get sensible readings; the ribon seems to limit our output. It might be the case that the internal resistance of the DAC is large and that causes a huge voltage drop. We will then use a voltage follower configuration with an OP27, so that the current is not sourced from the DAC. We introduced a voltage follower in the 10 actuation boards (7 coils & 3 DC magnetic offset). Following, you can see the voltage follower configuration.


Simulink Model

I also created a draft model to model our system, using Simulink. The matrix that determines the coupling of the 6 degrees of freedom still remains to be calculated.


  686   Tue Jul 30 11:14:16 2013 KojiDailyProgressSUSHE output & DAC output/voltage follower

How much was the input impedance of the DAC conditioning board before putting the high-impedance voltage follower?

  688   Thu Aug 1 11:43:15 2013 GiorgosDailyProgressSUSSensing Matrix and Calibration

Sensing Matrix
I calculated the entries of our sensing matrix S x = y, where S is the 6x6 sensing matrix, x is 6x1 vector signal from six degrees of freedom and y is the 6x1 signal sensed by six HE sensors. Haixing told me to ignore the 7th sensor (N), because in practice we could levitate the system using only the rest six. The sensing matrix contains many unknown coefficients, which we will find by calibrating the system and adjusting the values. I will post the matrix, once we know the entries are correct.


Coil - Force

We want to get an idea of how much force is applied on the plate for different signals from the digital filter. So, we measure the DC motors output (in mV) and we also have previous measurements of how the DC motors voltage correlates to the force applied. Therefore, knowing how the digital filter output corresponds to the DC motors voltage offset, we can infer the relationship between digital signal output and force on the plate. We first worked with the first top coils: AC1, AC2, and AC3. While changing the output for a single coil, we measured the response of all the motors to consider cross-coupling effects. While measuring the response of the bottom motors, we have to make sure there is always contact betweem them and the plate; otherwise, the data will not show how the force on the motors changes.    

Calibration of Coils - Force
    AC1     AC2     AC3  
V/mV B1 B2 B3 B1 B2 B3 B1 B2 B3
0 -276 170 246 -268 -44 285 -268 -32 259
-9 -263 -28 281 -265 -38 256 -265 -27 249
-7 -262 -32 281 -265 -40 259 -267 -28 251
-5 -263 -36 283 -265 -41 260 -267 -29 253
-3 -264 -38 283 -266 -43 263 -266 -28 254
-1 -267 -41 283 -267 -44 264 -266 -30 258
1 -268 -44 285 -268 -45 266 -266 -30 260
3 -271 -46 286 -268 -46 268 -265 -29 263
5 -272 -49 287 -270 -47 271 -266 -31 265
7 -274 -52 288 -272 -45 276 -265 -31 268
9 -274 -54 287 -272 -44 277 -264 -34 275












When we apply feedback, current runs through the coils and creates/adjust the ambient magnetic field. However, the magnetic force the HE sensors feel from the levitated plate is so coupled with the one created by the coils. We also want to know how sensitive the sensors are to our coils, when we apply feedback and so we again took measurements.

Calibration of Coils - Sensors
    AC1     AC2     AC3  
Source/Bits AC1 AC2 AC3 AC1 AC2 AC3 AC1 AC2 AC3
0 3400 -2800 2050 3400 -2820 2040 3440 -2790 2040
-9 -680 -2810 2050 3430 -7140 2050 3430 -2790 -2040
-7 240 -2810 2050 3440 -6170 2090 3440 -2790 -1140
-5 1160 -2800 2050 3430 -5220 2075 3430 -2790 -220
-3 2075 -2810 2050 3430 -4250 2060 3410 -2820 690
-1 2980 -2800 2050 3440 -3300 2050 3430 -2810 1600
1 3880 -2810 2040 3440 -2350 2060 3410 -2820 2510
3 4780 -2840 2040 3430 -1400 2060 3410 -2800 3420
5 5680 -2840 2040 3420 -450 2050 3420 -2800 4310
7 6590 -2840 2050 3400 520 2050 3420 -2820 5230
9 7480 -2840 2040 3420 1490 2040 3410 -2800 6130












We also want to know how sensitive the sensors are to a vertical displacement of the plate:

HE output - plate displacement
  Inches/bits AC1 AC2 AC3
Group1 0'' 3290 -3110 1975
  0.3'' 3510 -2830 2190
Group2 0'' 3280 -3110 1940
  0.3'' 3540 -2850 2160

In all our measurements, we noticed some hysteresis so we had to follow the same order when recording the data. In case of a mistake, we had to repeat from the beginning.

  689   Thu Aug 1 11:50:02 2013 KojiDailyProgressSUSHE output & DAC output/voltage follower


How much was the input impedance of the DAC conditioning board before putting the high-impedance voltage follower?

 It was 14.3K om, but as you pointed out, the main issue is that we connect the positive output to the GND. Now, we have a differential amplifier, so everything works fine.

  692   Sat Aug 3 14:50:51 2013 GiorgosDailyProgressSUSCoupling from coil's signal

Coupling from coils' signal

On Thursday, I measured the HE sensors sensitivity to the magnetic field provided by the feedback coils. Unfortunately, I discovered that there was significant coupling; the sensors feel equally the plate's displacement and the magnetic field from the sensors. This effect changes our feedback loop, which now looks as drawn below. (the line between GP and GC boxes is mistakenly showing up after converting from



I calculated the output of the plate based on this configuration and found that .

If our GY is big, I can rewrite this equation as x= GpF, also assuming that the transfer function of the plant Gp is very small (as desired). In this case, our system will not be stable, because no feedback is essentially used. To reduce the coupling from the coils' signal, we changed the arrangement of the plant. To this point, the ACs feedback coils were at the same place as the ACs sensors. So, we decided to switch the DC and AC coils (not physically) and provide the feedback from the DCs coils instead, which lie further away from the sensors. In this way, we hope that the sensors would not feel as strong of a field from the AC coils as before. Our DC actuation boards did not have the transfer function (low-pass filter) that we included in the AC actuation boards, so we had to make adjustments in the digital feedback. We added dewhitening for the DC coils (now used for feedback) and whitening for the AC coils (now used for DC magnetic offset).





  693   Sun Aug 4 22:44:36 2013 GiorgosSummarySUSVolts to N conversion factors & Correction of Transfer Function

As I mentioned in my previous post, the signal from the plate's displacement is strongly coupled with the coil's signal, so that our system is unstable. In fact, I calculated the transfer function of this "feedback loop" of the coils and found it to be about 2mV per V, roughly the magnitude of the feedback signal of the plate. We now use DCs coils to provide the feedback loop and want to find the conversion between volts applied from the DC coils and the force and only care about certain readings.


In the above figure, I represent the plate with the circle. Sensors and coils are in black and lie above the plate, while motors are in purple and lie below. As you can see in our arrangement, the DC coils are above the DC motors, so it is safe to ignore readings from the strain gauges that are not at or neighboring with the coils. Then, I calculated the conversion factors between applied V in the coils and applied force on the plate.

If prior post I showed the measurements between Volts in coils and measured mV for the strain gauges [mV=Volts*slope (mV/V)]
I also posted the measurements between weight/force and measured mV for the strain gauges [mV=Force*slope(mV/N)]
I found how volts in the coils correlate to applied force by combinging the two equations:

F=Volts*slope(mV/V) / slope (mV/N) = Volts * slope (N/V)

To give an example, I look at the AC1 coil. I have measured the response of the B1, B2, and B3 strain gauges. I also know how B1 and B2 strain gauges responded to the weights I put on AC1 (here, I ignore the 3rd reading from B3 strain gauge, because it is further away as seen in the above figure). Thus, I will get two readings (one through each, B1 and B2, motor) for how AC1 coil signal correlates to force applied by the AC1 coil. These numbers should in principle agree, or at least be close. Here are my findings:

ΔN (by DC3 coil) = 0.0239 (N/V) * V (by DC3 coil) ; measured through B2
ΔN (by AC3 coil) = 0.00055 (N/V) * V (by AC3 coil) ; measured through B2
ΔN (by AC3 coil) = 0.0023   (N/V) * V (by AC3 coil) ; measured through B3
ΔN (by DC2 coil) = 0.0023 (N/V) * V (by DC2 coil) ; measured through B3
ΔN (by AC2 coil) = 0.0022   (N/V) * V (by AC2 coil) ; measured through B1
ΔN (by AC2 coil) = 0.00198 (N/V) * V (by AC2 coil) ; measured through B3
ΔN (by DC1 coil) = 0.0016   (N/V) * V (by DC1 coil) ; measured through B1
ΔN (by AC1 coil) = 0.00078 (N/V) * V (by AC1 coil) ; measured through B1
ΔN (by AC1 coil) = 0.00363 (N/V) * V (by AC1 coil) ; measured through B2

The coefficient for DC3 seems not to fit the norm shown by the rest data.

Correction of coupling signal

I thought that, knowing the signal from the coils, we could feed its opposite to the sensors to cancel its effect. In practice, we would our feedback loop to look as the picture on the left part in the figure below. I can rearrange it to show it more clearly that the Gc and -Gc would simply add and cancel. We can do this cancellation within our digital feedback loop. Specifically, we can add the term -GcGS to cancel the coupling signal of the coils. Haixing agreed and we will try this tomorrow.




  697   Tue Aug 6 09:27:43 2013 GiorgosDailyProgressSUSNegation of Cross Coupling with Feedback

Negation of Cross Coupling with Feedback

In my previous post, I commented on how it is possible to negate the coupling from the coils' signal. This can adequately happen only if we know the amount of coupling. To measure this quantitatively, Haixing removed the plate from our setup, so that any signal reported by the sensors would be a product of the magnetic field created directly from the coils; this is what we want to subtract. Also, Haixing believes this technique is sufficient enough so that we no longer need to move the coils further from the sensors. That being said, we switched back to the original behavior of the ACs (for feedback) and DCs coils (DC magnetic offset).

In previous measurements, I calculated the correlation between the coils voltage and the sensors voltage for the AC1 coil and sensor (that are next to each other; we ignore rest of cross-coupling between coils-sensors) and found it to be around -11.28 dB for our DC (f about 0Hz) signal. We also measured the transfer function between the AC1 coil and sensor and found it to be around -11.133 at low frequency; the data are in close agreement. Then, we introduced a factor -GCGs in our feedback (Gc was measured to be about 400mV/V and Gs is known from the whitening filter) and measured the transfer function again. The magnitude dropped to -40dB(shown below).


At low frequencies, we need this value to drop even more, to approximately -70dB since the transfer function of the plate is around 2mV/V or -54dB. Further, we only cancelled the coils' coupling in the low frequency range and we should modify our feedback so that we improve the system's behavior over all frequency range.

Cross Coupling between Coils-Sensors

Here I summarize my findings for the calculated cross-coupling: for AC1 (coil-sensor), I found -11.28dB, for AC2 -10.808dB,and for AC3 -11.258dB.

Simulink Model

For some unknown reason, the Simulink Model for the feedback needs at least 2 filter modules and one subsystem in order to work; otherwise it fails to operate. In order to work, we also need to include a time delay so that the coil's output is not at once fed into the feedback. I worked and finished a generic Simulink model for all six degrees of freedom, however all the coefficients are unknown. Even so, I will post it along with some description of what each components does.

  702   Thu Aug 8 11:32:00 2013 GiorgosSummarySUSCompensation for Cross-Coupling and Vector Fitting

Cross-Coupling Measurements

Before measurig the cross-coupling effects, we put the plate back to our setup. Since the plate has magnets attached to it, we expect that it will affect the magnetic field produced by the coils. Therefore, a more realistic measurement of the cross-coupling effect that will resemble the real-time feedback control should take place in the presence of the plate. Of course, we want the plate to be still during the measurements, so that our Hall-effect sensors are not affected by their displacement (if the plate is still, it will only affect the reading of the sensors at 0 frequency, but we are looking at the transfer function over the whole frequency range). To fix the plate, we pressed all motors against it, ignoring any small fluctuations.


In this configuration, we used Diagnostic Tools software to measure the transfer function beween ACs coils' output and ACs sensors' reading. Then, we used Vector Fitting to obtain a fitting transfer function with zeros, poles, and gain that resembles the behavior of the cross-coupling. In few words, Vector Fitting uses a guess function σ(s)=, whose zeros are the poles of the desired function

. Finding the zeros of σ(s) equals to finding the poles of the function and vector fitting manages to find a linear least-squares fit model by trying values for the poles and solving for the linear coefficients. More information can be found at http://www.sintef.no/Projectweb/VECTFIT/Algorithm/.

We developed a code for the vector fitting and found the best model with 20 pairs of poles (40 poles, since they are complex conjugates) and about 10 iterations. At the end, we applied compensation feedback given by the modelling transfer function so as to cancel the cross-coupling effects.Below, one can see the cross-coupling measurements before (left figure) and after (right figure) applying the modelled function. We modelled the coupling transfer functions only for ACi_Sensor - ACi_coil (i=1,2,3) pairs, because cross-coupling between e.g. AC1 coil and AC2 sensor was very small (as is evident in the figures). Using this technique, we minimized coupling effects from roughly -10dB to roughly -70dB.





  703   Fri Aug 9 08:43:37 2013 GiorgosSummarySUSSimulink Model (1 DOF) - Step Response

After minimizing the coupling effects, I created a 1 DOF Simulink Model to test whether the setup is stable in the vertical direction. Below appears the model. We have not included yet Eddy Current Damping (simulations showed no great changes).


We create noise with a pulse generator and recorded the step response of the system with the oscilloscope, which appears at Output (1). 


The behavior of the system appears stable and so we tried to levitate the plate starting from AC3. The plate would jiggle back and forth back after some time the DAC would saturate. Going back to the Simulink Model, the relationship between saturation limits and noise amplitude seem to determine the stability of the system as well. Looking at other factors that might affect our system, we consider the following:

  • The force of the gain directly depends on the location of the plate. The coils are not strong enough and the magnetic field created is non-uniform around the plate. Prior to this summer, Haixing had acquired measurements for the correlation between the plate's distance from the coils and the force exerted on it and we intend to use this information in our model.
  • ADC and DAC background noise may limit the sensitivity of our system
  • We need a more precise measurement of the system's rigidity. For a linear degree of freedom, such as the vertical direction, the rigidity can be measured as F/distance. Haixing's measuremts of the force exerted as a function of the distance from the plate will be used.
  705   Mon Aug 12 07:59:58 2013 GiorgosSummarySUSDAC and ADC saturation issues

Instability due to Saturation Issues

Using the Simulink model, I realized that saturation of the ADC & DAC prevents us from acquiring stability, since the signal quickly builds up after a couple of turns within the feedback loop. Explicitly, if the gain of the digital feedback filter is large, either the output signal from the DAC saturates or a big feedback signal is produced, which then -together with the plate- saturates the ADC. To prevent saturation of the DAC, I suggested implementing our gain outside the feedback filter, at the coil signal conditioning stage. Similarly, to avoid saturation of the ADC, the gain of the sensors signal conditioning stage is to be altered. At the end, we are looking for a stable system with balanced signal that effects a maximum vertical displacement of the plate around 0.1mm.

Gains of the feedback loop

There are three different gains in our feedback loop. The gain of the digital feedback filter, the gain of the sensors signal conditioning (also constrained by saturation limits around 12V because of the OP27), and the gain of the coils signal conditioning which acts twice; through the coupling and the plate. I calculated the desired gain for each part, such that the plate will ideally not move beyond 0.1mm. To achieve this, we introduced a gain of 25 in the coils conditioning board (changed resistors to R6=51kΩ and R5=2kΩ) which -along with the 100nF capacitor used- effects a new pole around 30Hz (1/RC=200 rad/s). Modeling the new configuration for very low-noise power(0.003Nm/s), we get stable behavior.



Including bigger noise (0.03Nm/s), however, destabilizes the system once more.


  709   Tue Aug 13 21:09:44 2013 GiorgosSummarySUSOvercoming Saturation: Feedback through DC Coils and Mu-metal

In my previous post, I explained the saturation issues of the ADC and DAC we faced. To prevent saturation of the DAC, we will implement our gain after the feedback filter -we already introduced a gain of 25 at the coil's conditioning stage-and use a gain of approximately 1/25 for the digital filter. In this way, even if the ADC saturates at 10V, the feedback filter will send maximum 400mV (10V/25) to the DAC. However, the possibility that the ADC saturates still exists.

To make matters worse, we cannot even exploit the 10V saturation range of our ADC. The reason is that the undesired cross-coupling between coils and sensors is almost as large as the signal produced by the plate. Although vector fitting was very successful at cancelling cross-coupling, this method can only be implemented inside the digital control, after the ADC. That been said, if we are to stay within the 10V range, only 5V can come from the plate; the rest 5V will inevitably come from cross-coupling. Practically, this means that the signal from the plate is successfully sensed and transferred to the digital control for very small displacements, beyond which the ADC saturates and feedback control is impossible. We use two ways to tackle this obstacle:

  1. We revert back to using DC coils for feedback control. They are located further away from the AC sensors and cross-coupling is smaller, such that a larger proportion of the ADC' 10V range can be dedicated to the signal from the plate.
  2. We use mu-metal to cover all sensors and coils. We hope that mu metal's high permeability will shield off the magnetic field that comes from cross-coupling. It should also leave the magnetic field changes produced by the plate's movement almost intact, since the plate's magnets are located directly below and above the sensors, the only place we did not cover with mu metal.

We measured cross-coupling effects before and after the use of mu metal and noticed a drastic reduction in cross-coupling (about a factor of 3). The figures below show the measured transfer function before and after the use of mu-metal.


One of the things to also note is that the bottom strain gauge motors readings are damaged and no longer worth looking at to determine when the plate is near equilibrium. This is probably the result of excessive weight on them from the plate. The top strain gauge motors seem to still be working fine.

  710   Tue Aug 13 22:49:45 2013 GiorgosDailyProgressSUSModel of 3 DoF

DCs/ACs Matrices

In the previous post ("Feedback through DC coils"), I described the reasons for using DC coils for our feedback control. This trick significantly decreases cross-coupling before the feedback control and so allows us to afford a larger signal from the plate, without the ADC ever saturating. However, it comes with a cost; the feedback force is not applied directly at our sensors. Specifically, the DC coils greatly affect two of the sensors surrounding it -that are equally far. That creates the need to develop a matrix to calculate how the force from each DC coil affects each AC sensor and, further, how each sensor should "distribute" its signal to different DC coils in the feedback control. Using the geometry of our plate and the arrangement of the coils and sensors, I calculated these two matrices, which should also be inverse of each other. Here is what I found:

To measure how much of the coils' signal each sensor reads: [A][DC1;DC2;DC3]=[AC1;AC2;AC3], where A=[2 -1 2; 2 2 -1; -1 2 2]. Similarly, to convert each sensor's signal to the feedback channels of the DC coils, [B][AC1;AC2;AC3]=[DC1;DC2;DC3], where B=[2 2 -1; -1 2 2;2 -1 2].

Simulink for 3 DoF

Then, I created a Simulink model for three degrees of freedom (sensors: AC1-3, coils: DC1-3). The effect of noise was catastrophical for the stability of the model. So, I first tried to replicate 1 DoF stability, by "nulling" DC2 and DC3 coils. Below, one can see the Bode Plots of the model (resonance around 2Hz) and the displacement of the plate in 1DoF (by AC1).



Attached is also the ADC input, which clearly shows how the signal is well below saturation. Three different colous represent the signal from the three sensors AC1, AC2, AC3 (they are all affected by DC1 coil).

  711   Wed Aug 14 00:05:00 2013 GiorgosDailyProgressSUS3DoF Stability in Simulink

Today, I achieved stability in Simulink for 3DoF, including noise to the hall-effect sensors and the coil's conditioning. We had measured the noise at the ADC to be max 20mV, but that value is amplified by the gain (91) of the HE conditioning boards. So, I included noise of 20/91 mV. I attached the final model and the script.   Maglev_3DoF_Giorgos.slx.

I also used vector fitting to find the transfer functions of the coupling between DC1 coil to all sensors. An example of the successful resemblance is shown in the figures below (DC1 coil to W sensor). The figure on the left shows the modelling of the coupling and the deviation between the fitting and the data. The right figure shows a body plot of the modelled and measured transfer function.


I also calculated the amount of cross-coupling and noise inside our system in order to find the allowed gain to avoid any saturation.

Since the OP27 in the coil conditioning board also saturates at 10V, the DAC should provide no more than 400mV; beyond that point, the gain of 25 we introduced in the coils would saturate the OP27.

We had also found the cross coupling to be around 0.01 for two nearby sensors and 0.001 for the third one (in the 3DoF case we ignore all others). If our DAC never exceeds 400mV, cross coupling would get at most 0.0084V (8.4mV) at the ADC.
Similarly, if the coils get at most 10V, the maximum force they provide is 0.02N, which translates to 0.0113m (1.13cm) maximum displacement of the plate. Such displacement would produce 0.1989V at the ADC. Adding noise to these, our signal is only 0.2273V, well below the saturation of the ADC.
Inside the feedback filter, the cross coupling is cancelled down to -60dB (0.001V/V), so only 0.0012V remains, given a 400mV DAC output). The signal is thus 0.2201V. To avoid saturation of the DAC, we can afford a maximum gain of 1.8.

  713   Thu Aug 15 23:19:36 2013 haixingNoise HuntingSUSpower spectrum and coherence of three hall effect sensors

The hall effect sensor is quite noisy, and I am trying to find where the noise comes from. The first I tried today is to measure the power spectrum and coherence among three hall effect sensors (in the vertical direction). Here is the result:

10.png(the unit for the power spectrum density is in digital volt per root hertz.)

I do not quite understand why there is almost no coherence (apart from the 60Hz power line), even though the power spectra are almost identical among these sensors.

Can someone shed some light where the issue is? Is the noise non-stationary or what?

--------Another measurement with fewer average---------------------


It seems that when the number of average is small, the coherence is large, an indication of non-stationary?

  714   Fri Aug 16 18:37:56 2013 GiorgosDailyProgressSUSBringing Sensors closer to Plate, Correcting Offset and Gain

Yesterday, we tried levitating for one degree of freedom; we failed. The plate would move back and forth the equilibrium, but not settle there for more than a second. Haixing suggested moving the sensors closer to the plate, so that our signal is larger. This way, we can be less sensitivity to noise. However, that entails that we recalibrate the HE offset, the cross coupling measurement and the gains of our feedback loop.

So, today we moved the AC1, AC2, AC3 sensors closer to the plate and removed the DC1, DC2, DC3 sensors from our setup, since they are of no use. We also replaced the 91 gain of the HE sensors with a gain of 11 (11k and 1k are the resistors we used).
Then, we measured the response of the HE sensors and found that the signal produced changes by about 120mV for each mm; that is about a factor of 6 better than before.

Since the sensors are now at a different location, they have a different voltage offset; this should be larger since they are now closer to the levitated plate. To measure the new offset, we moved the motors such that the equilibrium would lie between the top and bottom motors. Then, we measured the offset reading of the sensors when the plate was stuck at the top and at the bottom and averaged the two. We used our measurements and, by taking into account the offset we had already applied in the first place, we replaced the resistors in our circuit such that the offset of the AC1-3 sensors would be no greater than 50mV. For AC1: R1=6.2K, R2=5.1K, for AC2: R1=13K, R2=11K, for AC3: R1=20K, R2=16K.

  715   Sat Aug 17 18:51:39 2013 GiorgosDailyProgressSUSNoise Reduction when sensors are closer


We moved all 7 HE sensors closer to the plate. The AC sensors were burnt out and we replaced them with the DC ones, which we had removed yesterday because they were of no use.
The sensors in their current position feel different magnetic field and their offset is also different (around 100mV, compared to 2.4V before). The smaller value of the voltage offset sounds counterintuitive--because the sensors are now closer and the field around them larger--but it only indicates the direction of the field. The HE sensors read 2.5 at the presence of no field; far away their offset was 2.4V, so they only produced 100mV (2.5V - 2.4V) signal. Now that they are closer, their offset is huge (roughly 2.5V). We are worried they might actually saturate, once the plate starts moving.

For future reference, here are the values of the resistors we use:

AC1: R1= 110K, R2=2.2K

AC2: R1=130K, R2=2.2K

AC3: R1=62K, R2=1.2K

S1: R1=7.5K, R2=2.2K

S2: R1=20K, R2=7.5K

N: R1=20K, R2=6.2K

E: R1=4.3K, R2=1.5K

Noise reduction and debated Cross-Croupling

The new gain for all sensors conditioning board is now 11. The noise would therefore be amplified less (by a factor of 9). Indeed, the improve noise effects were apparent, since signal fluctuated only a couple of mV (see Figure below).


The cross coupling between sensors would now also be smaller (200mV/V for feedback through AC coils would now become almost 20mV; 20mV/V for feedback through DC coils would now be about 2mV/V).
We will measure cross coupling and try to levitate tomorrow for all six degrees of freedom

  724   Fri Sep 6 15:47:40 2013 haixingSummarySUSachieving stable levitation of the plate

We levitate the plate by controlling three vertical degrees of freedom---one translational, and two tilts. Right now even without applying controls to the horizontal direction, the system is quite stable.

Here we describe the major steps for achieving levitation:

1. Move the plate close to the equilibrium point by using the DC motors and strain gauge.

We started off from the point where the magnetic force is stronger than the gravity force. Basically, the plate is touching tips of DC motors mounted on the top fixed platform. By using the strain gauge attached to the tips, we can tell how how far we are away from the equilibrium point where the strain gauges are not stretched. We slowly actuate the motors to push the plate close to the equilibrium point.

2. Lock one degree of freedom

We started from some generic PID controller. After many random trials, we end up with a controller that was barely doing the work, and the system was marginally stable. We then measured the closed-loop transfer function of the system and use simulink to model this one degree of freedom: model_1DOF_v0.slx and model_1DOF_script_v0.m

After tuning various parameters, we got a reasonable match between the model and the measurement. In particular, the parameters we found go as follows:

mass    = 0.5 kg        % mass
K          = -180 N/m   % negative spring constant
Vm       = 250 V/m    % hall effect sensitivity
Gby      = -27dB       % the bypass gain from the coil to the hall effect sensor
Gcomp = -39.5dB    % the residue bypass gain after compensation

To obtain a better controller, we tried to use "sltunable" class in the matlab, in particular using the functions "systune" and "looptune" by specifing the target phase and gain margin. Somehow, it did not produce the desired result. We found out that the calculated phase margin and gain margin are not correct (we will explain this in more details with another elog entry). We then used "nyquist" function to design the feedback loop and we used the following parameters for the controller, which gives a reasonable phase and gain margins.

DGain = -4*pi*13;                 % the constant gain
Dzs     = [-2*pi*0.5; -2*pi*3]; % zeros for the controller
Dps     = [0;-2*pi*13];            % poles for the controller

After applying this new controller, we got a quite stable levitation. We redid the open-loop transfer function measurement. The agreement between the model and the system is shown by the figure below (the blue line is the model and the green line is the measurement data):


The difference around 4Hz and 20Hz could arise from a simplified model for the compensation (assuming a constant compensation gain, and the reality is more complicated), and we need to refine the model.

2. Repeat the same process and tune the feedback controllers for the other two degrees of freedom.

3. Slowly ramp up the gain for the other two controllers and finally levitate all three DOFs.

We found that if we engage the controllers abruptly, the system will rapidly destabilized. Instead, we had to slowly ramp up the gain of the controllers so as to approach the final stable state softly.

The figure below shows the signal from all seven sensors (one redundant in the horizontal direction).


We can see the resonant frequency is around 2Hz (to be confirmed by future TF measurements), which is quite high. After fully characterizing the system, we will need to tune the DC magnet force with DC control coils to make the equilibrium point closer to the force maximum, where the rigidity is low.


Here is the link to the video of the levitating plate:  link


  725   Fri Sep 6 17:07:39 2013 haixingSummarySUSissues to be investigated

Since the plate is levitating, we are now in the position for real work. Here are the two major issues to investigate in the plan.

1. TF of the plate and cross coupling among different degrees of freedom (important in order to optimize the control servo)

We will measure various transfer functions to characterize the plate TF and cross couplings. We will build six degrees of freedom simulink model based on Georgios's work of three DOFs, and try to make a match between the model and the system.

2. Noise budget (to pin down the major noise source)

(a) sensing and actuation noise

We will calibrate the noise from the hall effect sensor. If it is confirmed to be the major noise, we can switch to the optical lever sensing scheme as planned. The coil is quite weak, in terms of voltage to force conversion factor, and it is 5mN/V. The thermal noise of the coil may not be important (to be confirmed with more rigorous analysis).

(c) acoustic noise

Right now the system is exposed in air, and it is anticipated that the acoustic noise is quite significant. To mitigate this noise, we can use a bell jar to cover it which can give a reasonable level of noise isolation.


(b) seismic noise

We will make a correlation measurement between the sensor output and the seismometer (or accelerometer) to see where the seismic noise dominates.

(d) ambient magnetic field noise

We will use two low-noise honeywell hall effect sensors [link] to measure the ambient magnetic field. To get a better sensitivity, we will use differential measurement by shielding one (together with instrumentation amplifier for amplifying the readout).

(e) thermal noise of the magnet

The major noise source comes from the random jitering of the magnetic moments due to thermal excitation. We can find the literature on how to analyze this kind of noise.

(f) long-term drift

We know little about the long stability of the magnets and also how the temperature drift affects the magnets. This needs to be investigated.


  727   Sun Sep 8 21:51:14 2013 haixingMiscSUSissue of matlab function "margin()" with an unstable plant

I used the matlab function margin() to plot the phase and gain margins for the open-loop transfer function for maglev. It seems to give an incorrect answer. Here is what I got:


As the gain margin is negative, this indicates that the system (plant + controller) is unstable. However, this is not the case.

I used the matlab function nyquist() to make a Nyquist plot, and this is what I got:

The contour circles -1 counter-clock wise once, and this satisfies the Nyquist stability criterion, as the plant (in my case the plate can be modeled as a mechanical object attached to a negative spring) has one pole on the right-half complex plane. Basically, my plant together with the controller in indeed stable, which is also the reality.

Therefore, this seems to indicate that nyquist(), instead of margin() is the right way to examine the stability in the case with an unstable plant in matlab.

  153   Thu Jul 8 16:41:29 2010 JanMiscSeismometryRanger Pics

This Ranger is now lying in pieces in West Bridge:



First we removed the lid. You can see some isolation cylinder around the central metal 
part. This cylinder can be taken out of the dark metal enclosure together with the interior 
of the Ranger.


Magnets are fastened all around the isolation cylinder. One of the magnets was missing 
(purposefully?). The magnets are oriented such that a repelling force is formed between 
these magnets and the suspended mass. The purpose of the magnets is to decrease the 
resonance frequency of the suspended mass.


Next, we opened the bottom of the cylinder. You can now see the suspended mass. 
On some of the following pictures you can also find a copper ring (flexure) that was 
partially screwed to the mass and partially to the cylinder. Another flexure ring is 
screwed to the top of the test mass. I guess that the rings are used to fix the horizontal 
position of the mass without producing a significant force in vertical direction. The 
bottom part also has the calibration coil.


Desoldering the wires from the calibration coil, we could completely remove the mass 
from the isolation cylinder. We then found how the mass is suspended, the readout 
coil, etc.:

DSC02509.JPG DSC02513.JPG

  154   Sat Jul 17 13:41:45 2010 JanMiscSeismometryRanger

Just wanted to mention that the Ranger is reassembled. It was straight-forward except for the fact that the Ranger did not work when we put the pieces together the first time. The last (important) screws that you turn fasten the copper rings to the mass (at bottom and top). We observed a nice oscillation of the mass around equilibrium, but only before the very last screw was fixed. Since the copper rings are for horizontal alignment of the mass, I guess what happens is that the mass drifts a little towards the walls of the Ranger while turning the screws. Eventually the mass touches the walls. You can fix this problem since the two copper rings are not perfectly identical in shape, and/or they are not perfectly circular. So I just changed the orientation of one copper ring and the mass kept oscillating nicely when all screws were fastened.

  157   Tue Jul 27 00:22:04 2010 JanMiscSeismometryRanger

The Ranger is in West Bridge again. This time we will keep it as long as it takes to add capacitive sensors to it.

  158   Mon Aug 23 22:07:39 2010 JenneThings to BuySeismometryBoxes for Seismometer Breakout Boxes

In an effort to (1) train Jan and Sanjit to use the elog and (2) actually write down some useful info, I'm going to put some highly useful info into the elog.  We'll see what happens after that....

The deal:  we have a Trillium, an STS-2, a GS-13 and the Ranger Seismometers, and we want to make nifty breakout boxes for each of them.  These aren't meant to be sophisticated, they'll just be converter boxes from the many-pin milspec connectors that each of the seismometers has to several BNCs so that we can read out the signals.  These will also give us the potential to add active control for things like the mass positioning at some later time.  For now however, the basics only.

I suggest buying several boxes which are like Pomona Boxes, but cheaper.  Digi-Key has them.  I don't know how to link to my search results, so I'll list off the filters I applied / searched for in the Digi-Key catalog:

Hammond Manufacturing, Boxes, Series=1550 (we don't have to go for this series of boxes, but it seems sensible and middle-of-the-line), unpainted, watertight.

Then we have a handy-dandy list of possible sizes of nice little boxes. 

The final criteria, which Sanjit is working on, is how big the boxes need to be.  Sanjit is taking a look at the pinouts for each seismometer and determining how many BNC connectors we could possibly need for each breakout box.  Jan's guess is 8, plus power.  So we need a box big enough to comfortably fit that many connectors. 

  163   Tue Dec 21 06:58:09 2010 ranaThings to BuySeismometryTrillium Noise Plot

Nanometrics has a couple of seismometers which are cheaper than the T240 which may be of interest to us: better than the Guralp CMG-40T, but cheaper and easier to use than the STS-2.


  169   Wed Jan 19 17:13:11 2011 JanComputingSeismometryFirst steps towards full NN Wiener-filter simulator

I was putting some things together today to program the first lines of a 2D-NN-Wiener-filter simulation. 2D is ok since it is for aLIGO where the focus lies on surface displacement. Wiener filter is ok (instead of adaptive) since I don't want to get slowed down by the usual finding-the-minimum-of-cost-function-and-staying-there problem. We know how to deal with it in principle, one just needs to program a few more things than I need for a Wiener filter.

My first results are based on a simplified version of surface fields. I assume that all waves have the same seismic speed. It is easy to add more complexity to the simulation, but I want to understand filtering simple fields first. I am using the LMS version of Wiener filtering based on estimated correlations.


The seismic field is constructed from a number of plane waves. Again, one day I will see what happens in the case of spherical waves, but let's forget it about it for now. I calculate the seismic field as a function of time, calculate the NN of a test mass, position a few seismometers on the surface, add Gaussian noise to all seismometer data and test mass displacement, and then do the Wiener filtering to estimate NN based on seismic data. A snapshot of the seismic field after one second is shown in the contour plot.


Seismometers are placed randomly around the test mass at (0,0) except for one seismometer that is always located at the origin. This seismometer plays a special role since it is in principle sufficient to use data from this seismometer alone to estimate NN (as explained in P0900113). The plot above shows coherence between seismometer data and test-mass displacement estimated from the simulated time series.


The seismometers measure displacement with SNR~10. This is why the seismometer data looks almost harmonic in the time series (green curve). The fact that any of the seismometer signal is harmonic is a consequence of the seismic waves all having the same speed. An arbitrary sum of these waves produce harmonic displacement at any point of the surface (although with varying amplitude and phase). The figure shows that the Wiener filter is doing a good job. The question is if we can do any better. The answer is 'yes' depending on the insturmental noise of the seismometers.


So what do I mean? Isn't the Wiener filter always the optimal filter? No, it is not. It is the optimal filter only if you have/know nothing else but the seismometer data and the test-mass displacement. The title of the last plot shows two numbers. These are related to coherence via 1/(1/coh^2-1). So the higher the number, the higher the coherence. The first number is calculated fromthe coherence of the estimated NN displacement of the test mass and the true NN displacement. Since there is other stuff shaking the mirror, I can only know in simulations what the true NN is. The second number is calculated from coherence between the seismometer at the origin and true NN. It is higher! This means that the one seismometer at the origin is doing better than the Wiener filter using data from the entire array. How can this be? This can be since the two numbers are not derived from coherence between total test-mass displacement and seismometer data, but only between the NN displacement and seismometer data. Even though this can only be done in simulation, it means that even in reality you should only use the one seismometer at the origin. This strategy is based on our a priori knowledge about how NN is generated by seismic fields. Now I am simulating a rather simple seismic field. So it still needs to be checked if this conclusion is true for more realistic seismic fields.

But even in this simulated case, the Wiener filter performs better if you simulate a shitty seismometer (e.g. SNR~2 instead of 10). I guess this is the case because averaging over many instrumental noise realizations (from many seismometers) gives you more advantage than the ability to produce the NN signal from seismometer data.

  170   Thu Jan 20 16:05:14 2011 JanComputingSeismometryWiener v. seismometer 0

So I was curious about comparing the performance of the array-based NN Wiener filter versus the single seismometer filter (the seismometer that sits at the test mass). I considered two different instrumental scenarios (seismometers have SNR 10 or SNR 1), and two different seismic scenarios (seismic field does or does not contain high-wavenumber waves, i.e. speed = 100m/s). Remember that this is a 2D simulation, so you can only distinguish between the various modes by their speeds. The simulated field always contains Rayleigh waves (i.e. waves with c=200m/s), and body waves (c=600m/s and higher).

There are 4 combinations of instrumental and seismic scenarios. I already found yesterday that the array Wiener filter is better when seismometers are bad. Here are two plots, left figure without high-k waves, right figure with high-k waves, for the SNR 1 case:


'gamma' is the coherence between the NN and either the Wiener-filtered data or data from seismometer 0. There is not much of a difference between the two figures, so mode content does not play a very important role here. Now the same figures for seismometers with SNR 10:


Here, the single seismometer filter is much better. A value of 10 in the plots mean that the filter gets about 95% of NN power correctly. A value of 100 means that it gets about 99.5% correctly. For the high SNR case, the single seismometer filter is not so much better as the Wiener filter when the seismic field contains high-k waves. I am not sure why this is the case.

The next steps are
A) Simulate spherical waves
B) Simulate wavelets with plane wavefronts (requires implementation of FFT and multi-component FIR filter)
C) Simulate wavelets with spherical wavefronts

Other goals of this simulation are
A) Test PCA
B) Compare filter performance with quality of spatial spectra (i.e. we want to know if the array needs to be able to measure good spatial spectra in order to do good NN filtering)

  171   Fri Jan 21 12:43:17 2011 JanComputingSeismometrycleaned up code and new results

It turns out that I had to do some clean-up of my NN code:

1) The SNRs were wrong. The problem is that after summing all kinds of seismic waves and modes, the total field should have a certain spectral density, which is specified by the user. Now the code works and the seismic field has the correct spectral density no matter how you construct it.

2) I started with a pretty unrealistic scenario. The noise on the test mass, and by this I mean everything but the NN, was too strong. Since this is a simulation of NN subtraction, we should rather assume that NN is much stronger than anything else.

3) I filtered out the wrong kind of NN. I am now projecting NN onto the direction of the arm, and then I let the filter try to subtract it. It turns out, and it is fairly easy to prove this with paper and pencil, that a single seismometer CANNOT never ever be used to subtract NN. This is because of a phase-offset between the seismic displacement at the origin and NN at the origin. It is easy to show that the single-seismometer method only works for the vertical NN or underground for body waves.


This plot is just the prove for the phase-offset between horizontal NN and gnd displacement at origin. The offset is depends on the wave content of the seismic field:


The S0 points in the  following plot are now obsolete. As you can see, the Wiener filter performs excellently now because of the high NN/rest ratio of TM dispalcement. The numbers in the titel now tell you how much NN power is subtracted. So a '1' is pretty nice...


One question is why the filter performance varies from simulation to simulation. Can't we guarantee that the filter always works? Yes we can. One just needs to understand that the plot shows the subtraction efficiency. Now it can happen that a seismic field does not produce much NN, and then we don't need to subtract much. Let's check if the filter performance somehow correlates with NN amplitude:


As you can see, it seems like most of the performance variation can be explained by a changing amplitude of the NN itself. The filter cannot subtract much only in cases when you don't really need to subtract. And it subtracts nicely when NN is strong.

  172   Sat Jan 22 20:19:51 2011 JanComputingSeismometrySpatial spectra

All right. The next problem I wanted to look at was if the ability of the seismic array to produce spatial spectra is somehow correlated with its NN subtraction performance. Now whatever the result is, its implications are very important. Array design is usually done to maximize its accuracy to produce spatial spectra. So the general question is what our guidelines are going to be? Information theory or good spatial spectra? I was always advertizing the information theory approach, but it is scary if you think about it, because the array is theoretically not good for anything useful to seismology, but it may still somehow provide the information that we need for our purposes.

Ok, who wins? Again, the current state of the simulation is to produce plane waves all at the same frequency, but with varying speeds. The challenge is really the mode variation (i.e. varying speeds) and not so much varying frequencies. You can always switch to fft methods as soon as you inject waves at a variety of frequencies. Also, I am simulating arrays of 20 seismometers that are randomly located (within a 30m*30m area) including one seismometer that is always at the origin. One of my next steps will be to study the importance of array design. So here is how well these arrays can do in terms of measuring spatial spectra:


The circles indicate seismic speeds of {100,250,500,1000}m/s and the white dots the injected waves (representing two modes, one at 200m/s, the other at 600m/s). The results are not good at all (as bad as the maps from the geophone array that we had at LLO). It is not really surprising that the results are bad, since seismometer locations are random, but I did not expect that they would be so pathetic. Now, what about NN subtraction performance?


 The numbers indicate the count of simulation runs. The two spatial spectra above have indices 3 (left figure) and 4 (right figure). So you see that everything is fine with NN subtraction, and that spatial spectra can still be really bad. This is great news since we are now deep in information theory. We should not get to excited at this point since we still need to make the simulation more realistic, but I think that we have produced a first powerful clue that the strategy to monitor seismic sources instead of the seismic field may actually work.

  173   Sun Jan 23 09:03:43 2011 JanComputingSeismometryphase offset NN<->xi

I just want to catch up on my conclusion that a single seismometer cannot be used to do the filtering of horizontal NN at the surface. The reason is that there is 90° phase delay of NN compared to ground displacement at the test mass. The first reaction to this shoulb be, "Why the hack phase delay? Wouldn't gravity perturbations become important before the seismic field reaches the TM?". The answer is surprising, but it is "No". The way NN builds up from plane waves does not show anything like phase advance. Then you may say that whatever is true for plane waves must be true for any other field since you can always expand your field into plane waves. This however is not true for reasons I am going to explain in a later post. All right, but to say that seismic dispalcement is 90° ahead of NN really depends on which directoin of NN you look at. The interferometer arm has a direcion e_x. Now the plane seismic wave is propagating along e_k. Now depending on e_k, you may get an additional "-" sign between seismic dispalcement and NN in the direction of e_x. This is the real show killer. If there was a universal 90° between seismic displacement and NN, then we could use a single seismometer to subtract NN. We would just take its data from 90° into the past. But now the problem is that we would need to look either 90° into the past or future depending on propagation direction of the seismic wave. And here two plots of a single-wave simulation. The first plots with -pi/2<angle(e_x,e_k)<pi/2, the second with pi/2<angle(e_x,e_k)<3*pi/2:



  174   Sun Jan 23 10:27:07 2011 JanComputingSeismometryspiral v. random

A spiral shape is a very good choice for array configurations to measure spatial spectra. It produces small aliasing. How important is array configuration for NN subtraction? Again: plane waves, wave speeds {100,200,600}m/s, 2D, SNR~10. The array response looks like Stonehenge:


A spiral array is doing a fairly good job to measure spatial spectra:


The injected waves are now represented by dots with radii proportional to the wave amplitudes (there is always a total of 12 waves, so some dots are not large enough to be seen). The spatial spectra are calculated from covariance matrices, so theory goes that spatial spectra get better using matched-filtering methods (another thing to look at next week...).

Now the comparison between NN subtraction using 20 seismometers, 19 of which randomly placed, one at the origin, and NN subtraction using 20 seismometers in a spiral:


A little surprising to me is that the NN subtraction performance is not substantially better using a spiral configuration of seismometers. The subtraction results show less variation, but this could simply be because the random configuration is changing between simulation runs. So the result is that we don't need to worry much about array configuration. At least when all waves have the same frequency. We need to look at this again when we start injecting wavelets with more complicated spectra. Then it is more challenging to ensure that we obtain information at all wavelengths. The next question is how much NN subtracion depends on the number of seismometers.

  175   Sun Jan 23 12:59:18 2011 JanComputingSeismometryLess seismometers, less subtraction?

Considering equal areas covered by seismic arrays, the number of seismometers relates to the density of seismometers and therefore to the amount of aliasing when measuring spatial spectra. In the following, I considered four cases:

1) 10 seismometers randomly placed (as usual, one of them always at the origin)
2) 10 seismometers in a spiral winding one time around the origin
3) The same number winding two times around the origin (in which case the array does not really look like a spiral anymore):

4) And since isotropy issues start to get important, the forth case is a circular array with one of the 10 seismometers at the origin, the others evenly spaced on the circle. 

Just as a reminder, there was not much of a difference in NN subtraction performance when comparing spiral v. random array in case of 20 seismometers. Now we can check if this is still the case for a smaller number of seismometers, and what the difference is between 10 seismometers and 20 seismometers. Initially we were flirting with the idea to use a single seismometer for NN subtraction, which does not work (for horiz NN from surface fields), but maybe we can do it with a few seismometers around the test mass instead of 20 covering a large area. Let's check.

Here are the four performance graphs for the four cases (in the order given above):



All in all, the subtraction still works very well. We only need to subtract say 90% of the NN, but we still see average subtractions of more than 99%. That's great, but I expect these numbers to drop quite a bit once we add spherical waves and wavelets to the field. Although all arrays perform pretty well, the twice-winding spiral seems to be the best choice. Intuitively this makes a lot of sense. NN drops with 1/r^3 as a function of distance r to the TM, and so you want to gather information more accurately from regions very close to the TM, which leads you to the idea to increase seismometer density close to the TM. I am not sure though if this explanation is the correct one.


ELOG V3.1.3-