WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Reibungszahl berechnen! Hilfe

 

DI
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 21.12.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2017, 00:04     Titel: Reibungszahl berechnen! Hilfe
  Antworten mit Zitat      
Hallo, ich habe mehrere Reibversuche durchgeführt, die zyklisch ablaufen. Dazu will ich für jeden Zyklus ich die Haftkraft (Maximum) und die dazugehörige statische Kraft ermittelt. Aus ihnen will ich die Reibungszahl berechnen. Ich suche also zur Haftkraft, die wirkende statische Kraft. Im Code nenne ich die statische Kraft Haft_st. Leider funktioniert das nicht.

Code:


clear all;
close all;

%%  Excel Datei Einlesen

[file,path]=uigetfile('*.*');
Pfad=fullfile(path,file);
[~,~,ExcelAll]=xlsread(Pfad);


% Zeit und Kraft extrahieren

Zeit  = cell2mat(ExcelAll(2:end,find((string(ExcelAll(1,:))) == 'Gesamtzeit (s)')));
Kraft = cell2mat(ExcelAll(2:end,find((string(ExcelAll(1,:))) == 'Kraft (N)')));
statisch = cell2mat(ExcelAll(2:end,find((string(ExcelAll(1,:))) == 'statische Kraft (N)')));


%% Rahmenbedingungen Haftkraft

Start = 0;      % Anfang des ersten Zeitbereichs
Stop  = 4;      % Ende des ersten Zeitbereichs
Dauer = 4;      % Periodendauer
wdh   = 15;     % Anzahl der Wiederholungen
 
for i=1:wdh
% Start- und Stopstellen generieren
   Begin = Start + (Dauer*(i-1));
   End   = Stop  + (Dauer*(i-1));

% Start- und Stoppositionen im Zeitarray finden
   Haftkraftstartpos(i) = find(Zeit>=Begin,1);
   help                 = find(Zeit<=End);
   Haftkraftstoppos(i)  = help(end);
end

% Haftkraft im Zeitbereich ermitteln
for i=1:wdh

   Haftkraft(i,:) = max(Kraft(Haftkraftstartpos(i):Haftkraftstoppos(i)));
     

   
%  Ermittlung der statischen Kraft für die Haftkraft (das funktioniert leider nicht)
   
   Haft_st(i,:) =find(Haftkraft(i)==statisch(Haftkraftstartpos(i):Haftkraftstoppos(i)))+Haftkraftstartpos(i)-1;

end



 
Private Nachricht senden Benutzer-Profile anzeigen


SigiSorglos
Forum-Century

Forum-Century


Beiträge: 147
Anmeldedatum: 24.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2017, 09:18     Titel:
  Antworten mit Zitat      
Stell doch bitte ein lauffähiges Minimalbeispiel hier rein oder gib wenigstens die Fehlermeldung an. "Leider funktioniert das nicht." ist keine Problembeschreibung mit der man als Außenstehender etwas anfangen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
DI
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 21.12.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2017, 10:19     Titel:
  Antworten mit Zitat      
Ich hab den Kraft-Zeit Verlauf mal mit hinzugefügt. Die gelb markierte Stelle zeigt die Haftkraft (das Maximum) an und wie bereits erwähnt verläuft das zyklisch. Und genau zu diesem Zeitpunkt will ich die statische Kraft ermitteln, die ich parallel gemessen habe. Die Messdaten der statischen Kraft findet man unter "statisch".

Das Programm gibt leider keine Fehlermeldung aus. Er läuft ganz normal durch. Jedoch wird nichts für die statische Kraft berechnet

Kraftverlauf.png
 Beschreibung:

Download
 Dateiname:  Kraftverlauf.png
 Dateigröße:  106.16 KB
 Heruntergeladen:  484 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
SigiSorglos
Forum-Century

Forum-Century


Beiträge: 147
Anmeldedatum: 24.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2017, 10:25     Titel:
  Antworten mit Zitat      
