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

Matlabfile in Simulinkmodell umwandeln...

 

FlatEric
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 08.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2008, 13:08     Titel: Matlabfile in Simulinkmodell umwandeln...
  Antworten mit Zitat      
...Guten Tag liebe Community,

ich habe folgendes Problem. Ich habe mir ein MatlabFile geschrieben, was mir 200 Werte im Bereich von +5 bis -5 erzeugt.

Dann will ich diese Werte mit einem Klassifikator einen von 3 Stufen einteilen. D.h. ich habe 200 Werte und es wird dabei vielleicht nach 50 Werten die erste Stufe erreicht und nach 100 Werten die 2. Stufe und nach 150 Werten die 3. Stufe. Also im Grunde genommen ein einfacher Zähler, wie oft der Schwellwert getroffen wird und dann bei einer Anzahl x wird auf die nächste Stufe entschieden.

In matlab funktioniert das gut, nur in Simulink habe ich das noch nicht hinbekommen.

Hier der Matlab Quellcode:
-------------------------------------------
Code:

close all;
clear all;

c = 200;
b = 5;
a = 0;
LSD = (b-a)*rand(c,1);
figure; plot(LSD);

LSDLevel = 4;
PERCLOSLevel = zeros(c,1);
LSDCnt = 0;

for nn=1:size(LSD,1)
    if (LSD(nn,1) > LSDLevel) %LSDLEVEL = 300
      LSDCnt = LSDCnt + 1;
    end
   if (LSDCnt > 15)
      if (LSDCnt > 30)
         PERCLOSLevel(nn,1) = 3;
        else
         PERCLOSLevel(nn,1) = 2;
        end
    else
      PERCLOSLevel(nn,1) = 1;
    end % end of if
end % end of for

figure; plot(PERCLOSLevel);
 

-------------------------------------------

Ich wollte, dass Simulink dasselbe macht wie mein MatlabFile. Ich habe es deshalb so probiert:
In Simulink habe ich mir erst eine Sinusfunktion gemacht, weil ich nicht wusste wie man sowas wie Rauschen generiert. Dahinter habe ich eine EmbeddedMatlabFunction die so aussieht:

-------------------------------------------
Code:

% This block supports an embeddable subset of the MATLAB language.
% See the help menu for details.
function [PERCLOSLevel, LSDCnt]  = FatigueDetection(LSD)
   
    LSDLevel = 4;
    LSDCnt = 0
    PERCLOSLevel = 0;

if (LSD > LSDLevel)
    LSDCnt = LSDCnt+1;
end
if LSDCnt > 15
    if LSDCnt > 30
        PERCLOSLevel = 3;
    else
        PERCLOSLevel = 2;
    end
else
    PERCLOSLevel = 1;
end
end
 

-------------------------------------------
Vielleicht kann man das auch ohne die EmbeddedMatlabFunction machen, das weiß ich aber nicht.
Irgendwie komme ich da nicht auf einen Grünen Zweig???
Kann mir jemand helfen?

Danke für eure antworten.

MfG Eric[/code]
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.