Grafici parametrici con MATLAB

Strumenti informatici per la matematica applicata, le simulazioni, il disegno: Mathcad, Matlab, Scilab, Microcap, PSpice, AutoCad ...

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

Gidl
327 2 4 5
---
0
voti

[11] Re: Grafici parametrici con MATLAB

Messaggioda Gidl » 5 lug 2018, 8:45

Ti consiglio di usare il blocco to workspace per salvarti tutte le grandezze che ti interessano durante la simulazione; poi da Matlab fai eventuali elaborazioni.

Le grandezze sono salvate sotto forma di strutture che contengono 1) la base temporale della simulazione (Time), uguale per tutte le grandezze e 2) i valori della variabile che hai salvato per ogni instante temporale (Data) e altre informazioni aggiuntive (TimeInfo, DataInfo).

Se la variabile che salvi si chiama S, per accedere ai singoli campi devi utilizzare il punto; ad esempio, per plottare l'andamento della variabile nel tempo userai il comando

Codice: Seleziona tutto

plot(S.Time, S.Data)

In generale ti consiglio di prepararti uno script Matlab main.m che faccia partire la simulazione simulink e analizzi automaticamente i dati che ti interessando (mostrando grafici, facendo elaborazini etc etc).

Esempio:

Codice: Seleziona tutto

close all
clear all
clc

sim('nome_file.slx');

figure
plot(S.Time, S.Data);


Nota anche che nei blocchi Simulink puoi utilizzare, invece dei valori numerici, anche eventuali variabili che hai definito nel main.m, in modo da rendere tutto più leggibile.

Avatar utente
Foto UtenteSandroCalligaro
2.970 2 4 5
G.Master EY
G.Master EY
Messaggi: 1181
Iscritto il: 6 ago 2015, 19:25
0
voti

[12] Re: Grafici parametrici con MATLAB

Messaggioda Foto UtenteSandroCalligaro » 5 lug 2018, 12:03

Gidl ha scritto:Le grandezze sono salvate sotto forma di strutture che contengono 1) la base temporale della simulazione (Time), uguale per tutte le grandezze e 2) i valori della variabile che hai salvato per ogni instante temporale (Data) e altre informazioni aggiuntive (TimeInfo, DataInfo).
Il blocco "to workspace" è configurabile, e gli si può far generare anche un semplice vettore verticale coi valori. Considerando che si può ricavare anche il tempo (sources->clock), è molto comodo ed immediato usare il salvataggio come vettori, rispetto alle strutture (dipende poi anche dallo scopo).
In pratica ti trovi ad avere delle variabili che sono vettori con la sequenza dei campioni, tipo time, x, y ecc.

Gidl ha scritto:Nota anche che nei blocchi Simulink puoi utilizzare, invece dei valori numerici, anche eventuali variabili che hai definito nel main.m, in modo da rendere tutto più leggibile.
Direi che, per fare qualcosa di relativamente serio, è il modo corretto di lavorare.
Quello che faccio normalmente è creare uno script con un nome che richiami il file di simulazione (ad es. modello "AAA_01", script "SIM_AAA_01.m"), che apra il modello, imposti tutti i parametri (compreso il tempo di simulazione e magari il passo massimo di simulazione) e lo simuli.
Se poi dallo stesso file lanci anche la visualizzazione (generazione del grafico), ancora meglio...
Tutto questo serve (principalmente) ad evitare che, dopo un mese, non ti ricordi più cosa avevi fatto.
Qualcuno usa le callback functions del modello, ma a me non piace perché non è così esplicito, ed uno si ritrova a dover aprire le proprietà del modello per capire dove sono le impostazioni.

PS: Dal titolo del thread, a dire il vero, pensavo ti riferissi a tutt'altro, cioè a grafici che si aggiornano automaticamente al variare di un parametro.
A dire il vero, esiste in effetti anche la possibilità che, a comando o ad intervalli fissati, un grafico venga aggiornato con i risultati di una simulazione in corso :-)

Avatar utente
Foto UtenteIanero
8.069 5 8 11
Master EY
Master EY
Messaggi: 4320
Iscritto il: 21 mar 2012, 14:47
1
voti

[13] Re: Grafici parametrici con MATLAB

Messaggioda Foto UtenteIanero » 5 lug 2018, 20:07

Vi ringrazio ragazzi, sembra che ora ci sia riuscito. Nel caso vi rompo di nuovo :-)
:shock:

Avatar utente
Foto UtenteIanero
8.069 5 8 11
Master EY
Master EY
Messaggi: 4320
Iscritto il: 21 mar 2012, 14:47
0
voti

[14] Re: Grafici parametrici con MATLAB

Messaggioda Foto UtenteIanero » 27 lug 2018, 11:49

Altra domandina:

se, ad esempio, voglio imporre la corrente di un generatore attraverso un segnale proveniente dal Workspace, devo per forza conoscere in anticipo quante componenti ha il vettore t_out (tempo di simulazione)?
Questo magari si può fare se uso un solutore a step fisso, ma preferirei continuare a usare quello a step variabile.

Grazie in anticipo.
:shock:

Avatar utente
Foto UtenteIanero
8.069 5 8 11
Master EY
Master EY
Messaggi: 4320
Iscritto il: 21 mar 2012, 14:47
0
voti

[15] Re: Grafici parametrici con MATLAB

Messaggioda Foto UtenteIanero » 27 lug 2018, 15:38

Solved, i Constant Block accettano dati provenienti dal Workspace.
:shock:


Torna a “Programmi applicativi: simulatori, CAD ed altro”