Könntest du noch ein Beispiel Excelfile zum Download zur Verfügung stellen?

Du solltest bei der Vergabe von Variablennamen darauf achten, dass diese nicht bereits als Befehl existieren (z.B. help). Des Weiteren ist "i" eigentlich reserviert für komplexe Zahlen, sollte also nicht als Schleifenvariable genutzt werden. Das wird das Problem nicht lösen aber nur so als Tipp für die Zukunft.
Private Nachricht senden Benutzer-Profile anzeigen
 
SigiSorglos
Forum-Century

Forum-Century


Beiträge: 147
Anmeldedatum: 24.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2017, 10:50     Titel:
  Antworten mit Zitat      
Was auffällt ohne die Werte zu haben: In der Zeile
Code:
Haft_st(i,:) =find(Haftkraft(i)==statisch(Haftkraftstartpos(i):Haftkraftstoppos(i)))+Haftkraftstartpos(i)-1;


versuchst du den Wert der Haftkraft in den Werten der statischen Kraft wiederzufinden. Allerdings willst du doch nur den Zeitpunkt der maximalen Haftkraft nehmen und zu diesem Zeitpunkt dann die statische Kraft erhalten oder?

Dann müsste es (etwas ins blaue hineingeraten, da ich die Werte nicht habe) etwa so aussehen:

Code:
HaftkraftZeitpunkt = find(max(Kraft(Haftkraftstartpos(i):Haftkraftstoppos(i))),1);
     
%  Ermittlung der statischen Kraft für die Haftkraft
   Haft_st(i) =statisch(HaftkraftZeitpunkt)+Haftkraftstartpos(i)-1;


Hilft dir das schon weiter?
Private Nachricht senden Benutzer-Profile anzeigen
 
DI
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 21.12.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2017, 11:08     Titel:
  Antworten mit Zitat      
SigiSorglos hat Folgendes geschrieben:
Könntest du noch ein Beispiel Excelfile zum Download zur Verfügung stellen?

Du solltest bei der Vergabe von Variablennamen darauf achten, dass diese nicht bereits als Befehl existieren (z.B. help). Des Weiteren ist "i" eigentlich reserviert für komplexe Zahlen, sollte also nicht als Schleifenvariable genutzt werden. Das wird das Problem nicht lösen aber nur so als Tipp für die Zukunft.


Die Datei lässt sich leider nicht hochladen Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
DI
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 21.12.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2017, 11:12     Titel:
  Antworten mit Zitat      
SigiSorglos hat Folgendes geschrieben:
Was auffällt ohne die Werte zu haben: In der Zeile
Code:
Haft_st(i,:) =find(Haftkraft(i)==statisch(Haftkraftstartpos(i):Haftkraftstoppos(i)))+Haftkraftstartpos(i)-1;


versuchst du den Wert der Haftkraft in den Werten der statischen Kraft wiederzufinden. Allerdings willst du doch nur den Zeitpunkt der maximalen Haftkraft nehmen und zu diesem Zeitpunkt dann die statische Kraft erhalten oder?

Dann müsste es (etwas ins blaue hineingeraten, da ich die Werte nicht habe) etwa so aussehen:

Code:
HaftkraftZeitpunkt = find(max(Kraft(Haftkraftstartpos(i):Haftkraftstoppos(i))),1);
     
%  Ermittlung der statischen Kraft für die Haftkraft
   Haft_st(i) =statisch(HaftkraftZeitpunkt)+Haftkraftstartpos(i)-1;


Hilft dir das schon weiter?



Prinzipell möchte ich einfach nur die statische Kraft, die in der gleichen Zeile steht wie die Haftkraft. Hab es mal makiert in der Tabelle makiert. Kann leider die Datei nicht hochladen -.- Ist aber jetzt nicht das Maximum das ich makiert habe Very Happy Soll es jetzt nur einmal so Darstellen

