|
|
Formel + Übergabe von Variablen in forschleife |
|
luep |

Forum-Anfänger
|
 |
Beiträge: 25
|
 |
|
 |
Anmeldedatum: 11.07.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.07.2014, 12:18
Titel: Formel + Übergabe von Variablen in forschleife
|
 |
|
 |
|
Hallo zsm,
ich bin neu hier + matlab, also schon einmal sorry wegen der vermutlich einfachen Fragen.
Aufgabenstellung:
ich habe folgende Gleichung:
y(k)=para(4)*u(k-1)+para(5)*u(k-2)+para(6)*u(k-3)+para(1)*y(k-1)+para(2)*y(k-2)+para(3)*y(k-3)
meine Parameter sind bekannt und greife ich drauf zu.
mein Vektor u soll folgendermassen aussehen:
u=[zeros(1,1);ones(7,1)] (kann aber auch anders sein Impulse,Rampe,etc.)
y ergibt sich ja dann, als anfangswert eben 0.
nun möchte ich mit einer for -Schleife die gleichung k-mal berechnen und in jeweils eine andere variable speichern.
PROBLEM:
wenn ich mit k=1 anfange, spuckt matlab logischerweise eine fehler aus, dass bspw. u(k-1) mit k=1 logisch nicht möglich ist bzw. nicht definiert.
Kann mir einer sagen, wie ich matlab sagen kann dass alle werte k=-... bzw 0 gleich Null sind?
Oder gibt es eine Schiebefunktion oder ähnliches?
Wäre für jede Hilfe Dankbar
Gruß
Zuletzt bearbeitet von luep am 11.07.2014, 12:43, insgesamt einmal bearbeitet
|
|
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 11.07.2014, 12:43
Titel:
|
 |
Hallo,
sowas?
Für einzelne Werte reicht auch nur max() ohne bsxfun.
Viele Grüße,
Nras.
|
|
|
luep |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 25
|
 |
|
 |
Anmeldedatum: 11.07.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.07.2014, 13:04
Titel:
|
 |
|
 |
|
mhhhh damit komm ich iwie nicht klar.. Trotzdem erstmal danke.
also ich versuchs noch einmal etwas besser zu schildern:
Das sind meine parameter:
para =
0.2237
-0.0655
0.3786
0.4680
0.1355
-0.3536
das ist inprinzip meine Matrix:
W =
0 0 0 0 0 0
0 0 0 1.0000 0 0
0.4910 0 0 1.0000 1.0000 0
0.7256 0.4910 0 1.0000 1.0000 1.0000
0.3873 0.7256 0.4910 1.0000 1.0000 1.0000
0.4835 0.3873 0.7256 1.0000 1.0000 1.0000
0.6246 0.4835 0.3873 1.0000 1.0000 1.0000
0.4961 0.6246 0.4835 1.0000 1.0000 1.0000
(Zahlen in den ersten drei spalten sind erst einmal alle 0 ; Zahlen stimmen so nicht mit den parametern überein, Spalte1,Zeile3 müsste 0.468 rauskommen)
die letzen 3 spalten ist ja mein eingang u.
am einfachsten wäre es ja, einfach y=para*W zu rechnen.
aber ich muss das y unbedingt so rechnen, dass die werte einzeln mit der Gleichung y(k)=para(4)*u(k-1)+para(5)*u(k-2)+para(6)*u(k-3)+para(1)*y(k-1)+para(2)*y(k-2)+para(3)*y(k-3) berechnet wird,
bis k=8 (in diesem Fall ist)
Meine idee war halt diese For-Schleife zu nutzen, aber dann habe ich das Problem mit dem Logikfehler k<=0.
Da ich diese Gleichung noch für weitere Eingänge u und bis zu k=200 berechnen muss wollte ich jetzt nicht rumfuschen und suche eine elegante lösung die sich auf viele unterschiedliche u's und k's anwenden lassen.
Zuletzt bearbeitet von luep am 11.07.2014, 13:20, insgesamt einmal bearbeitet
|
|
|
luep |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 25
|
 |
|
 |
Anmeldedatum: 11.07.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.07.2014, 13:19
Titel:
|
 |
Ich nochmal,
Danke für deine Hilfe ich hab es jetzt raus.
Gruß
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|