AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Bibliothek zur komplexen Schaltungsberechnung

Bibliothek zur komplexen Schaltungsberechnung

Ein Thema von Dust Signs · begonnen am 20. Aug 2005 · letzter Beitrag vom 21. Aug 2005
Antwort Antwort
Seite 2 von 2     12
Dust Signs
Registriert seit: 28. Dez 2004
Hi!

Für alle, die komplexe Schaltungsberechnung mit Widerständen, Kondensatoren und Spulen in Delphi suchen: meine Bibliothek berechnet diese Schaltungen und bietet einige Zusatzfunktionen wie z.B. die Berechnung von Resonanzfrequenzen.
All jene, die den Quelltext sehen möchten ohne Delphi öffnen zu wollen seien auf das Corssposting im DF verwiesen. Alle anderen seien dazu aufgefordert, den Anhang herunterzuladen .

Lizenz: Open Source; solange mein Name im Header bleibt (als ursprünglicher Autor o.ä.) kann der Code modifiziert werden. Wird der Code in einem Programm verwendet bitte in der About-Box und der Readme (falls es eine gibt) einen entsprechenden Hinweis. Verwendung in Shareware oder anderen kommerziellen Projekten ist nicht gestattet.

Der Code ist noch etwas Beta, da nicht alles getestet ist. Freue mich über Anregungen aller Art

Dust Signs

PS. Beispielcode ist im Anhang nicht dabei!
Angehängte Dateien
Dateityp: zip circuit_890.zip (3,8 KB, 34x aufgerufen)
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
 
Dust Signs
 
#11
  Alt 20. Aug 2005, 19:11
Am besten lässt sich das im Debugger verfolgen:

g2 hat 2 Elemente: den Kondensator und g (eine weitere Gruppe -> Verschachtelung)

Wenn ich jetzt g2 freigebe, wird (Zeile 103) der Kondensator vernichtet und anschließend Free von g aufgerufen (zweites Element). g.Free zerstört alle seine Elemente (R, L, C) und anschließend sich selbst. Danach zerstört sich g2 selbst. Klar soweit

Dust Signs
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#12
  Alt 20. Aug 2005, 19:15
Das mag ja alles sein.

Aber, ich werde das jetzt mal an deinen Code (aus dem anderen Forum) zeigen...

Delphi-Quellcode:
procedure TCircuitCalculationForm.FormCreate(Sender: TObject);
var
  g: TCircuitElementGroup;
begin //Dummy-Prozedur um Funktionalität zu testen!
  g := TCircuitElementGroup.Create; <-- wo wird diese Zeile freigegeben?
  with g do begin
    Parallel := true;
    AddElement(TResistor.Create(2200));
    AddElement(TCoil.Create(0.3));
    AddElement(TCapacitor.Create(8E-6));
  end;
  with TCircuitElementGroup.Create do begin
    Parallel := false;
    AddElement(TCoil.Create(0.4));
    AddElement(g);
    with ComplexEditorFrame1 do begin
      Initialize;
      SetReadOnly(true);
      SetPhasor(Impedance); //Ergebnis sollte 6,9113 + j248,7774 sein
      end;
    Free;
  end;
end;
MfG
Thorsten
  Mit Zitat antworten Zitat
Dust Signs
 
#13
  Alt 20. Aug 2005, 19:19
Zeile 15: g ist ab diesem Zeitpunkt ein Element von g2 und wird beim Freigeben von g2 auch freigegeben . Oder ist es doch ein Speicherleck ^^. Debugg einfach mal

Dust Signs
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#14
  Alt 20. Aug 2005, 19:21
Ok, jetzt habs ich auch kapiert.

nein, alles ok - sorry

MfG
Thorsten
  Mit Zitat antworten Zitat
Dust Signs
 
#15
  Alt 21. Aug 2005, 18:39
Bin im Moment dabei, eine Visualisierungsunit für die Schaltungen zu schreiben . Ist leider noch ziemlich Beta - aber hier mal ein Preview. Hab den Rest des Fensters nicht weggeschnitten, aber die weiße Fläche mit den Schaltelementen sieht man ja auch so als Preview sozusagen

Dust Signs
Miniaturansicht angehängter Grafiken
cmpx3cir_646.gif  
  Mit Zitat antworten Zitat
schöni

 
Delphi 7 Personal
 
#16
  Alt 21. Aug 2005, 19:17
Hallo Dust Signs!

Zuerst mal Danke für Deine Arbeit. Werd ich gleich mal testen. Beim grben Überlesen fiel mir folgendes auf:

Zitat:
Die Idee dahinter war folgende: meist berechnest du eine einzige Schaltung - und da ändert sich die Frequenz nicht
Gut und schön, aber was ist mit Frequenzganganalyse bei einer Schaltung mit Kondensatoeren und oder Spulen? Da ist es schon sinnvoll die Schaltung für verschiedene Frequenzen zu berechnen. Zum Beispiel Filter, Hochpaß, Tiefpaß.

Werde das alles ert aml testen. Die Fragen kommen später.

Weiter so

schöni
  Mit Zitat antworten Zitat
Dust Signs
 
#17
  Alt 21. Aug 2005, 19:43
Zitat von schöni:
Gut und schön, aber was ist mit Frequenzganganalyse bei einer Schaltung mit Kondensatoeren und oder Spulen? Da ist es schon sinnvoll die Schaltung für verschiedene Frequenzen zu berechnen. Zum Beispiel Filter, Hochpaß, Tiefpaß.
Schon klar. Aber das kannst du ja ganz einfach anstellen indem du GlobalCircularFrequency änderst . Im Screenshot würde das dem Ändern der Frequenz im obersten Edit links entsprechen. Wenn du das jetzt nicht per Eingabe sondern programmtechnisch machst kannst du wunderbar den Widerstand (besser gesagt die Impedant ) in Abhängikeit der Frequenz berechnen . Oder versteh ich dich einfach nur falsch ^^

Dust Signs
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf