function plotSweep(opt,sweepDOF,probeNames,range,driveNames,dofNames,mDrv) % Plot sweep result (displacement vs probe output) % opt: Optickle model % sweepDOF: DOF to sweep (e.g. 'BS', 'MICH') % probeNames: list of probe names to plot % range: sweep -range to range [m] % driveNames: list of drives of interest % dofNames: list of DOFs of interest % mDrv: conversion matrix for drives to DOFs % You can omit dofNames, driveNames, mDrv if sweepDOF is one of a drive name. % % Example usage: plotSweep(opt,'MICH',{'REFL_I','REFL_Q'},lambda,{'ITMX','ITMY','BS','PRM'},{'MICH','PRCL'},[1,-1,0,0;0,0,0,1]) % plotSweep(opt,'PRM',{'REFL_I','REFL_Q'},lambda) % % Author: Yuta Michimura pos = zeros(opt.Ndrive, 1001); x = linspace(range,-range,1001); try % if sweepDOF is a mirror name pos(opt.getDriveNum(sweepDOF),:) = x; catch try % if sweepDOF is a DOF name, move mirror(s) using mDrv pos(cellfun(@opt.getDriveNum,driveNames),:) = pinv(mDrv)*strcmp(sweepDOF,dofNames)'*x; catch error('Theres no such DOF nor drive.'); end end [fDC, sigDC] = opt.sweep(pos); % do the sweep figure() for ii=1:length(probeNames) plot(x,sigDC(opt.getProbeNum(probeNames(ii)),:)); hold on end legend(probeNames,'interpreter', 'none') xlabel([sweepDOF,' displacement [m]']); ylabel('signal [W]'); xlim([-range,range]) grid on