Unbenannta.png
 Beschreibung:

Download
 Dateiname:  Unbenannta.png
 Dateigröße:  173.67 KB
 Heruntergeladen:  474 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
SigiSorglos
Forum-Century

Forum-Century


Beiträge: 147
Anmeldedatum: 24.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2017, 11:15     Titel:
  Antworten mit Zitat      
probiere es mal damit:

Code:

% Haftkraft im Zeitbereich ermitteln
for i=1:wdh

HaftkraftZeitpunkt = find(max(Kraft(Haftkraftstartpos(i):Haftkraftstoppos(i))),1);
     
%  Ermittlung der statischen Kraft für die Haftkraft
   Haft_st(i) =statisch(Haftkraftstartpos(i)-1+HaftkraftZeitpunkt);

end
Private Nachricht senden Benutzer-Profile anzeigen
 
DI
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 21.12.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2017, 11:21     Titel:
  Antworten mit Zitat      
SigiSorglos hat Folgendes geschrieben:
probiere es mal damit:

Code:

% Haftkraft im Zeitbereich ermitteln
for i=1:wdh

HaftkraftZeitpunkt = find(max(Kraft(Haftkraftstartpos(i):Haftkraftstoppos(i))),1);
     
%  Ermittlung der statischen Kraft für die Haftkraft
   Haft_st(i) =statisch(Haftkraftstartpos(i)-1+HaftkraftZeitpunkt);

end


Jetzt gibt es mir Werte aus, leider passen die Werte nicht. Es ist nicht die statische Kraft in der gleichen Zeile.
Private Nachricht senden Benutzer-Profile anzeigen
 
SigiSorglos
Forum-Century

Forum-Century


Beiträge: 147
Anmeldedatum: 24.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2017, 11:29     Titel:
  Antworten mit Zitat      
der find-Befehl passt auch nicht fällt mir grade auf. Sollte eher so etwas sein wie:

Code:
HaftkraftZeitpunkt = find(Kraft(Haftkraftstartpos(i):Haftkraftstoppos(i))==max(Kraft(Haftkraftstartpos(i):Haftkraftstoppos(i))),1);
Private Nachricht senden Benutzer-Profile anzeigen
 
DI
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 21.12.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2017, 11:51     Titel:
  Antworten mit Zitat      
SigiSorglos hat Folgendes geschrieben:
der find-Befehl passt auch nicht fällt mir grade auf. Sollte eher so etwas sein wie:

Code:
HaftkraftZeitpunkt = find(Kraft(Haftkraftstartpos(i):Haftkraftstoppos(i))==max(Kraft(Haftkraftstartpos(i):Haftkraftstoppos(i))),1);


Geil, es klappt!! Dankeschön Smile) Ich hätte noch ne Frage, er speichert die 15 Werte in einer Zeile ab. Ich hätte die gerne in einer Spalte untereinader abgespeichert. Kann man das irgendwie machen?
Private Nachricht senden Benutzer-Profile anzeigen
 
SigiSorglos
Forum-Century

Forum-Century


Beiträge: 147
Anmeldedatum: 24.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2017, 12:52     Titel:
  Antworten mit Zitat      
ja einfach transponieren mit:

Code:
Haft_st=Haft_st'


oder besser direkt mit:

Code:
Haft_st(i,1) =statisch(HaftkraftZeitpunkt+Haftkraftstartpos(i)-1);
Private Nachricht senden Benutzer-Profile anzeigen
 
DI
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 21.12.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.12.2017, 13:11     Titel:
  Antworten mit Zitat      
SigiSorglos hat Folgendes geschrieben:
ja einfach transponieren mit:

Code:
Haft_st=Haft_st'


oder besser direkt mit:

Code:
Haft_st(i,1) =statisch(HaftkraftZeitpunkt+Haftkraftstartpos(i)-1);


Perfekt! Danke, klappt jetzt alles reibungslos. Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.