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

Simulink: Matlab function block Problem mit Model explorer

 

Breningar
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 04.11.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2016, 11:20     Titel: Simulink: Matlab function block Problem mit Model explorer
  Antworten mit Zitat      
Moin,

ich vermute mal, dass ich ungefähr ahnen kann, wo mein Problem liegt. Ich weiß aber nicht ganz, wie ich das lösen soll. Auch die Hilfe von mathworks wirft bei mir leider mehr Fragen auf, als Antworten Confused

Folgendes einfaches Model habe ich in Simulink:



Der Code im Matlab function block sieht so aus:

Code:
function [ucos, usin]= sin_cos( w, nl, kTs)
l=1:nl;

ucos=cos(l*w*kTs);
usin=sin(l*w*kTs);


end

Dabei kommt dann aber leider folgende Fehlermeldung beim Simulieren:
Code:

Data 'ucos' is inferred as a variable size matrix, while its properties in the Model Explorer specify its size as inherited or fixed. Please check the 'Variable Size' check box and specify the upper bounds in the size field.

Component:MATLAB Function | Category:Codererror

Data 'ucos' is inferred as a variable size matrix, while its properties in the Model Explorer specify its size as inherited or fixed. Please check the 'Variable Size' check box and specify the upper bounds in the size field.

Component:Simulink | Category:Modelerror


Ok, also Model explorer suchen:
Gesagt, getan, also habe ich nun im Model explorer die beiden Werte ucos und usin mal auf double gesetzt und bekomme jetzt die Fehlermeldung:
Code:
Output 'ucos' has variable size but the upper bound is not specified; explicit upper bound must be provided.


Dann habe ich mal versucht im Model explorer unter Limit range eben ein Maximum einzugeben, aber die Fehlermeldung bleibt die gleiche. Und da weiß ich nun leider nicht mehr weiter.
Muss ich dem Ganzen im Modelexplorer eine Obergrenze geben? Muss ich im Matlab function block noch irgendetwas anderes definieren?
Ich habe über die Hilfe von mathworks zu dem Thema etwas gefunden, dass da heißt len = length(vals);, aber so ganz bin ich mir nicht sicher, ob die Länge da mit reinspielt?

Ich hoffe ich habe mal wieder nicht all zu laienhaft kryptisch wiedergegeben, wo mein Problem liegt und jemand kann und mag mir helfen.

Vielen Dank und LG

Bren
Private Nachricht senden Benutzer-Profile anzeigen
Verschoben: 16.11.2016, 12:16 Uhr von Jan S
Von Programmierung nach Simulink


Breningar
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 04.11.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2016, 14:09     Titel:
  Antworten mit Zitat      
So ich habe das Problem jetzt langsam aber sicher eingeschränkt.

Das Problem ist, dass ich nl für l=1:nl nutze.

In einer neuen Version habe ich das so:

Code:
function ucos = sin_cos( w, kTs)

x=zeros(5,1);
%l=0:1:nl

for l=1:5

x(l)=cos(l*w*kTs);
%usin=sin(l*w*kTs);
ucos=x;
end

end


Aber ich würde gerne statt der festen 5 eben eine Variable dort haben.
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.