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

"From Workspace" bzw Simin

 

DonJuice
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 04.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.03.2009, 17:26     Titel: "From Workspace" bzw Simin
  Antworten mit Zitat      
Hi!

Ich benutze in Simulink den Block "From Workspace". In diesem lese ich im Parameterfeld "Data" mit dem Befehl koeff.signals.values(3,Smile einen Vektor der Länge 7 ein. Das Problem ist das er nur die Werte 2 bis 7 einliest also nur 6 Werte. Kann mir jemand bitte vielleicht helfen und sagen was ich falsch mache?

Version 2008b

Danke schonmal im vorraus.
Gruß DonJuice
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 16.03.2009, 18:57     Titel:
  Antworten mit Zitat      
Das könnte daran liegen, dass Simulink ein Konzept von t=0 (Simulationsstart) hat, MATLAB Variablen aber mit dem Element vector(1) und nicht vector(0) beginnen. Am sichersten ist es hier Zeitinformationen mit zu laden, entweder als 1xn MAtrix oder als Struktur.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
amin
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 11.05.09
Wohnort: Karlsruhe
Version: R2009b
     Beitrag Verfasst am: 12.05.2009, 16:32     Titel:
  Antworten mit Zitat      
Hallo,

ich habe auch ein mit dem "From Workspace":

also ich möchste die variabele simin einlesen:
Code:
size(simin)

ans =

           2       32767


Jedoch bekomme ich immer die Fehlermeldung:
Zitat:
Invalid matrix-format variable specified as workspace in ...... The matrix must have two dimensions and at least two columns. Complex signals of any data type and non-double reals signals must be in structure format. The first column must contain time values and the remaining columns the data values.

Hab´s sicherheitshalber auch schonmal tranponiert probiert, jedoch mit dem gleichen Fehler. Die Form ist [Zeit; Daten].
Private Nachricht senden Benutzer-Profile anzeigen
 
amin
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 11.05.09
Wohnort: Karlsruhe
Version: R2009b
     Beitrag Verfasst am: 13.05.2009, 16:29     Titel:
  Antworten mit Zitat      
Hallo,

hab´s hinbekommen.

Zurerst beides in die form: X 1 gebracht.

Danach beides erst in double konvertiert:
Code:


und anschliessend als Structure gespeichert:
Code:
simin.time=[zeit];
simin.signals.values=[signal];


Zuletzt bearbeitet von amin am 15.05.2009, 15:12, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
EteZabel
Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 06.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2009, 08:57     Titel: "From Workspace"
  Antworten mit Zitat      
Hallo,

ich habe ein ähnliches Problem. Ich habe mir ein Signal mit unterschiedlichen Amplituden, aus der Multiplikation einer Sinusfunktion mit konstanter Amplituden und einer zufälligen Treppenfunktion, generiert. Nun möchte ich dieses Signal in einem Simulink-Modell als Eingangssignal einbinden. Ich habe mir überlegt, dass dies mit "From Workspace" funktionieren müsste. Ich habe auch den Block "From Workspace" mit der Bezeichnung "simin" eingebaut und in der m-File folgenden Code programmiert.

Code:

t=0:0.01:9.99;%Zeitvektor
esignal3=esignal1.*esignal2;%Multiplikation der Signale
double(esignal3);
double(t);
simin.time=[t];
simin.signals.values=[esignal3];
 


Wenn ich jedoch das Programm "laufen lasse" sind am Eingang des Modells nur die einzelnen Werte des Signal ganz unabhängig voneinander zu sehen. Wie bekomme ich das Signal, wirklich als Signal, auf den Eingang???

Wäre super nett, wenn jemand mir helfen könnte. Danke.

Gruß,
EteZabel
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
amin
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 11.05.09
Wohnort: Karlsruhe
Version: R2009b
     Beitrag Verfasst am: 15.05.2009, 15:09     Titel:
  Antworten mit Zitat      
Also ich hab´s zwar bei mir auch nur mit Mühe und noot hinbekommen (daher ohne Garantie das es laufen wird), aber versuch mal folgendes:
beevor du das als Structure anlegst, würde ich die erstmal kontrollieren, ob die beiden Arrays auch gleich aufgebaut sind, also:
Code:

Und ansonsten das Zeit dementsprechend verlängern/verkürzen oder/und transponieren.
Ich habe im übrigen meine in der Form X 1 und nicht in 1 X. Weis aber nicht ob das sein muss in dem Fall einfach mal transponieren:
Code:
t=t';
esignal3=esignal3';

Des weiteren habe ich meinen Zeit bei 1 starten lassen, da ich mal gelesen habe, das dies bei Matlab so üblich wäre (eventuell auch nen Versuch wert).
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2009, 13:26     Titel:
  Antworten mit Zitat      
Hallo,
auch ich habe ein ähnliches Problem. Stehe aber noch weit am Anfang Wink. Habe eine .mat Datei mit verschiedenen Signalen und möchte diese in Simulink als Eingangssignal verarbeiten. Im Workspace sind es also 2 Spalten: einmal die Zeit in Sekunden und einmal das Signal. Wie erstelle ich hieraus die Variable simin?

Danke für eure Hilfe!
 
EteZabel
Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 06.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2009, 15:11     Titel: Re: Signal
  Antworten mit Zitat      
Hallo,
so kannst Du die Variable mit Deinem Signal beschreiben.

Code:

simin.time=[t];
simin.signals.values=[signal];
 
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
amin
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 11.05.09
Wohnort: Karlsruhe
Version: R2009b
     Beitrag Verfasst am: 04.06.2009, 10:44     Titel:
  Antworten mit Zitat      
Hallo,

also wenn du dein eingelesenes mat File die variabe mein_mat gibst und die erste spalte die Zeit ist und die 2. das Signal, würde es folgendermasen gehen:

Code:
t=double(mein_mat(:, 1));
signal=double(mein_mat(:, 2));
simin.time=[t];
simin.signals.values=[signal];
Private Nachricht senden Benutzer-Profile anzeigen
 
Blub08
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 13.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.08.2009, 11:47     Titel:
  Antworten mit Zitat      
Vielen Dank für eure Hilfe! Ich habe eure obigen Tips gut nutzen können! Jetzt funktioniert es auch Smile.

Allerdings habe ich noch eine Warnung:


Code:
Warning: The model 'DarstellenV1' does not have continuous states, hence
Simulink is using the solver 'FixedStepDiscrete' instead of solver 'ode3'.
You can disable this diagnostic by explicitly specifying a discrete solver
in the solver tab of the Configuration Parameters dialog, or by setting
the 'Automatic solver parameter selection' diagnostic to 'none' in the
Diagnostics tab of the Configuration Parameters dialog.


Kann ich die ignorieren oder muss ich die simin-Parameter für den From Workspace Block anders konfigurieren?
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.