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 lösen mit mehreren Unbekannten

 

Tobi1234

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.04.2016, 10:31     Titel: Gleichung lösen mit mehreren Unbekannten
  Antworten mit Zitat      
Hallo liebes Forum,

ich möchte ein Gleichungssystem (siehe Bild) mittels Koeffizientenvergleich lösen.
Allerdings habe ich mehrere Unbekannte (R1,R2...). Dass heißt ich hätte gerne weitere Gleichungen für diese Unbekannte. Versteht ihr was ich mein Smile ?

Ich habe versucht, dass ganze mittels "solve" zu lösen, bekomme es aber nicht hin.
Hat mir jemand eine Idee?


Gruß Tobi

Bildschirmfoto 2016-04-01 um 11.27.57.png
 Beschreibung:

Download
 Dateiname:  Bildschirmfoto 2016-04-01 um 11.27.57.png
 Dateigröße:  6.11 KB
 Heruntergeladen:  631 mal


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 01.04.2016, 10:46     Titel:
  Antworten mit Zitat      
Zitat:
Versteht ihr was ich mein Smile ?
wenn du selber schon nicht sicher bist ob man deine frage versteht ist das kein gutes zeichen oder? Smile
Zitat:
Ich habe versucht, dass ganze mittels "solve" zu lösen, bekomme es aber nicht hin.

wenn du etwas versucht hast dann bitte immer den code posten, die fehlermeldungen und was nicht so klappt wie du willst. sihe dazu auch den thread aus meiner signatur.
grüße winkow
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.04.2016, 11:05     Titel:
  Antworten mit Zitat      
Ja hast recht. Hier nochmal etwas ausführlicher:

Code:
clc; clear;
%% Sallen Key
syms H C1 C2 R1 R2 s sn wg;
wg_ = 1;
C1_ = 1;
C2_ = C1_;
R1_ = 1;

%% Tiefpass
%          |-------Z1------|
%          |               |
%   ---Z2----Z3-------|+ __|_______
%               |  |--|-    |
%               Z4 |________|
%               |
%              ---


Z1 = 1/(s*C1);
Z2 = R1;
Z3 = R2;
Z4 = 1/(s*C2);

H = (Z1*Z4) / (Z1*Z2 + Z1*Z3 + Z1*Z4 + Z2*Z3);
H = subs(H,s,sn*wg);
H = expand(H);
pretty(H);
% s = jw = sn*wg

%% Tiefpass Gleichung
syms a1 b1 a2 b2;
% Tiefpass

% Übertragungsfunktion der Approximation
A = 1/(1 + a1*sn + b1*sn^2);
pretty(A);

%%
eqn = H == A;
pretty(eqn)
S = solve(eqn)



Hier ist der gesamte Code.
Ich habe zwei Übertragungsfunktionen symbolisch aufgestellt. Mittels Koeffizienten vergleich von "H" und "A" möchte ich nun Gleichungssysteme zum lösen von R1,R2;C1;C2 und wg.

Ich bekomme an sich eigentlich keine Fehler. Ich kann nur mit dem Ergebnis nichts anfangen:


Code:
S =
 
 -((C2*(C2*R1^2 + 4*C1*b1*R1*R2*sn^2 + 4*C1*a1*R1*R2*sn + 2*C2*R1*R2 + C2*R2^2))^(1/2) + C2*R1 + C2*R2)/(2*C1*C2*R1*R2*sn)
 -(C2*R1 - (C2*(C2*R1^2 + 4*C1*b1*R1*R2*sn^2 + 4*C1*a1*R1*R2*sn + 2*C2*R1*R2 + C2*R2^2))^(1/2) + C2*R2)/(2*C1*C2*R1*R2*sn)


Ich glaube ich benutze die solve Funktion einfach falsch. Gibt es eine Möglichkeit, dass sie mir einfach 4 Gleichungssysteme in Form eines structs oder wie auch immer zurückliefet? zb.: S.R1, S.R2 usw. jeweils in Abhängigkeit der anderen Variablen.

Ich benutze Matlab R2015a.


Vielen Dank schonmal.
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 01.04.2016, 11:19     Titel:
  Antworten mit Zitat      
du könntest mal
Code:
S = solve(H-A,[R1,R2,C1,C2])
testen ob das was bringt.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.04.2016, 11:25     Titel:
  Antworten mit Zitat      
Dann bekomme ich diese Warnung:

Code:
Warning: The solutions are parameterized by the symbols: z, z1, z2, z3. To include parameters and conditions in the solution, specify the
'ReturnConditions' option.
> In solve>warnIfParams (line 510)
  In solve (line 360)
  In Sallen_Key (line 46)
Warning: The solutions are valid under the following conditions: sn*wg*z*z1 ~= -1 & z2 ~= 0 & z2 + b1*sn^2*z + a1*sn*z ~= 0; a1 + b1*sn ~=
wg*z1*z2 & sn*wg*z*z1 ~= -1 & z2 ~= 0; z1 ~= 0 & z2 ~= 0 & z3 ~= 0. To include parameters and conditions in the solution, specify the
'ReturnConditions' option.
> In solve>warnIfParams (line 517)
  In solve (line 360)
  In Sallen_Key (line 46)

S =

    R1: [3x1 sym]
    R2: [3x1 sym]
    C1: [3x1 sym]
    C2: [3x1 sym]
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.04.2016, 11:29     Titel:
  Antworten mit Zitat      
Wenn ich so versuche:
Code:
[R1, R2, C1, C2, wg, parameters, conditions] = solve(eqn,[R1,R2,C1,C2,wg], 'ReturnConditions', true);


Erhalte ich diesen Fehler :
Code:
Warning: Cannot find explicit solution.
> In solve (line 318)
  In Sallen_Key (line 45)



Kann "solve" sowas eigentlich? Also mehrere Gleichungen aufstellen oder muss immer ein explizites Ergebnis rauskommen?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.04.2016, 11:35     Titel:
  Antworten mit Zitat      
Hallo,

was heißt denn, dass du weitere Gleichungen für die Unbekannten willst? MATLAB kann sich doch keine Gleichungen aus den Fingern saugen.

Hast du dir in deinem Beitrag von 12:25 mal die Lösungen angesehen?
Code:
etc.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.04.2016, 11:40     Titel:
  Antworten mit Zitat      
Ich hatte schon gehofft, dass Matlab das kann Smile

Code:
S = solve(H-A,[R1,R2,C1,C2,wg])


Code:
Warning: Cannot find explicit solution.
> In solve (line 318)
  In Sallen_Key (line 46)

S =

    R1: [0x1 sym]
    R2: [0x1 sym]
    C1: [0x1 sym]
    C2: [0x1 sym]
    wg: [0x1 sym]

>> S.R1
 
ans =
 
Empty sym: 0-by-1
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.04.2016, 13:31     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ich hatte schon gehofft, dass Matlab das kann Smile

Das ist aber eine gewagte Hoffnung. Woher soll MATLAB denn erahnen, wie diese Gleichungen aussehen sollen?

Der jetzt gelieferte Output passt nicht zu deinem Beitrag von 12:25. Dort wurde ja eine Lösung gefunden.

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 - 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.