67 lines
1.4 KiB
Matlab
67 lines
1.4 KiB
Matlab
%% TwinCAT Scope CSV importieren
|
|
|
|
filename = 'Scope YT NC Project-0-Platten.csv';
|
|
|
|
%% Datei komplett einlesen
|
|
lines = readlines(filename);
|
|
|
|
%% Beginn der eigentlichen Messdaten finden
|
|
dataStart = find(startsWith(strtrim(lines),"0,"),1,'first');
|
|
|
|
if isempty(dataStart)
|
|
error('Beginn der Messdaten nicht gefunden.');
|
|
end
|
|
|
|
%% Numerischen Teil temporär speichern
|
|
tmpFile = [tempname '.csv'];
|
|
writelines(lines(dataStart:end), tmpFile);
|
|
|
|
%% Daten einlesen
|
|
M = readmatrix(tmpFile);
|
|
|
|
delete(tmpFile);
|
|
|
|
%% Signale extrahieren
|
|
data.ACTPOS.t = M(:,1);
|
|
data.ACTPOS.y = M(:,2);
|
|
|
|
data.SETPOS.t = M(:,3);
|
|
data.SETPOS.y = M(:,4);
|
|
|
|
data.ACTVELO.t = M(:,5);
|
|
data.ACTVELO.y = M(:,6);
|
|
|
|
data.POSDIFF.t = M(:,7);
|
|
data.POSDIFF.y = M(:,8);
|
|
|
|
data.ActTorque.t = M(:,9);
|
|
data.ActTorque.y = M(:,10);
|
|
|
|
data.current_mA.t = M(:,11);
|
|
data.current_mA.y = M(:,12);
|
|
|
|
%% Strom skalieren (ScaleFactor = 0.001 aus Header)
|
|
data.current_A = data.current_mA.y * 0.001;
|
|
|
|
%% Beispielplot
|
|
figure;
|
|
|
|
subplot(3,1,1)
|
|
plot(data.ACTPOS.t/1000, data.ACTPOS.y, ...
|
|
data.SETPOS.t/1000, data.SETPOS.y);
|
|
grid on
|
|
xlabel('Zeit [s]')
|
|
ylabel('Position')
|
|
legend('ACTPOS','SETPOS')
|
|
|
|
subplot(3,1,2)
|
|
plot(data.ACTVELO.t/1000, data.ACTVELO.y);
|
|
grid on
|
|
xlabel('Zeit [s]')
|
|
ylabel('Geschwindigkeit')
|
|
|
|
subplot(3,1,3)
|
|
plot(data.ActTorque.t/1000, data.ActTorque.y);
|
|
grid on
|
|
xlabel('Zeit [s]')
|
|
ylabel('Drehmoment') |