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

Transferfunktion

 

Karolinchen
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 08.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2015, 08:54     Titel: Transferfunktion
  Antworten mit Zitat      
Hallo,

ich sitze gerade daran eine transferfunktion zu verstehen und anzuwenden und vlt kann mir hier jmd vlt helfen...

Ich würde gerne die transferfunktion meines beschleunigungssignal darstellen lassen. Also mir wurde gesagt ich solle die FFT durch die frequenz^4 teilen. Sow ürde ich dann die EIgenfrequenzen des Systems erkennen können. wenn die Dämpfung nicht zu groß ist. Also die amplitude soll durch die frequenz^4 geteilt werden. Nur verstehe ich das nicht so ganz. Also habe ich das folgende versucht....

Code:
y=xx;
FS=1000;
L=length(y);
fft_tmp=fft(y); %fft-Ergebnis ist ein Array aus komplexen Zahlen, wobei der Realteil die Amplitude und der Imaginärteil die Phase darstellt
fft_ampl=2*abs(fft_tmp(1:L/2+1))/L; %Phase interessiert nicht und komplexe Zahlen lassen sich schwer darstellen, deswegen wird der Absolutwert(Realteil) bestimmt und dann noch normiert
fff=linspace(0,FS/2,L/2+1);
fft_ampl=fft_ampl./ fff^4


Leider kommen da diverse Errors und ich bin mir nicht ganz sicher warum...

Das war eigentlich nur ein Versuch, um überhaupt zu sehen ob und inwiefern man was sehen/erkennen kann.

Eigentlich arbeite ich ja mit der Funktion, die mir hier nahegelegt worden ist. Könnte man das dort auch einbringen? Also so dass ich eine Transferfunktion erhalte?

Code:
function [mag, mag_dB, fv] = FFT_betragsspektrum( signal, nfft, fa, window, scale)
% Input:
% Signal im Zeitbereich
% nfft = Anzahl Messwerte für fft
% wenn nfft > length(sig) -> fft(sig,nfft) führt Zeropadding durch
% fa = Abtastfreq.
% window: Fensterfunktion als Vektor
% scale: 0 = keine Impulsantwort als Eingang, 1 = Impulsantwort
% Output:
% Magnitude des Spektrums linear und dB skaliert
% Frequenzvektor fv in [Hz] von 0...fa/2

% un-,gerade Anzahl Messwerte?
if mod(nfft,2) == 0;
    k = (nfft/2) + 1;
else
    nfft = nfft + 1;
    k = (nfft/2) + 1;
end

fn = fa/2; % Nyquistfreq.
df = fa/nfft; % Frequenzauflösung des Spektrums
% Frequenzvektor: Darstellung bis Nyquistfreq.
fv = 0: df : fn;

sig = signal(:);
Lsig = size(sig,1);

% Fensterung
if window == 1
    win = hann(Lsig);
    sig_win = sig .* win * Lsig / sum(win); % Fensterung mit Amplitudenkorrektur
    sig = sig_win;
end

% Signal transformieren
Fy = fft(sig,nfft);
 
%   Betrag - nur positives Freq.spektrum
if scale == 0
    Fy_pos0 = abs(Fy(1:k));
    %   Skalierung  
    mag = [Fy_pos0(1)/Lsig ;Fy_pos0(2:k-1)/(Lsig/2);Fy_pos0(k)/Lsig];
else % nicht durch nfft teilen bei Impulsantwort
    mag = abs(Fy(1:k));
end

% Umrechnung in dB
mag_dB = 20*log10(mag + eps); % eps = kleine Konstante zur Vermeidung von log(0)



Freue mich über jegliche Hilfe und Tipps!
Private Nachricht senden Benutzer-Profile anzeigen


Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2015, 09:43     Titel:
  Antworten mit Zitat      
Aus der FFT eines Signals kannst Du keine Übertragungsfunktion (oder engl. transfer function) bestimmen. Geht einfach nicht.

Eine Übertragungsfunktion gibt das Eingangs-Ausgangsverhalten eines Systems an. Also es kommt dass Signal B raus, wenn man das Signal A reinsteckt. Wenn man die Übertragungsfunktion aus Messungen bestimmen will, benötigt man also *zwei* Signale. Eine FFT ist die Zerlegung *eines* Signals in seine Frequenzbestandteile.

