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

Phasengang in Simulink bestimmen

 

DanIng
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 10.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.05.2010, 15:44     Titel: Phasengang in Simulink bestimmen
  Antworten mit Zitat      
Hallo,

ich möchte Impedanzmessungen an Batterien durchführen.

Um die Impedanz eindeutig festzulegen benötige ich Phase und Betrag von Z, was sich aus der gemessen Spannung und dem vorgegeben Stromsignal ergeben sollte.

Nun meine Frage: Wie kann ich in Simukink die Phase eines Sinus/Cosinus Signales messen?
Ich habe schon einiges versucht, z.B. mit der hitcrossing Funktion die Nulldurchgänge bestimmt und dann die Zeit gemessen, das scheitert aber daran, dass sich die Clock Funktion nicht zurücksetzen lässt, sobald der erste Nulldurchgang ermittelt wird.


Wer hat eine Idee und kann mir helfen?
Vielen Dank bereits im Vorraus!
Private Nachricht senden Benutzer-Profile anzeigen


Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.05.2010, 20:03     Titel:
  Antworten mit Zitat      
Wenn die Frequenz beider Signale gleich ist, kannst Du das Modell aus dem Anhang benutzen. Die Zeitkonstante des PT1-Glieds musst Du auf 3...5*Signalperiode einstellen - je größer, desto genauer das Ergebnis. Dafür reagiert die Messung langsamer (im nicht-stationären Fall interessant). Voraussetzung ist natürlich, dass die Messung überhaupt so lange dauert.

Nulldurchgänge zählen kann man für alles mögliche einsetzen - hat man aber schon länger aufgegeben. Hat man nur ein kleines bisschen Rauschen auf der Messung (in schlimmen Fällen will man die Netzfrequenz direkt neben einem Wechselrichter erfassen), detektiert man da nur noch Murks.

phasenmessung.png
 Beschreibung:

Download
 Dateiname:  phasenmessung.png
 Dateigröße:  22.13 KB
 Heruntergeladen:  2577 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
DanIng
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 10.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2010, 10:19     Titel:
  Antworten mit Zitat      
Vielen Dank für die Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen
 
DanIng
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 10.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2010, 12:28     Titel:
  Antworten mit Zitat      
Hallo,

nocheinmal vielen Dank für deine Antwort.

Ich habe deinen Ansatz gerade ausprobiert!

Leider scheint er nicht zu funktionieren, bzw. ich mach noch etwas falsch!
Ich habe den Ansatz mal mit zwei erzeugten Sinunssignaelen unterschiedlicher Phasenlage probiert und je nach eingestellter Simulationszeit bekomme ich andere Phasenwinkel!

Irgendwie verstehe ich auch den Ansatz noch nicht ganz! Könntest du vielleicht noch kurz die Bausteine erläutern?
Wozu brauchst du z.B. den Gain 1/sqrt(2)?
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2010, 17:16     Titel:
  Antworten mit Zitat      
Ich muss selber nochmal ein paar Minuten drüber nachdenken - Putzfrau hat die Notizen leider schon mitgenommen... Im Prinzip kannste Dir das aber auch selbst herleiten. Die ersten paar Blöcke (bis wurzel) berechnen den Effektivwert der Differenz.
Dann schauste, wie sich dieser Wert in Abhängigkeit von der Phase verändert und stellst fest, dass das eine Sinus-Funktion mit Amplitude sqrt(2) ist. Über den arcsin kommste dann auf den Phasenwinkel. Und die 2 fällt einem beim Lösen auch irgendwie in die Hände... Erinner mich kommenden Montag nochmal dran - bin erstmal unterwegs jetzt.
Private Nachricht senden Benutzer-Profile anzeigen
 
DanIng
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 10.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2010, 16:08     Titel: Falscher Wert des Phasenwinkels
  Antworten mit Zitat      
Hallo Epfi,

ich verstehe jetzt zwar deinen Ansatz, umso mehr wundere ich mich, dass das Ergebnis nicht passt. Ich habe mal zwei Testsignale (siehe Scope Anzeige) generiert und der errechnete Phasenwinkel von etwa 70 Grad kann nicht stimmen.

Im Anhang mal die Testmodellierung


Wo liegt da jetzt noch das Problem? Ausserdem zeigt mir die Messung je nach eingestellter Simulationszeit einen anderen Winkel an ! ????
Die Phasenverschiebung der beiden Signale bleibt aber bei den von mir vorgegebenen idealen Testsignalen immer gleich.

Ich kenn mich leider zu wenig in der Messtechnik und in Mathlab aus, um selber auf meinen Fehler schliessen zu können.

test_phasenmessung.JPG
 Beschreibung:

Download
 Dateiname:  test_phasenmessung.JPG
 Dateigröße:  49.63 KB
 Heruntergeladen:  2234 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2010, 07:37     Titel:
  Antworten mit Zitat      
Moin!

Schön, dass Du es verstehst - sonst hätte ich mich heute Nachmittag nochmal drübergesetzt. Mir ist zwischenzeitlich noch eingefallen, dass es wichtig ist, dass die Amplitude beider Signale gleich ist, sonst wird die Berechnung falsch, da selbst bei einem Phasenwinkel von null eine Fläche zwischen den beiden Signalen aufgespannt wird.

