Ciao a tutti. Se definisco una funzione di trasferimento in Matlab (e ce l'ho quindi nel workspace) posso esportarla in qualche modo in Simulink senza bisogno di riscriverla di nuovo? C'è qualche blocchetto che lo fa?
Grazie a tutti
Matlab-Simulink
12 messaggi
• Pagina 1 di 2 • 1, 2
1
voti
Supponiamo di definire una funzione di trasferimento continua nel workspace di Matlab.
Se vogliamo estrarne il numeratore ed il denominatore possiamo impiegare la funzione tfdata.
Num e Den possono essere successivamente impiegati nel blocco Simulink denominato Transfer Fcn.
Una alternativa è quella di esprimere il sistema in variabili di stato tramite il seguente comando.
E successivamente utilizzare le quattro matrici inserendole nel blocco Simulink State Space.
Scegli in base all'analisi che devi fare ovvero se il sistema è a priori espresso in forma poli-zeri oppure in variabili di stato.
- Codice: Seleziona tutto
Gs = tf([1 1],[1 1 1])
Se vogliamo estrarne il numeratore ed il denominatore possiamo impiegare la funzione tfdata.
- Codice: Seleziona tutto
[Num,Den] = tfdata( Gs ,'v' )
Num e Den possono essere successivamente impiegati nel blocco Simulink denominato Transfer Fcn.
Una alternativa è quella di esprimere il sistema in variabili di stato tramite il seguente comando.
- Codice: Seleziona tutto
[Ac,Bc,Cc,Dc] = tf2ss( Num , Den )
E successivamente utilizzare le quattro matrici inserendole nel blocco Simulink State Space.
Scegli in base all'analisi che devi fare ovvero se il sistema è a priori espresso in forma poli-zeri oppure in variabili di stato.
Ingegneria : alternativa intelligente alla droga.
-

dimaios
30,2k 7 10 12 - G.Master EY

- Messaggi: 3381
- Iscritto il: 24 ago 2010, 14:12
- Località: Behind the scenes
0
voti
Grazie mille
dimaios. Vorrei chiederti un'altra cosa: per digitalizzare in Matlab ho il comando "c2d". Se voglio digitalizzare un sistema in Simulink dovrei mettere un campionatore per ottenere il sistema digitalizzato. Giusto? Ma questo blocchetto esiste? Come si chiama?
Mi risolveresti un grande problema.
Grazie mille
Mi risolveresti un grande problema.
Grazie mille
1
voti
Il blocco Zero-Order Hold potrebbe fare al caso tuo ma stai molto attento.
Infatti la correttezza dei risultati è legata anche al solutore.
Se guardi i Configuration Parameters .... di Simulink vedrai che puoi selezionare algoritmi a passo fisso o variabile discreti o con stati continui ( es. ODE45 ) ( guarda i parametri Solver e Type ).
Il passo di simulazione è fondamentale. Infatti deve essere sempre inferiore a quello di discretizzazione del sistema altrimenti non funziona più nulla.
Fondamentalmente ti consiglio questo.
Se devi simulare un sistema completamente discreto esegui la discretizzazione nel workspace Matlab e simula con Simulink utilizzando solutori discreti.
Se invece il sistema è un mix di funzioni di trasferimento continue e discrete allora utilizza lo Zero-Order Hold impostando correttamente i parametri di simulazione ed il Sample Time del blocco stesso.
Infatti la correttezza dei risultati è legata anche al solutore.
Se guardi i Configuration Parameters .... di Simulink vedrai che puoi selezionare algoritmi a passo fisso o variabile discreti o con stati continui ( es. ODE45 ) ( guarda i parametri Solver e Type ).
Il passo di simulazione è fondamentale. Infatti deve essere sempre inferiore a quello di discretizzazione del sistema altrimenti non funziona più nulla.
Fondamentalmente ti consiglio questo.
Se devi simulare un sistema completamente discreto esegui la discretizzazione nel workspace Matlab e simula con Simulink utilizzando solutori discreti.
Se invece il sistema è un mix di funzioni di trasferimento continue e discrete allora utilizza lo Zero-Order Hold impostando correttamente i parametri di simulazione ed il Sample Time del blocco stesso.
Ingegneria : alternativa intelligente alla droga.
-

dimaios
30,2k 7 10 12 - G.Master EY

- Messaggi: 3381
- Iscritto il: 24 ago 2010, 14:12
- Località: Behind the scenes
0
voti
2
voti
Infatti. Quando importi un modello discreto l'informazione sul periodo di campionamento è inclusa nella rappresentazione interna per cui il simulatore tratta la funzione di trasferimento in modo coerente.
Se hai un sistema discreto nel workspace e lo importi in Simulink tramite il blocco discrete Transfer Fcn puoi specificare la discretizzazione nella finestra associata al componente.
La conversione dei modelli ( continuo / discreto ) la devi fare nel workspace mentre l'adattamento dei segnali nello schema la puoi fare tramite il blocco zero-order hold se esiste un mix tra continuo e discreto. Attenzione a non confondere le cose.
Se hai un sistema discreto nel workspace e lo importi in Simulink tramite il blocco discrete Transfer Fcn puoi specificare la discretizzazione nella finestra associata al componente.
La conversione dei modelli ( continuo / discreto ) la devi fare nel workspace mentre l'adattamento dei segnali nello schema la puoi fare tramite il blocco zero-order hold se esiste un mix tra continuo e discreto. Attenzione a non confondere le cose.
Ingegneria : alternativa intelligente alla droga.
-

dimaios
30,2k 7 10 12 - G.Master EY

- Messaggi: 3381
- Iscritto il: 24 ago 2010, 14:12
- Località: Behind the scenes
1
voti
Non è previsto perché non avrebbe senso.
Simulink nasce come ambiente di simulazione e non come ambiente di sintesi.
E' per questo che devi sintetizzare il controllo nel workspace di Matlab.
Comunque ho riletto il post precedente dove hai scritto :
La risposta è no. La trasformazione di un sistema continuo in uno discreto non è il semplice campionamento dell'ingresso e dell'uscita ma qualcosa di molto più articolato. Ti consiglio di riguardare la teoria.
Simulink nasce come ambiente di simulazione e non come ambiente di sintesi.
E' per questo che devi sintetizzare il controllo nel workspace di Matlab.
Comunque ho riletto il post precedente dove hai scritto :
Se voglio digitalizzare un sistema in Simulink dovrei mettere un campionatore per ottenere il sistema digitalizzato. Giusto?
La risposta è no. La trasformazione di un sistema continuo in uno discreto non è il semplice campionamento dell'ingresso e dell'uscita ma qualcosa di molto più articolato. Ti consiglio di riguardare la teoria.
Ingegneria : alternativa intelligente alla droga.
-

dimaios
30,2k 7 10 12 - G.Master EY

- Messaggi: 3381
- Iscritto il: 24 ago 2010, 14:12
- Località: Behind the scenes
0
voti
Lo so che non si limita solo ad un campionatore. Ho detto così solo perché il prof. ci avevo disegnato lo schema a blocchi, nel quale per ottenere il sistema digitale ha messo il sistema continuo in ingresso ad un campionatore. Ma il prof. non ci ha detto cosa c'è dietro. Quali sono i concetti che dovrei vedere? Grazie mille
12 messaggi
• Pagina 1 di 2 • 1, 2
Torna a Programmi applicativi: simulatori, CAD ed altro
Chi c’è in linea
Visitano il forum: Nessuno e 5 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)