Bevor Du anfängst, irgendwas durch die vierte Potenz von irgendwelchen Vektoren oder Matrizen zu dividieren, wäre es sicher hilfreich, wenn Du erst mal herausfindest, was folgende Dinge sind:
* Laplace-Transformation
* Übertragungsfunktion
* Bode-Diagramm
* Fouriertransformation
* Verhalten einfacher Übertragungsglieder (P, I, PT1, PT2, DT1, ...)

Wenn Du das alles verstanden hast, dürfte sich auch dein Matlab-Problem von selbst in Luft auflösen. Das sind Grundlagen der Systemtheorie - die wirst Du früher oder später ohnehin können müssen. Also lieber jetzt lernen, als später ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Karolinchen
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 08.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2015, 09:46     Titel:
  Antworten mit Zitat      
Alles klar, vielen Dank Smile

Ehrlich gesagt, habe ich auch nicht verstanden was genau der Typ von mir will, als er meinte ich solle das teilen und durch die vierte Potenz teilen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2015, 09:51     Titel:
  Antworten mit Zitat      
Das macht für mich so direkt auch keinen Sinn... War das denn ein vertrauenswürdiger Typ?

Was für eine Messung hast Du denn genau bekommen? Und gibt es sonst noch weitere Informationen? Zum Beispiel, unter welchen Umständen die Messung zustande gekommen ist? Also was wurde für ein Versuch gefahren? In dieser Information könnte nämlich schon die Auskunft über das Eingangssignal stecken...
Private Nachricht senden Benutzer-Profile anzeigen
 
Karolinchen
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 08.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2015, 10:00     Titel:
  Antworten mit Zitat      
Naja ich habe Erregerfrequenzen bis zu 4 Hz. Es wurde eine horizontale Schwingung ausgeübt auf ein Bauwerk quasi und dabei haben Sensoren im Boden Beschleunigungen gemessen. Also theoretisch weiß ich womit angeregt worden ist. Und ich weiß auch, dass die Frequenzen von 4Hz beispielsweise im Boden ankamen bzw. zu erkennen sind in einer FFT.

Der Typ ist schon vertrauenswürdig. Ich versteh nur eigentlich absolut gar nicht warum ich das jetzt so machen sollte und was genau mir das zeigen soll. Weil ich habe natürlich gestern auch schon ein wenig gelesen was eigentlich eine Übertragungsfunktion ist. Aber hat für mich jetzt so wenig Sinn gemacht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2015, 10:41     Titel:
  Antworten mit Zitat      
Ah, die Geschichte...Nur, weil Du die Erregerfrequenz kennst, kennst Du das Erregersignal noch lange nicht. Da fehlen Dir noch Amplitude und Phasenlage.

Was Du machen willst, heißt Frequenzganganalyse. Da solltest Du tonnenweise Material finden, wie Du da grundsätzlich vorgehen kannst.

Dein ganzes Vorhaben macht generell nur Sinn, wenn Du ein lineares System hast. Solltest Du in Deinen Messungen irgendeine Art von nicht linearem Effekt erkennen können (zum Beispiel Oberschwingungen) kann man keine Übertragungsfunktion angeben.
Private Nachricht senden Benutzer-Profile anzeigen
 
Karolinchen
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 08.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2015, 10:48     Titel:
  Antworten mit Zitat      
Alles klar vielen Dank für deine Hilfe!!!
Das war sehr hilfreich!
Private Nachricht senden Benutzer-Profile anzeigen
 
Ben de Brugg
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 20.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.12.2015, 10:26     Titel:
  Antworten mit Zitat      
Hallo,

um die notwendigen Grundlagen zur Analyse und Beschreibung von dynamischen Systemen zu erlangen empfehle ich:

Heinz Unbehauen, Regelungstechnik I + II

Das sollte einen guten Überblick über die Kriterien eines dynamischen Systems und deren Ermittlung geben.

Band III dieser Serie wäre dann etwas zur Systemidentifikation.

Gruß
_________________

"Who you gonna call?!?" - "Matlab."
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.