Wenn die Amplitude unveränderlich ist, ist die Anpassung kein Problem, wenn sie sich ändert, wird das mit der Phasenmessung auf diese Weise etwas kniffliger. Habe diese Woche aber entdeckt, dass Tektronix-Scopes zum Teil Phasenmessungen machen können - vielleicht schreiben die in der Doku, wie sie das anstellen. Daraus lässt sich dann möglicherweise etwas robusteres ableiten...

Nachtrag: Du hast die Zeitkonstante des PT1-Glieds zu klein eingestellt. Scope3 müsste Dir etwa eine Gleichgröße anzeigen, das ist bei Dir sicherlich nicht der Fall. Je nach dem, wie dynamisch die Messung sein muss, sind Werte von 3...5*T nicht verkehrt. Je größer, desto langsamer die Bestimmung, aber auch genauer. T ist die Periode der beiden Eingangssignale.
Private Nachricht senden Benutzer-Profile anzeigen
 
DanIng
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 10.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2010, 09:14     Titel:
  Antworten mit Zitat      
Damit ist der Ansatz wohl hinfällig . . . den natürlich sind die Amplituden bei ner Impedanzmessung unterschiedlich . . . trotzdem danke
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2010, 09:47     Titel:
  Antworten mit Zitat      
Wenn Du die Möglichkeit hast, eine (quasi) beliebig lange Messung in einem stationären Zustand durchzuführen, kannst Du für sinusförmige Größen eine automatische Amplitudenanpassung implementieren:

Signal -> Effektivwert -> Gain(sqrt(2)) = Amplitude
Signal -> divide(Amplitude) = normiertes Signal

Das machst Du für beide Signale und gibst sie dann auf die Phasenwinkel-Messung. Die Effektivwertbildung geht wie bei der Phasenidentifikation, nur solltest Du die Zeitkonstante des Filters etwas größer wählen (~10...15*T_signal) - je kleiner die Welligkeit der Amplitude, desto besser. Gilt aber alles nur für den stationären Zustand - also konstante Frequenz und Amplitude.
Private Nachricht senden Benutzer-Profile anzeigen
 
DanIng
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 10.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2010, 11:07     Titel:
  Antworten mit Zitat      
Super, jetzt funktionierts!


Vielen, vielen Dank für die Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen
 
DanIng
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 10.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2010, 13:20     Titel: Fehlermeldung
  Antworten mit Zitat      
Hallo,

jetzt funktioniert die Phasenmessung bei Signalen gleicher Amplitude problemlos, und auch die Signalnormierung klappt, aber sobald ich die beiden Teile kombiniere, erscheint folgende Fehlermeldung:

Derivative input 1 of 'Phasenmesser_optimiert/Transfer Fcn' at time 0 is Inf or NaN. Stopping simulation. There may be a singularity in the solution. If not, try reducing the step size (either by reducing the fixed step size or by tightening the error tolerances).


Werr kann mir weiterhelfen?

phasenmessung_fehlermeldung.JPG
 Beschreibung:

Download
 Dateiname:  phasenmessung_fehlermeldung.JPG
 Dateigröße:  102.81 KB
 Heruntergeladen:  1861 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
DanIng
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 10.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2010, 13:21     Titel:
  Antworten mit Zitat      
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2010, 13:31     Titel:
  Antworten mit Zitat      
Ich vermute mal, dass entweder der Ausgang vom sqrt(2) oder vom Gain4 zu Beginn mal null wird. In der Simulink Extras Bibliothek gibt es einen Block, der heißt Transfer Fcn (with initial outputs) - dort gibst Du einfach einen kleinen Wert als Anfangsausgabe ein (0.001 oder so).
Private Nachricht senden Benutzer-Profile anzeigen
 
DanIng
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 10.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.05.2010, 13:31     Titel:
  Antworten mit Zitat      
Hallo,


also das bringt leider nichts, zeigt die selbe Fehlermeldung an!

Aber vielleicht liegt das Problem auch wo anders:

Durch das PT 1 Gllied baut sich der endgültige Amplitudenwert (im Beispiel A =3) erst allmählich auf --> vgl. Anhang (Oszi4)

Wenn ich also jetzt das Ausgangssignal durch die Amplitude teile, wird zunächst einmal durch 0 !!! geteilt, somit ergibt sich in meinem ReferenzOszi2 ein normiertes Spannungssignal, das zunächst einen unendlichen Spitzenausschlag hat und dann allmählich in ein normiertes Sinussignal mit Amplitude 1 wechselt.

Diesen unendlichen großen Spitzenausschalg gleich zu Beginn der Simulation verkraftet offensichtlich die Tranfer Function der Phasenmessung nicht und zeigt eine Fehlermeldung !

Die Frage ist nun also, was tun? Wie kann die Amplitude alternativ berechnet werden?

oszi4.JPG
 Beschreibung:

Download
 Dateiname:  oszi4.JPG
 Dateigröße:  117.61 KB
 Heruntergeladen:  1673 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.05.2010, 13:43     Titel:
  Antworten mit Zitat      
Hast Du bei beiden PT1-Gliedern eine Transfer Function mit Startwert eingesetzt und den Startwert ungleich 0 eingestellt? Das, was Du beschreibst ist genau das, was ich auch sagen wollte und müsste sich damit eigentlich beheben lassen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.