Ich programmiere in der Regel in Python, aber für eine Zuordnung, ich bin mit Simulink. Ich wundere mich, warum die oben genannte Leiter elseif
keine schrittweise Erhöhung der Variablen [IP3] im Laufe der Zeit generiert. Was ich denke, es sollte tun, ist 0,01 bis t = 500 zurück, dann 0,03 bis t = 1000, dann 0,1 bis 1500, 1 bis 2000 und 10 von da an. Entschuldigung für das ältere Bild btw, habe ich die Variablen in der Zwischenzeit aktualisiert.inkrementelle Erhöhung einer Variablen über die Zeit
1
A
Antwort
1
Im Simulink-Modell, das Sie zeigte, wird elseif
Teile nie seit ausführen:
- wenn
u1>0
erfüllt ist, keine der anderen Bedingungen und somit überprüft werden, es immer zurückkehren werden0.01
für alleu1>0
. - Und wenn
u1<=0
, alle Bedingungen geprüft werden, aber keiner von ihnen wird zufrieden sein. (u1
kann nie kleiner als Null ist in Ihrem Fall alsu1
Zeit ist).
Dieses Verhalten ist in jeder Programmiersprache gleich.
Fixing Ihre If-elseif
Statements:
Sie müssen dies in der If
block hinzuzufügen:
Unter
If expression (e.g. u1 ~= 0)
, schreibe dies:u1>0 & u1<=500
Unter
Elseif expressions (comma-separated list, e.g. u2 ~= 0, u3(2) < u2):
, schreibt dies:u1>500 & u1<=1000, u1>1000 & u1<=1500, u1>1500 & u1<=2000, u1>2000
Seit u1
Zeit in Ihrem Fall ist, die nicht negativ sein können, können Sie wollen auch den else
Teil verwenden. Anstatt also den letzten Schritt können Sie auch dies tun:
Unter Elseif expressions (comma-separated list, e.g. u2 ~= 0, u3(2) < u2):
, schreibe dies:
u1>500 & u1<=1000, u1>1000 & u1<=1500, u1>1500 & u1<=2000
und verbinden Sie den Ausgang des else
Teil, der mit dem Ausgang des u1>2000
vor verbunden war.
Verwandte Themen
- 1. Unerklärliche Erhöhung der Variablen
- 2. Wahrscheinlichkeitsverteilung über die Zeit?
- 3. Best Practice: Instanzvariablen über die Zeit füllt
- 4. Abfrage finden Erhöhung über einen Zeitraum
- 5. Inkrementelle Schauspielerstatusreplikation?
- 6. Erhöhung der Größe einer Matrix
- 7. Können Sie inkrementelle Builds über Jenkins TFS konfigurieren
- 8. Winkelvergleichszeit über Variablen
- 9. Ändern eines Runable-Klassenattributs über die Zeit
- 10. Konvertieren einer UTC-Zeit über Zeitzonen
- 11. Inkrementelle Dateianhänge
- 12. Inkrementelle Prüfsummen
- 13. Übergabe einer Variablen an ein Powershell-Skript über die Befehlszeile
- 14. hohe Latenz auf die Erhöhung Fadenzahl
- 15. Keras RNN Verlust nicht über die Zeit
- 16. Android NDK inkrementelle Build
- 17. Inkrementelle Build mit MSBuild.exe
- 18. Variablen über die Funktion input() zuweisen
- 19. Vim inkrementelle Suche
- 20. Jenkins Publish Über SSH-Server Passwort geändert über die Zeit
- 21. Wie deaktiviere ich die inkrementelle Reparatur?
- 22. Take von einer Liste während der Erhöhung
- 23. Finding Weg längste Erhöhung in einer Matrix
- 24. VS-Code und inkrementelle Typoskripterstellung
- 25. Distinct Counting über Zeit
- 26. Funktionelle Programmiermethode, oder die meisten Pythonic Weg, über ein Array mit zwei benachbarten Variablen zu einer Zeit Schleife
- 27. Frage über PostgreSQL Bind-Variablen
- 28. Über den variablen Bereich?
- 29. Setzen Sie WebSphere-Variablen über die Eingabeaufforderung
- 30. An GNU-Variablen über die Befehlszeile anhängen
Scheint so, als wäre es einfacher gewesen, es mit [step functions] (https://www.mathworks.com/help/simulink/slref/step.html) und einem [max] (https: // www .mathworks.com/help/simulink/slref/minmax.html). – gnovice