2016-03-18 8 views
-2

Könnte mir jemand erklären, was ich in meinem Modell ändern muss?Warum bekomme ich diesen Fehler? (State Space)

Model

+0

ist diese Frage zur Programmierung wirklich? oder ist es so generisch, dass es zu allem gehören könnte, was Sie möchten ... – Farside

+0

Es tut mir leid, ich dachte, ich kann Fragen wie folgt in diesem Forum stellen ... – Bob

+0

Sie können klare und prägnante Fragen auf der Q & A-Website stellen , aber nicht sehr breite und unspezifische Fragen wie diese. Was ist los mit dir? Warum musst du etwas ändern? Was versuchst du zu erreichen? Irgendwelche Fehlermeldungen? Diese Screenshots sind etwas schwer zu sehen. Bitte versuchen Sie, nur die notwendigen Informationen und alle notwendigen Informationen anzugeben. –

Antwort

1

Die Fehlermeldungen sind ziemlich klar und selbsterklärend. Der Grund, warum Sie den Fehler erhalten, ist, weil B von Dimension 4x2 ist und Sie versuchen, B * Xr zu tun, wo Xr von Dimension 1 ist. Entsprechend Ihrer Gleichung müssen Sie B*U wo U = [dXr/dt; Xr]; tun. Die Verwendung des Differentialblocks ist in Simulink jedoch nie eine gute Idee, wenn Sie dies vermeiden können, insbesondere bei einer schrittweisen Eingabe. Denken Sie darüber nach, wie Sie die Eingaben für Ihren Zustandsraum formulieren möchten.

+0

Vielen Dank für Ihre Antwort. Es funktioniert jetzt. Können Sie mir vorschlagen, wie ich den Derivate-Block vermeiden kann? Wenn nein. Soll ich Matlab anstelle von Simulink verwenden? – Bob

+0

Im Moment habe ich zwei Eingänge U = [dXr/dt; Xr]. Vielleicht könnte ich die Geschwindigkeit dXr/dt vermeiden und nicht berücksichtigen? – Bob

+0

Die Ableitung einer Schritteingabe ist die Impulsfunktion, die numerisch nicht einfach ist. Können Sie verschiedene Eingaben verwenden oder Ihre Zustandsraumgleichungen neu schreiben, um zu vermeiden, dass Sie die Ableitung der Schritteingabe nehmen müssen? – am304