matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenMatlabconnect Control System Toolb.
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Geschichte • Erdkunde • Sozialwissenschaften • Politik/Wirtschaft
Forum "Matlab" - connect Control System Toolb.
connect Control System Toolb. < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

connect Control System Toolb.: Fehler?
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 14:03 Fr 21.03.2008
Autor: TimJim

Wenn ich das Beispiel aus der MATLAB Hilfe zum Befehl "connect" aus der Control System Toolbox ausführe, dann bekomme ich ein anderes Ergebnis als auf der Hilfeseite angegeben. Alles nur per Copy&Paste, zweimal überprüft, ob alles richtig kopiert wurde.

Inzwischen schon auf zwei Versionen getestet: Matlab 7.1 R14 SP3 und Matlab 2007b.

Ich geb hier einfach mal das M-File an. Könnt' ihr das mal durchlaufen lassen und das Ergebnis vergleichen?
%----------------------------
% Beispiel-Code aus der Hilfeseite zu connect, Matlab 7.1 R14 + R2007b
A = [ -9.0201  17.7791
      -1.6943  3.2138 ];
B = [ -.5112  .5362
      -.002  -1.8470];
C = [ -3.2897  2.4544
      -13.5009  18.0745];
D = [-.5476  -.1410
     -.6459  .2958 ];

sys1 = tf(10,[1 5],'inputname','uc');
sys2 = ss(A,B,C,D,'inputname',{'u1' 'u2'},...
                    'outputname',{'y1' 'y2'});
sys3 = zpk(-1,-2,2);

sys = append(sys1,sys2,sys3);

Q = [3 1 -4
     4 3  0];

inputs = [1 2];
outputs = [2 3];

sysc = connect(sys,Q,inputs,outputs)
%----------------------------

So, und nun das Entscheidende. Zunächst mal die Ausgabe von meinen eigenen Berechnung:
%----------------------------
% Eigene Berechnung mit MATLAB, gekürzt auf die ersten beiden Matrizen
a =
            x1       x2       x3       x4
   x1       -5        0        0        0
   x2   0.8422  0.07664    5.601   0.3369
   x3   -2.901   -33.03    45.16    -1.16
   x4   0.9293   -16.97    22.71   -1.628
  
b =
            uc       u1
   x1        4        0
   x2        0   -0.076
   x3        0   -1.501
   x4        0  -0.8116
%----------------------------

Und jetzt die Ausgabe, die in der Hilfe angezeigt wird. Zu beachten ist, dass dort die Werte in Abhängigkeit der Zustandsvariable x4 abweichen, alle anderen sind gleich, abgesehen von Rundungsungenauigkeiten:

%----------------------------
% Ergebnis aus der Hilfe, gekürzt auf die ersten beiden Matrizen
a =
                        x1           x2           x3           x4
           x1           -5            0            0            0
           x2      0.84223     0.076636       5.6007      0.47644
           x3      -2.9012      -33.029       45.164      -1.6411
           x4      0.65708      -11.996        16.06      -1.6283
  
b =
                        uc           u1
           x1            4            0
           x2            0    -0.076001
           x3            0      -1.5011
           x4            0     -0.57391
%----------------------------

Was ist da los? Wie kann es zu diesen Abweichungen kommen? Ich hab die connect-Funktion übrigens in Maple nachgebaut, weil ich symboliche Werte benötige. Das Komische daran ist, dass die Maple-Ausgabe mit den Werte aus der Hilfeseite übereinstimmen!!

D.h. wenn ich bei der Umsetzung in Maple keine Fehler gemacht habe, dann ist die Matlab-Berechnung falsch. Oder kann es sein, dass falsche Einstellungen die Rechenweise ändern? Ich hab allerdings bei Matlab nach der Installation nichts verändert.

Dass die Funktion connect falsch rechnet, kommt mir allerdings auch unwahrscheinlich vor, dass hätte ja jem. merken müssen. Wo ist hier also der Haken an der Sache?

Danke für die Tipps!

Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt:
http://matheplanet.com/default3.html?topic=99692=41003
http://www.gomatlab.de/fehler-in-connect-control-system-toolbox-t1217.html

        
Bezug
connect Control System Toolb.: Gelöst! Fehler Zwischenergebn.
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:35 Fr 21.03.2008
Autor: TimJim

So, ich hab den Fehler an einer Stelle gefunden, die ich nicht vermutet habe :)

Wenn man das M-File nach sys = append(sys1,sys2,sys3) abbricht, dann merkt man, dass das berechnete System nicht dem in der Hilfe angegebenen (Zwischen-)System gleicht! In der Hilfe sind zwei Einträge mit +/-1.4142 in der Matrix, die eigentlich 2/-1 sein müssten.

Die Hilfeseite rechnet den connect-Befehl nun aber mit dem falschen(!) Zwischenergebnis weiter. Dadurch kommt es zu den Unterschieden. Meiner Maple-Funktion hab ich nun auch nur das falsche Zwischenergebnis zugeführt, da ich nur den connect-Befehl umgesetzt hatte und nicht den append-Befehl.

Fazit: connect rechnet natürlich richtig, sowohl bei Matlab als auch bei meiner Maple-Variante. Bei der Hilfeseite wird ein falsches Zwischenergebnis berechnet (warum auch immer). Dieses Zwischnergebnis wird in connect eingesetzt und richtig berechnet. Jedoch hat das nichts mehr mit dem Ausgangssystem zu tun, das mit append zusammengefügt wurde. Ende gut alles gut. Zwei Tage in den Sand gesetzt für diesen blöden Fehler in der Hilfe.

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]