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

Gleichung genauer lösen

 

m.

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2012, 13:57     Titel: Gleichung genauer lösen
  Antworten mit Zitat      
Hey,

ich muss die Streuinduktivität der Primärspule während einer Kursschlussmessung an einem Transformator berechnen.
Dazu habe ich meine vorhandene Gleichung in Real- & Imaginärteil aufgeteilt.

Code:
%% Brechnung der Kurzschlussmessung
clear all;

w = 2*pi*50; %omega
% r = R1 Widerstandprimärspule
% s = R2 Widerstandsekundärspule
% k = L1 Induktivitätprimärspule
% l = L2 Induktiitätsekundärspule
% h = Lh Hauptinduktivität

syms h l  ;  % bestimme symbolische Variablen
s = 0.0151;  % die Werte für die Widerstände,
u = 350/30;  % das Übersetzngsverhältnis  
r = u^2*s;   % und das Verhältnis zwischen den Widerständen und Induktivitäten
k = u^2*l;   % eingeben

Re = - (s*(2*h*l*w^2+l^2*w^2+s^2)/(h^2*w^2+2*h*l*w^2+l^2*w^2+s))+r+s == 3.02176; % Realteil der GLeichung
Im = -(w*(h*(l^2*w^2-s^2)+l*(l^2*w^2+s^2))/(h^2*w^2+2*h*l*w^2+l^2*w^2+s)-k*w-l*w)== 9.502773;  % Imaginärteil der Gleichung

loesungRe =solve(Re, 'h'); % jeweils nach h aufgelöst
loesungIm =solve(Im, 'h');

display(loesungRe); % Ausgabe der Ergebnisse
display(loesungIm);

% die beiden Ergebnisse sollen gleichgesetzt werden. Mit Formel hat das
% nicht funktioniert, also habe ich die ausgegebenen Werte kopiert und
% dann gleichgesetzt

A= (1932735283200000*(- (6849609026540117349123761247480874896481*l^2)/66408278665354385817600000000 - 145819163886661695722320518777568611997789769873/7833839311102797052096020480000000000000)^(1/2))/6745807423236742711159 - (3944479*l)/3978454- (3944479*l)/3978454 - (1932735283200000*(- (6849609026540117349123761247480874896481*l^2)/66408278665354385817600000000 - 145819163886661695722320518777568611997789769873/7833839311102797052096020480000000000000)^(1/2))/6745807423236742711159 == -(198465966813838736306995200*pi - 163272200378089195872176970933153*l + 8704265901225330057884467200*((11500035665644279791267712620889*pi^2*l^4)/1180591620717411303424 - (56063568351219746688982460593431243346547*pi^2*l^2)/50136571591057901133414531072000 + (40551955292838456609630331865384916873395057672965643*pi*l)/26133685779528073993987169850759798639820800000 + (43190405965916647214832000362041*pi^2)/83076749736557242056487941267521536 - 14654358983601788151996829348285637634390171800667/27222589353675077077069968594541456916480000000)^(1/2) + 234718820571708299735122131602636800*pi*l^2)/(3391170250170917*(69468024252189900800*pi*l - 48146270559509709)) -(198465966813838736306995200*pi - 163272200378089195872176970933153*l - 8704265901225330057884467200*((11500035665644279791267712620889*pi^2*l^4)/1180591620717411303424 - (56063568351219746688982460593431243346547*pi^2*l^2)/50136571591057901133414531072000 + (40551955292838456609630331865384916873395057672965643*pi*l)/26133685779528073993987169850759798639820800000+ (43190405965916647214832000362041*pi^2)/83076749736557242056487941267521536 - 14654358983601788151996829348285637634390171800667/27222589353675077077069968594541456916480000000)^(1/2) + 234718820571708299735122131602636800*pi*l^2)/(3391170250170917*(69468024252189900800*pi*l - 48146270559509709));
Antwort = solve (A, 'l'); % diese Rechnung wird nach l aufgelöst

pretty(Antwort);
 


Die resultierende Antwort ist irgendwie noch nicht richtig berechnet, wie kann ich die vereinfachen oder genauer ausrechnen?

Vielen Dank für die Hilfe


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.10.2012, 16:30     Titel:
  Antworten mit Zitat      
Hallo,

wie hast du A denn zusammenkopiert?

Was hattest du versucht, und woran ist es gescheitert?
Zwei Ausdrücke gleichsetzen geht z.B. so:
Code:
syms x
x1 = x^2;
x2 = 2*x;
solve(x1-x2, x)


Was heißt "irgendwie noch nicht richtig berechnet"?

Man könnte mit simplify oder eval weiterarbeiten.

Wenn du letztlich Zahlen als Lösungen haben willst, würde ich aber gleich mit FSOLVE aus der Optimization Toolbox oder mit FMINSEARCH arbeiten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
m.

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2012, 14:05     Titel:
  Antworten mit Zitat      
Hey,

ich habe mir loesungRe und loesungIm jeweils anzeigen lassen und
A = loesungRe - loesungIm berechnet.

Es gab Probleme, da loesungRe und loesungIm aus der Umstellung nach einer Variablen h berechnet werden und wenn die die beiden Ergebnisse gleichsetzte (A) und wieder nach einer Variablen auflösen möchte, werden Fehlermeldungen bezüglich der Variablen ausgegeben.

simplify hatte ich versucht, das hat nichts gebracht - aber eval ist eine gute idee.
"irgendwie noch nicht richtig berechnet" - naja ich bräuchte ein vereinfachtes ergebnis.

Vielen Dank für die Tipps ich werde FSOLVE und FMINSEARCH ausprobieren!
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.10.2012, 14:50     Titel:
  Antworten mit Zitat      
Hallo,

bitte immer die Fehlermeldung kopieren statt interpretieren.

Hier war das Problem, dass es je zwei Lösungen für Imaginär- und Realteil gab. Wenn ich eine davon auswähle, klappt es bei mir:
Code:
A = loesungRe(1) - loesungIm(1);
Antwort = solve (A, 'l'); % diese Rechnung wird nach l aufgelöst

Grüße,
Harald
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 - 2025 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.