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

Threshold

 

bensko
Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 01.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2013, 09:15     Titel:
  Antworten mit Zitat      
Hallo zusammen,

hab mich ja schon länger nicht gemeldet da ich keine Zeit hatte.

Ich hab noch eine Frage, stelle Sie hier rein da ich denke es lohnt sich nicht extra dafür ein neuen Thred zu öffnen.

Ich habe mir ein M-File geschrieben das folgendermassen aussieht

Code:
th=Threshold;
d=Delay*100;
Current_Value=length(Input);
Previous_Value=length(Input);
Diff=length(Input);
out=length(Input);

for i=1:1:length(Input);

Current_Value(i)=Input(i);

    if i<=d
        Previous_Value(i)=Current_Value(i);
    elseif i>d
        Previous_Value(i)=Input(i-d);
    end
   
Diff(i)=abs(Current_Value(i)-Previous_Value(i));

if Diff(i)>th
    out(i)=0;
else
    out(i)=1;
end

end


Dann als es funktioniert hat, habe ich versucht das in Simulink einzufügen, indem im Embedded Matlab Editor das reingeschrieben.

Code:
function out  = fcn(Threshold, Input , Delay)

th=Threshold;

.
.
.
.


    out(i)=1;
end

end

 


Wenn ich nun aber die Simulation laufen lasse, bekomme ich immer als output das signal True.
In Matlab bekomme ich True-False-True-False . . . . .


Jetzt ist meine Frage ob vielleicht es Probleme gibt bei den Zeilen oben length(Input), da während der simulation die grösse nicht festgelegt ist.


Also dieses skript soll machen:

Wenn sich das Eingangssignal "Input" über die Zeit "Delay" den Grenzwert "threshold" überschreitet, dann soll output=False sein

Sprich:

diff value = current value - previous value

TRUE >> diff value < threshold
FALSE >> diff value > threshold


Hoffe Ihr könnt mir weiterhelfen.

Danke
Private Nachricht senden Benutzer-Profile anzeigen
Gesplittet: 15.10.2013, 09:44 Uhr von Jan S
Von Beitrag Matrix mit vorhandenen Werte füllen aus dem Forum Programmierung


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 15.10.2013, 09:49     Titel:
  Antworten mit Zitat      
Hallo bensko,

Ich habe den Thread geteilt. Die Regel ist: Neue Frage, neuer Thread.

Wenn die gleiche Funktion unterschiedliche Outputs hat, bekommt sie unterschiedliche Inputs.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
bensko
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 01.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2013, 11:03     Titel:
  Antworten mit Zitat      
Vielen Dank Jan!

Gruss Benni
Private Nachricht senden Benutzer-Profile anzeigen
 
bensko
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 01.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2013, 15:59     Titel:
  Antworten mit Zitat      
Kann ich hier ein "Embedded MATLAB function" Block nehmen?

Habs mit ein S-Function Block versucht, aber da kommt eine Fehlermeldung dass ich ein Level 2 S-Function Block benutzen soll.

Hab ich gemacht, aber dann kommt die Fehlermeldung, dass er die Variablen nicht findet
Private Nachricht senden Benutzer-Profile anzeigen
Verschoben: 15.10.2013, 16:22 Uhr von denny
Von Programmierung nach Simulink
 
bensko
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 01.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2013, 08:08     Titel:
  Antworten mit Zitat      
keiner ein Tipp??
Private Nachricht senden Benutzer-Profile anzeigen
 
bensko
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 01.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2013, 10:05     Titel:
  Antworten mit Zitat      
Hey ich habe das Gefühl, das in den Embedded File unter Simulink die Arrays vordefiniert sein müssen. Kann mir das Jemand bestätigen?

Da aber die Länge je nach Messung sich bei mir ändert brauche ich diese funktion.

Kann ich mein Vorhaben dann mit eine S function Level 2 oder 1 ermöglichen??
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.