OLD BROWSER WARNING: This page is being displayed incorrectly because it has been designed for standards-compliant web browsers. I highly suggest you download Mozilla FireFox, a fast, modern web browser with many advanced features, including pop-up ad blocking.

Will Robertson

PhD

I'm trying to build a table that floats on magnets.

Research proposal
Long time ago, now...
Progress report

Research is continuing...

Conference presentations and papers

I've presented at a couple of conferences over the last few years. Here are copies of the slides I've used and the papers I've presented.

InterMag 2005 in Nagoya, Japan

A Multipole Array Magnetic Spring (pdf)
Will Robertson, Ben Cazzolato, Anthony Zander
Slides

Active 2006 in Adelaide, Australia

Zero-stiffness magnetic springs for active vibration isolation (pdf)
Will Robertson, Rohin Wood, Ben Cazzolato, Anthony Zander
Slides

ICSV14 (2007) in Cairns, Australia

Nonlinear control of a one axis magnetic spring (pdf)
Will Robertson, Ben Cazzolato, Anthony Zander
Slides

Halbach array movies

I made these movies in 2003 for a seminar. The individual frames are magnetostatic solutions from ANSYS, which were all glued together in Quicktime Pro to create the movies.

halbach-build.mov
This movie shows the focussing effect of the magnetic field of a Halbach array as the magnets are moved together
halbach-rotate.mov
This movie shows how the magnetic field of an array changes as the magnetisation directions of the individual magnets are rotated.

Ansys

Turns out I don't like Ansys very much. So there's not much here. I'm much more into Mathematica these days.

There are very few Ansys examples dealing with electromagnetics. I had some initial difficulty working them out so I’ve put some examples up here.

2d-magnet.mac
The flux lines of permanent magnet in 2D.
2d-electromagnet.mac
The same as above but for an electromagnet.
3d-magnet.mac
Permanent magnet in 3D. Points of interest: must use free meshing (not mapped); uses annotation to display the magnetisation direction; plots the magnetic flux with vectors (field lines aren't available in 3D).

I had to modify ansys-mod.el to get it to work with a new version of emacs. I didn’t know what I was doing, but it works passably now. See the result here. Unfortunately the original file is no longer being maintained. If you come across a copy that works correctly, I'd love to hear it.

LaTeX

Writings

Square cells: an array cooking lesson
(The PracTeX Journal 2005 no. 2)

Advanced font features with XeTeX: the fontspec package (pdf)
(TUGboat 2005 vol. 26, no. 3)

An exploration of the Latin Modern fonts
(The PracTeX Journal 2006 no. 1)

Productivity with macros and packages
(The PracTeX Journal 2006 no. 3)

Code

The mlist package

A package for LaTeX for typesetting mathematical lists (vectors, matrices, etc.) using logical naming and indexing, instead of hard-coded symbols that would be otherwise tricky or tedious to change at a later time.

Get mlist from CTAN

The fontspec package

This is a package for XeTeX that provides an interface to Mac OS X fonts in LaTeX with all access to advanced AAT and OpenType features.

Get fontspec from CTAN

The unicode-math package

This is an experimental package providing for Unicode maths glyphs in XeTeX+LaTeX (previously known as xmaths). Snapshots of development are available from the XeTeX SVN repository; nothing is stable or complete enough for CTAN yet.

Get unicode-math from the XeTeX SVN repository

The active-conf class

This is a class for LaTeX for typesetting articles for the ACTIVE conference on noise and vibration control. It may be considered an "official" version since it was written for the 2006 conference in Adelaide. The variant active-conf-2006 is to be used specifically; the generic version has hooks to provide for future years.

Get active-conf from CTAN

Get active-conf-2006 from CTAN

The ICSV class

This is a quick alteration of active-conf for appropriate layout of articles for the Internation Conference on Sound and Vibration. Note that it is better than the (very ugly) class recommended by the organisers of ICSV13.

Get the ICSV class from CTAN

The JASA class

I did have an ad hoc class for typesetting JASA articles, but there is now an official class, written by Arthur Ogawa of REVTeX fame. Suffice it to say that my class is not longer required.

Matlab

Here are some MATLAB scripts and functions that I often use:

fig.m
I use this function as a replacement for the figure command. Rather than defining figures with numbers, this lets you do it with strings. Very convenient. Syntax: handle = fig('figure string');
savefig.m
I use this function to save a copy of the current figure in both EPS and FIG (native MATLAB) formats. Syntax: savefig( <filename> , <font name> , <font size> , <width> , <height> ); The fontname may be one of the Base14 Postscript fonts, such as 'Times-Roman', 'Helvetica', or 'Palatino'. I use the remaining three arguments in order to create the EPS exactly as I like with the correct fontsize and dimensions for the document I'm placing it in. Default values are: (always requires a filename without an extension) savefig( <filename> , 'Palatino' , 10 , 11 , 8 );
labelplot.m
This function is for automatically labelling plots based on their 'Tag'. What? Well, it's easiest to show with an example: figure; hold on; x = 1:10; plot(x,x,'Tag','Positive slope'); plot(x,-x,'Tag',Negative slope'); labelplot; The advantage to this technique is that plots may be created with a variety of m-files, and a custom legend need not be written to label each data set. That is, the above is equivalent to the following: plot(x,x); plot(x,-x); legend('Positive slope','Negative slope') See the legend help pages for more details. Updated 2007/12.
legendshrink.m
This function shrinks the extent of the lines used in legends, which do not scale with figure size by default. This means by default that small figures (say, 7cm wide, which isn't that small) have ridiculously large label lines. This function fixes that to an extent, but I haven't worked out how to shrink the size of the legend box as well. Use it like this: figure; hold on plot(1:10,'.-'); plot(10:-1:1,'o-'); legend({'one' 'two'},'location','north') legendshrink See the help for more details.
colourplot.m
This function changes the colours of the data lines in the current figure to unique colours of the rainbow. It could probably be made more robust and to have more features, but it does what I need for now.
timstamp.m
This simple function outputs a pretty-printed timestamp with, optionally, an appended string. Example: timestamp('wspr') produces ___________________________ 09-May-2007 18:28:02 ~ wspr