% Programme matlab pour l'acquisition avec NI-USB 6000 % TP perçage 2015-2016 % François Girardin %% Acquisition des signaux % Définition d'un "listener" pour affichage des signaux en cours % d'acquisition (raffraichissement une fois par seconde) lh = addlistener(session,'DataAvailable', @(src,event) plot(event.TimeStamps, event.Data)); session.NotifyWhenDataAvailableExceeds=40; % Lancement de l'acquisition [data,time]=session.startForeground; clear lh %% POST-TRAITEMENT clear F C Percage0 dP0 dP1 creneau ... dureeCreneau Transition Debut Fin seuil=0.25; % Renommer les signaux Efforts et Couple (en Volt) F=abs(data(:,1)); C=abs(data(:,2)); % Trouver les créneaux avec usinage % Identification des indices des crénaux Percage0=find(C>seuil); % Identification du début et de la fin de chaque créaneau % Identification de la fin de chaque créneau dP0=find(diff(Percage0)>1); dP0(end+1)=length(Percage0); % Identification du début de chaque créneau dP1=dP0+1; dP1=circshift(dP1,1); dP1(1)=1; %Début et fin de chaque créneau creneau(:,1)=dP1; creneau(:,2)=dP0; dureeCreneau=diff(creneau,[],2); Transition=floor(dureeCreneau/4); Debut=dP1+Transition; Fin=dP1+3*Transition; plot(time,F,'--',time,C,'--');hold on legend('F','C','Location','NorthWest','Orientation','vertical'); M=zeros(size(creneau,1),3); for indice=1:size(creneau,1) Pindice=Percage0(Debut(indice):Fin(indice)); M(indice,1)=time(Pindice(1)); M(indice,2)=mean(F(Pindice)); M(indice,3)=mean(C(Pindice)); M(indice,4)=max(F(Pindice)); M(indice,5)=min(F(Pindice)); M(indice,6)=max(C(Pindice)); M(indice,7)=min(C(Pindice)); plot(time(Pindice),ones(length(Pindice),1)*M(indice,2:3),'LineWidth',6); hold on plot([time(Pindice(1)) time(Pindice(1))],[0 1.1*max(mean(F(Pindice)),mean(C(Pindice)))],'k--','LineWidth',2) end xlim([0 time(Pindice(end))+5]) title('Effort d avance et couple de percage'); xlabel('temps (s)'); ylabel('tension mesurée (V)') clear indice Pindice M disp('Information sur les colonnes'); disp('1 - Temps du debut du creneau'); disp('2 - Valeur moyenne de l''effort'); disp('3 - Valeur moyenne du couple'); disp('4 - Valeur max. de l''effort'); disp('5 - Valeur min. de l''effort'); disp('6 - Valeur max. du couple'); disp('7 - Valeur min. du couple');