MATLAB-SIMULINK
This presentation is the property of its rightful owner.
Sponsored Links
1 / 136

MATLAB-SIMULINK PowerPoint PPT Presentation


  • 143 Views
  • Uploaded on
  • Presentation posted in: General

MATLAB-SIMULINK. Simulink. Ing. Alessandro Pisano [email protected] Bergamo, 17-19/11/2009 . Indice. 3 7 9 11 16 20 27 28 31 37 40 43 44 59 63 68 73 81 85 90 99 109 112 123 133. Introduzione Librerie e blocchi elementari (1) Realizzazione di un modello

Download Presentation

MATLAB-SIMULINK

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Matlab simulink

MATLAB-SIMULINK

Simulink

Ing. Alessandro Pisano

[email protected]

Bergamo, 17-19/11/2009


Matlab simulink

Indice

3

7

9

11

16

20

27

28

31

37

40

43

44

59

63

68

73

81

85

90

99

109

112

123

133

Introduzione

Librerie e blocchi elementari (1)

Realizzazione di un modello

Esempio: costruzione e visualizzazione di una sinusoide

Scelta del solutore

Modifica delle impostazioni predefinite

Utilizzo di variabili dal workspace

Librerie e blocchi elementari (2)

Esportazione dati verso il Workspace e su file esterno

Esempio: filtro passa basso

Integratore

Esecuzione automatizzata di test

Analisi spettrali (FFT)

Filtraggio digitale

Esempio: sistema termico ad 1 e 2 gradi di libertà

Utilizzo di blocchi Trasnferfunction

Esempio: Simulazione di un sistema di regolazione di temperatura

Creazione di sottosistemi

Mask

Esempio Distribuzione di temperatura nel rotore di una turbina

Realizzazione di sistemi MIMO LTI

Variabili popup e checkbox

Esempio: sistema di frenatura con ABS

Embedded Matlab Function

Toolbox avanzati. SimMechanics e SimDriveline


Matlab simulink

Finestra di avvio (v. 7.8.0)

EditorM-files

Avvio SIMULINK

Cartella corrente


Matlab simulink

Programmazione dei modelli di simulazione per via grafica


Matlab simulink

Possibilità di suddividere il modello complessivo in sottosistemi paralleli o embricati (un sottosistema può essere importato direttamente in un modello di simulazione differente)

Possibilità di definire finestre di parametrizzazione (Masks)

Esportazione nel workspaceMatlab dei risultati della simulazione

Esecuzione automatizzata di test

Toolbox avanzati: SimDrivelline e SimMechanics


Matlab simulink

Avvio SIMULINK

New

Librerie principali


Matlab simulink

Libreria “Commonlyusedblocks”


Matlab simulink

Libreria “Sinks”

Libreria “Sources”


Matlab simulink

Realizzazione di un modello Simulink

Pagina di lavoro


Matlab simulink

Realizzazione di un modello Simulink

3 fasi

1. Importare nella pagina di lavoro i blocchi elementari Simulink necessari, trascinandoli con il mouse dalla rispettiva libreria (drag-and-drop)

2. Parametrizzare i blocchi Simulink nelle rispettive finestre di parametrizzazione, alle quali si accede dalla pagina di lavoro facendo doppio click con il mouse sopra il blocco stesso.

3. Collegare tra loro i blocchi Simulink tracciando le opportune linee di interconnessione in modo da realizzare le funzionalità desiderate


Matlab simulink

Esempio introduttivo:costruzione e visualizzazione di un segnale sinusoidale

Sono sufficienti due blocchi elementari: un blocco che generi il segnale desiderato, ed un blocco che ne permetta la visualizzazione.

Il primo blocco lo troveremo nella libreria “Sources” (blocco SineWave),

Il secondo blocco (bloccoScope), si trova nella libreria “Sinks”.

I blocchi necessari vanno importati nella pagina di lavoro Untitled trascinando con il mouse (drag-and-drop) l’icona del blocco all’interno della pagina di lavoro. Il risultato di tale procedura è mostrato in Figura.

Salvare il modello e attribuire un nome al file con estensione .mdl


Matlab simulink

Si deve ora collegare l’uscita del generatore di funzione “SineWave” con l’ingresso del blocco di visualizzazione “Scope”.

Per effettuare un collegamento tra due blocchi vi è una procedura rapida. Si deve selezionare il blocco di origine (cliccandovi sopra), e si deve successivamente selezionare il blocco di destinazione con il tasto ctrl premuto.

Un collegamento correttamente eseguito viene indicato come in Figura

In alternativa, si può portare la freccia del mouse nel punto di origine del collegamento e quindi “tracciarlo” tenendo premuto il tasto sinistro del mouse, portandosi fino al punto di destinazione.


Matlab simulink

Devono ora essere impostati i parametri di ampiezza, frequenza e sfasamento che definiscono la particolare sinusoide che si desidera generare. A tal fine è necessario fare doppio click sul blocco “SineWave”, e come risultato si apre una finestra di dialogo all’interno della quale vanno impostati i parametri di funzionamento.

Ampiezza

Bias

Frequenza

Sfasamento

Tasto OK


Matlab simulink

Si deve ora impostare la durata (cioè l’intervallo temporale) della simulazione.

La durata si può impostare direttamente dai menù della pagina di lavoro

Tasto RUN

Durata

(valore di default 10.0)

Cliccando sul tasto RUN viene eseguita la simulazione.

Dopo che è stata eseguita la simulazione si può visualizzare il segnale generato cliccando sul blocco Scope.


Matlab simulink

  • Ora si aumenti la frequenza della sinusoide da 1 rad/s a 2 rad/s

  • Si ripeta la simulazione. Si ri-aggiorni il grafico della finestra grafica Scope

  • cliccando sul pulsante

  • nella barra dei menu della finestra Scope

  • Grafico “spigoloso”

  • Si deve andare a modificare il “metodo di integrazione”, che definisce il passo di discretizzazione temporale che viene impiegato nella simulazione del modello.


Matlab simulink

  • Il metodo di integrazione (Solver) si imposta selezionando il menu della pagina di lavoro Simulation->ConfigurationParameters


Matlab simulink

  • La scelta del solutore con il quale di risolvono numericamente le equazioni differenziali del modello è ovviamente irrilevante per il semplice esempio in esame che non coinvolge alcun legame differenziale.

  • Il motivo della spigolosità del grafico sta nel fatto che il metodo proposto di default (ode45 a passo variabile) ha “scelto” dei passi di discretizzazione temporale piuttosto elevati, e sono stati quindi generati “pochi campioni” del segnale

  • In modelli di simulazione complessi, la scelta del solutore numerico (Runge-Kutta, Dormand-Prince, Eulero,…) e delle relative caratteristiche (passo fisso/variabile, etc) va fatta con criterio.


Matlab simulink

  • Runge-Kutta e Dormand-Prince sono degli ottimi solutori “general-purpose”.

  • Per simulazioni “multi-domain” con la copresenza di costanti di tempo molto differenti tra loro sono consigliati i metodi a passo variabile dedicati ai problemi Stiff (es. ode15s/stiff).

  • Per simulazioni con elementi discontinui (non-smoothdynamics) i metodi a passo variabile talvolta forniscono risposte non veritiere. Il solutore Eulero a passo fisso, con un passo sufficientemente piccolo, è ritenuto affidabile per sistemi non-smooth.

  • Si scelga il solutore ode1 (Eulero) a passo fisso, e se ne imposti il Fixed-Stepsize a 0.001


Matlab simulink

  • Considerazioni aggiuntive

  • Una scelta ottimale per il solutore bilancia, per il problema in esame, la precisione della soluzione e la mole di calcoli richiesta, che influenza il tempo di simulazione.

  • Per identificare un solutore adeguato serve esperienza. Il passo di campionamento deve essere commisurato alla rapidità di variazione dei segnali in gioco. Quando si sceglie un solutore a passo variabile si può pensare di introdurre un limite massimo per il passo adattativo.

  • Quando il modello non contiene stati continui (non vi sono cioe blocchi “dinamici” come Integratori, blocchi Transfer Fcn, etc.) Simulink usa il solutore “discrete” anche se viene specificato un solutore differente,.


Matlab simulink

  • Modifica delle impostazione predefinite per i filesSimulink all’apertura


Matlab simulink

  • Modificare le Solver Optionscome in figura


Matlab simulink

  • Modificare le Data Import/Export Optionscome in figura


Matlab simulink

  • Si ripeta la simulazione e si riaggiorni il grafico

  • Il grafico della sinusoide è ora correttamente rappresentato.

  • In base alla scelta fatta per il passo fisso del solutore, vengono ora generati, e interpolati dal grafico, 1000 campioni per ogni secondo di evoluzione del segnale.

  • La sinusoide viene però mostrata a partire dall’istante t=5.

  • Sono stati “persi” i campioni precedenti.

  • Il motivo è che, al fine di non saturare rapidamente la memoria del programma, vige in Simulink una impostazione di default in base alla quale nei blocchi di tipo Scope vengono visualizzati e mantenuti in memoria solo gli ultimi 5000 campioni del segnale.


Matlab simulink

  • Per modificare tale impostazione per uno specifico blocco si deve cliccare sul pulsante Parameters nella finestra del blocco Scope

  • La finestra “Scope Parameters” ha due sottomenu: “General” e “Data History”.

  • Dal sottomenu Data History si deve disselezionare la check-box “Limit data pointsto last ..”


Matlab simulink

  • Ora ripetendo la simulazione e riaggiornando il grafico la sinusoide viene visualizzata per intero

  • Per visualizzare un segnale costituito dalla somma di tre sinusoidi importiamo nella pagina di lavoro due nuove istanze del blocco elementare SineWave, ed importiamo anche un blocco che rappresenti un nodo sommatore (blocco Sum dalla libreria dei CommonlyUsedBlocks)


Matlab simulink

  • Il blocco Sum deve essere preliminarmente parametrizzato specificando il numero di segnali in ingresso, ed il segno con il quale concorrono alla sommatoria, per mezzo di una stringa (es. +++ +)

  • Scegliamo +++

  • L’aspetto del blocco diventa

  • Dopo aver cancellato la linea di collegamento preesistente tra il primo blocco SineWave ed il blocco Scope, si realizzi la connessione riportata in Figura.


Matlab simulink

  • Ora si possono assegnare i parametri di ampiezza, frequenza, bias e sfasamento, delle tre sinusoidi, rieseguire la simulazione e visualizzare il grafico prodotto dal blocco Scope .

  • Tutte le variabili definite nel workspace di Matlab sono disponibili e accessibili da parte dei blocchi Simulink.

  • I parametri di un modello possono essere espressi utilizzando delle variabili (es. A1,f1,b1, …) alle quali si può assegnare un valore con un file script Matlab da eseguirsi prima della esecuzione della simulazione.

A1=1;

f1=1;

b1=5;

phi1=0;

A2=4;

f2=pi;

b2=2;

phi2=pi/2;

A3=1;

f3=4*pi;

b3=2;

phi3=0;

  • Il modello può essere in questo modo riparametrizzato con estrema facilità.


Matlab simulink

Libreria “Continuous”

Libreria “Discontinuities”

Libreria “Discrete”


Matlab simulink

Libreria “LookupTables”

Libreria “Mathoperations”


Matlab simulink

Libreria “ModelVerification”

Libreria “Signalrouting”


Matlab simulink

  • Vediamo come esportare in Matlab i dati prodotti eseguendo i modelli Simulink.

  • Serve il blocco ToWorkspacedalla libreria Sinks

  • Il blocco ToWorkspace riceve in ingresso il segnale (scalare o vettoriale) che salva nel workspace. Il blocco si interconnette agli altri come in Figura.

  • Per tracciare un collegamento a partire da un collegamento preesistente si deve portare il mouse nel punto di diramazione, premere il tasto destro, e poi allontanarsi e tracciare il collegamento tenendo il tasto destro premuto, fino a giungere al punto di destinazione del collegamento


Matlab simulink

  • Il blocco ToWorkspaceva parametrizzato specificando il nome della variabile che verrà creata nel workspace di Matlab (scegliere y) ed il formato di salvataggio (è opportuno modificare il formato di default Structure e selezionare invece Array) .

  • Per ottimizzare l’impiego della memoria del programma si può anche impostare un fattore intero di decimazione (es. con decimation = 10 i dati vengono salvati nel workspace con uno step temporale 10 volte superiore, quindi si avranno meno elementi nel vettore y).

  • Si mantenga il valore unitario di default.

  • Il vettore dei tempi viene salvato di default sotto forma di array con il nome tout.

  • Bisogna però disabilitare una impostazione che limita a 1000 il numero massimo di elementi per tout. Si deve andare ne Simulation->ConfigurationParameters, e nel menu Data Import/Export disselezionare la check-boxLimit Data Pointsto Last


Matlab simulink

  • Lanciando la simulazione vengono creati nel workspace di Matlab gli arrayy e tout.

  • Verificarlo digitando il comando whos

  • Si può visualizzare in Matlab il grafico del segnale con il comando

plot(tout,y),grid


Matlab simulink

  • Esportazione su file dei dati prodotti da modelli Simulink.

  • Se si desidera che i dati siano non solo esportati nel workspace di Matlab ma anche salvati in modo permanente su un file, si può generare un file dati nel formato binario .mat con il blocco To File, dalla libreria Sinks

  • I files con estensione mat sono detti mat-files.

  • Il blocco deve essere parametrizzato specificando nella apposita finestra di configurazione:

  • Il nome (comprensivo dell’estensione) del mat-file

  • che verrà creato (es. y_test1.mat).

  • Il nome che verrà assegnato alla variabile

  • quando il mat-file sarà successivamente

  • aperto in Matlab (scegliere y)

  • E’ possibile impostare una decimazione dei dati.

  • Se si sceglie una “Decimation” > 1 è bene generare anche un vettore dei tempi “sincrono” con la variabile sottocampionata


Matlab simulink

  • Lanciare la simulazione, e verificare come nella cartella di lavoro sia ora presente il file y_test1.mat

  • Possono essere esportati segnali vettoriali. Per mezzo del blocco Mux (libreria CommonlyUsedBlocks) si possono “aggregare” i tre segnali sinusoidali in un unico segnale vettoriale con tre componenti.


Matlab simulink

  • La struttura interna dei mat-files prevede la memorizzazione dei dati in una struttura rettangolare

  • I mat-files possono essere aperti successivamente in Matlab con il comando load.

>> load y_test1

  • Viene generata nel workspace di Matlab una variabile matriciale avente il nome specificato nella finestra di configurazione del blocco To File e la struttura rettangolare riportata sopra.


Matlab simulink

  • Filtro passabasso

  • Consideriamo un filtro passa-basso RC

+

Vin

Vout

  • Equazione differenziale

  • Equazione differenziale esplicitata rispetto

  • alla derivata di ordine più elevato

  • Posso realizzare uno schema di simulazione utilizzando un blocco Integrator, un blocco Sum e un blocco Gain, oltre che ovviamente un generatore di segnale per costruire la tensione di ingresso ed un blocco Scope per visualizzare la tensione di uscita.


Matlab simulink

  • Modello Simulink.

  • Grazie al blocco Mux è possibile visualizzare i segnali Vin e Vout nel medesimo blocco Scope. Inseriamo anche un blocco “ToWorkspace” (nome variabile vout, tipo array)

  • Assegniamo un valore ai parametri scrivendo un semplice script

R=1e4; % 10k Ohm

C=1e-5; % 10 pF

  • La costante di tempo del filtro vale RC=0.1 s


Matlab simulink

  • Finestra di parametrizzazione del SignalGenerator.

  • 4 tipologie di segnali disponibili (sinusoidale, onda quadra, dente di sega, random)

  • Il filtro può essere implementato in forma più compatta mediante un blocco Transfer Function

  • Rappresentazioni equivalenti

Si devono specificare i coefficienti dei polinomi a numeratore e denominatore della FdT utilizzando la notazione Matlab per la rappresentazione dei polinomi


Matlab simulink

  • Integratore

  • Nella finestra di parametrizzazione dell’integratore il parametro piu importante da settare è la condizione iniziale (InitialCondition), che di default viene impostata pari a zero

  • Se l’integratore riceve in ingresso un segnale vettoriale, genera in uscita un vettore di pari dimensione che contiene l’integrale delle diverse componenti del vettore di ingresso

  • Possono essere introdotte saturazioni inferiori e/o superiori sulle uscite dell’integratore.

  • Può essere anche applicato un reset sull’uscita del’integratore. Il reset riporta l’uscita dell’integratore al valore della condizione iniziale


Matlab simulink

  • Integratore con ingresso vettoriale

  • Condizioni iniziali diverse per le uscite


Matlab simulink

  • Integratore con saturazione superiore


Matlab simulink

  • Esecuzione automatica di test

  • Il seguente codice lancia in sequenza due simulazioni con valori diversi dei parametri R e C, memorizza la Vout nelle due prove nei vettori y1 ed y2, e traccia dei grafici delle varie soluzioni in tre finestre grafiche distinte

% VERIFICA CHE IL MODELLO SIA APERTO, E IN CASO CONTRARIO LO APRE

ifisempty(find_system('Name','filtropassabasso'))

open_system('filtropassabasso')

end

R=1e4; % 10k Ohm

C=1e-5; % 10 pF

sim('filtropassabasso');

y1=vout;

figure(1)

plot(tout,vout)

R=1e4; % 10k Ohm

C=2e-5; % 20 pF

sim('filtropassabasso');

y2=vout;

figure(2)

plot(tout,vout)

figure(3)

plot(tout,y1,tout,y2)

  • IMP. Utilizzo della funzione sim(‘model’)


Matlab simulink

  • Risposte in frequenza e analisi spettrali

  • Impariamo ora a visualizzare la risposta in frequenza di filtri lineari, e a visualizzare lo spettro di frequenza di un segnale campionato.

  • Per il filtro considerato

  • Le seguenti istruzioni richiedono all’utente l’inserimento da tastiera dei parametri R e C

R=input('Inserire il valore di R [Ohm] (valore consigliato: R=1e4): \n');

C=input('Inserire il valore di C [Farad] (valore consigliato C=1e-5): \n');

  • Con i valori consigliati per R e C, la pulsazione di taglio è pari a 1/RC = 10 rad/sec  ft=1.6 Hz

omega_t=1/(R*C);

disp(['La frequenza di taglio è: ', num2str(omega_t/(2*pi)),‘ rad/sec']);


Matlab simulink

  • Posso definire in Matlab un oggetto di tipo “Transfer Function”

  • e visualizzarne quindi la sua risposta in frequenza (più precisamente: i diagrammi semilogaritmici del modulo in dB e della fase della Funzione di Risposta Armonica F(jw) in funzione della pulsazione w) con il comando Bode

bode(F),grid;

  • Cambiamo il valore della costante di tempo RC, e ritracciamo i diagrammi


Matlab simulink

  • Ora riferiamoci allo schema modificato

  • Il generatore di segnali è sostituito da un blocco Fcn (libreria User-DefinedFunctions) che riceve in ingresso il segnale prodotto dal blocco Clock (libreria Sources) , cioè il tempo corrente.

  • Il blocco ToWorkspace scrive la variabile out, di tipo array.

  • Il blocco Fcnpuo implementare una qualunque funzione statica, e si parametrizza compilando, nella apposita finestra di configurazione del blocco, una casella di testo in linguaggio Matlab, con la variabile standard “u” che denota la variabile in ingresso al blocco

  • Il codice A1*sin(omega1*u)+A2*sin(omega2*u) definisce un segnale somma di due sinusoidi con ampiezza e pulsazione parametrizzate dai coefficienti A1, omega1, A2, omega2.

  • Il blocco Fcn consente di implementare facilmente segnali con una espressione analitica anche complessa, che potrebbero richiedere un elevato numero di blocchi elementari.


Matlab simulink

  • Assegniamo un valore alle costanti.

A1=1;

omega1=1.6*(2*pi); %rad/s (pari alla pulsazione di taglio)

A2=0;

omega2=0;

  • Vogliamo visualizzare l’ingresso e l’uscita del filtro, ed i relativi spettri di potenza

figure(1)

plot(tout,out(:,1),'k',tout,out(:,2),'k--'),grid,

title('Segnale di ingresso V_{in} e segnale di uscita V_{out}'),

xlabel('Tempo [s]'),

legend('V_{in}','V_{out}')

axis([0 10 -2 2])

  • ZOOM


Matlab simulink

  • Si salvi nella cartella di lavoro il seguente codice nel file spettro.m

function spettro(t,x,n)

% calcolo del vettore delle frequenze

f=0:1/t(length(t)):1/t(2);

f=f';

% calcolo della Fast Fourier Transform

Y=fft(x);

% calcolo dello densità spettrale di potenza normalizzato

% che permette di ottenere un'ampiezza unitaria dello spettro

% per una sinusoide di ampiezza unitaria

P=2*abs(Y)/length(Y);

% creazione grafico nella finestra n-esima

figure(n),

plot(f(1:ceil(length(f)/2)),P(1:ceil(length(P)/2)))

xlabel('Frequenza [Hz]')

ylabel('X(j2 \pi f)')

title('Spettro di potenza normalizzato')

  • La funzione spettro riceve come argomenti, nell’ordine: il vettore dei tempi, il vettore del segnale, ed il numero della finestra nella quale tracciare il diagramma


Matlab simulink

  • Ora si può utilizzare la funzione spettro() per produrre i grafici desiderati

>>spettro(tout,out(:,1),1), axis([0 3 0 1.1])

>>spettro(tout,out(:,2),2), axis([0 3 0 1.1])

  • Vin

  • Vout


Matlab simulink

  • Per ottenere uno spettro maggiormente fedele a quello, ideale, a larghezza nulla, si deve aumentare il tempo di simulazione.

  • Vin

  • Vout

  • Tsim=100

  • Vin

  • Vout

  • Tsim=10


Matlab simulink

  • Si salvi nella cartella di lavoro il seguente codice nel file spettro2.m

function [freq data]=spettro2(t,x)

% calcolo del vettore delle frequenze

f=0:1/t(length(t)):1/t(2);

f=f';

% calcolo della Fast Fourier Transform

Y=fft(x);

% calcolo dello densità spettrale di potenza normalizzato

% che permette di ottenere un'ampiezza unitaria dello spettro

% per una sinusoide di ampiezza unitaria

P=2*abs(Y)/length(Y);

freq=f(1:ceil(length(f)/2));

data=P(1:ceil(length(P)/2));

  • Rispetto alla funzione spettro, la funzione spettro2 non produce il grafico, ma restituisce all’esterno i due vettori che consentono di produrre il grafico successivamente (ad esempio, all’interno di una struttura subpplot)


Matlab simulink

  • Analizziamo il seguente codice

[F,X]=spettro2(tout,out(:,1));

figure(4),

subplot(2,1,1),

plot(tout,out(:,1)),title('Segnale di ingresso'), xlabel(‘Tempo[s]')

grid,axis([0 10 -1.5 1.5])

subplot(2,1,2)

plot(F,X),grid

xlabel('Frequenza [Hz]')

ylabel('X(j2 \pi f)')

title('Spettro di potenza normalizzato')

axis([0 5 0 1.1])

[F,X]=spettro2(tout,out(:,2));

figure(5),

subplot(2,1,1),

plot(tout,out(:,2)),title('Segnale di uscita'), xlabel(‘Tempo[s]')

grid,axis([0 10 -1.5 1.5])

subplot(2,1,2)

plot(F,X),grid

xlabel('Frequenza [Hz]')

ylabel('X(j2 \pi f)')

title('Spettro di potenza normalizzato')

axis([0 5 0 1.1])


Matlab simulink

  • L’output del precedente codice è il seguente

  • Concludiamo questo esempio puntualizzando come il modello possa essere reso completamente parametrizzabile e gestibile da script avendo cura di specificare le grandezze come la durata della simulazione, le condizioni iniziali degli integratori, il passo di discretizzazione, etc, per mezzo di costanti simboliche.

  • Definiamo la variabile Tsim


Matlab simulink

  • Analizziamo il seguente codice

% VERIFICA CHE IL MODELLO SIA APERTO, E IN CASO CONTRARIO LO APRE

ifisempty(find_system('Name','filtropassabasso2'))

open_system('filtropassabasso2')

end

A1=1;

omega1=1.6*(2*pi);

A2=0;

omega2=0;

Tsim=20;

sim('filtropassabasso2');

[F,X]=spettro2(tout,out(:,1));

figure(6),

subplot(4,1,1),

plot(tout,out(:,1)),title('Segnale di ingresso'), xlabel('Tempo[s]')

grid,axis([0 10 -1.5 1.5])

subplot(4,1,2)

plot(F,X),grid

xlabel('Frequenza [Hz]')

ylabel('X(j2 \pi f)')

title('Spettro di potenza normalizzato')

axis([0 5 0 1.1])

[F,X]=spettro2(tout,out(:,2));

subplot(4,1,3),

plot(tout,out(:,2)),title('Segnale di uscita'), xlabel('Tempo[s]')

grid,axis([0 10 -1.5 1.5])

subplot(4,1,4)

plot(F,X),grid

xlabel('Frequenza [Hz]')

ylabel('X(j2 \pi f)')

title('Spettro di potenza normalizzato')

axis([0 5 0 1.1])


Matlab simulink

  • Analizziamo il seguente codice (cont.)

A1=1;

omega1=3*(2*pi);

A2=0;

omega2=0;

Tsim=20;

sim('filtropassabasso2');

[F,X]=spettro2(tout,out(:,1));

figure(7),

subplot(4,1,1),

plot(tout,out(:,1)),title('Segnale di ingresso'), xlabel('Tempo[s]')

grid,axis([0 10 -1.5 1.5])

subplot(4,1,2)

plot(F,X),grid

xlabel('Frequenza [Hz]')

ylabel('X(j2 \pi f)')

title('Spettro di potenza normalizzato')

axis([0 5 0 1.1])

[F,X]=spettro2(tout,out(:,2));

subplot(4,1,3),

plot(tout,out(:,2)),title('Segnale di uscita'), xlabel('Tempo[s]')

grid,axis([0 10 -1.5 1.5])

subplot(4,1,4)

plot(F,X),grid

xlabel('Frequenza [Hz]')

ylabel('X(j2 \pi f)')

title('Spettro di potenza normalizzato')

axis([0 5 0 1.1])


Matlab simulink

  • L’output del precedente codice è il seguente


Matlab simulink

% VERIFICA CHE IL MODELLO SIA APERTO, E IN CASO CONTRARIO LO APRE

ifisempty(find_system('Name','filtropassabasso2'))

open_system('filtropassabasso2')

end

R=1e4; % 10k Ohm

C=1e-5; % 10 pF

A1=1;

omega1=1.6*(2*pi);

A2=2;

omega2=10*(2*pi);

Tsim=20;

sim('filtropassabasso2');

[F,X]=spettro2(tout,out(:,1));

figure(8),

subplot(4,1,1),

plot(tout,out(:,1)),title('Segnale di ingresso'), xlabel('Tempo[s]')

grid,axis([0 10 -4 4])

subplot(4,1,2)

plot(F,X),grid

xlabel('Frequenza [Hz]')

ylabel('X(j2 \pi f)')

title('Spettro di potenza normalizzato')

axis([0 15 0 2.1])

[F,X]=spettro2(tout,out(:,2));

subplot(4,1,3),

plot(tout,out(:,2)),title('Segnale di uscita'), xlabel('Tempo[s]')

grid,axis([0 10 -4 4])

subplot(4,1,4)

plot(F,X),grid

xlabel('Frequenza [Hz]')

ylabel('X(j2 \pi f)')

title('Spettro di potenza normalizzato')

axis([0 15 0 2.1])

  • 2 armoniche distinte


Matlab simulink

  • L’output del precedente codice è il seguente


Matlab simulink

  • Filtraggio digitale

Molto importante nei sistemi di acquisizione dati

Es.

Un filtro digitale del primo ordine rappresenta una implementazione discreta del filtro passa-basso studiato nell’esempio precedente

 = costante di tempo del filtro

Ts = passo di campionamento della sequenza di input


Matlab simulink

  • Schema SIMULINK

A1=1;

omega1=2*(2*pi);

Tc=0.01;

tau=0.1;

a1=exp(-Tc/tau)

b0=1-exp(-Tc/tau)

  • Per ruotare di 90° un blocco lo si deve selezionare e si devono premere successivamente i tasti CTRL + R

  • Blocco UNIT DELAY

  • (libreria discrete)


Matlab simulink

A1=1;

omega1=2*(2*pi);

Tc=0.01;

tau=0.1;

a1=exp(-Tc/tau)

b0=1-exp(-Tc/tau)


Matlab simulink

clearall

closeall

clc

Tc=0.01;

tau=0.1;

a1=exp(-Tc/tau);a2=0;

b0=1-exp(-Tc/tau);b1=0;

ordine=2;

t=0:0.01:20;

y=sin(t);

rum=0.1*rand(1,length(t));

y_rum=y+rum;

figure(1)

plot(t,y);

grid,title('segnale senza rumore')

figure(2)

plot(t,rum);

grid,title('rumore')

figure(3)

plot(t,y_rum);

grid,title('segnale rumoroso')

yf=zeros(1,length(t));

fori=(ordine+1):length(t)

yf(i)=a1*yf(i-1)+a2*yf(i-2)+b0*y_rum(i)+b1*y_rum(i-1)+;

end

figure(4)

plot(t,yf);

grid,title('segnale FILTRATO ')

  • Implementazione del filtraggio digitale in Matlab


Matlab simulink

  • Ora simuliamo un sistema termico

  • Consideriamo un sistema termico rappresentato da un volume V circondato da una parete e contenente un gas

Sia Te(t) [K] la temperatura esterna alla parete, Tf(t) [K] la temperatura del gas interno al volume, e q(t) [J/s] una sorgente di calore interna al volume.

Sia Cf [J/K] la capacita termica del fluido, e sia Kie (J/K s) il coefficiente di scambio termico tra interno ed esterno.


Matlab simulink

Per tradurre una equazione differenziale in termini di una combinazione tra blocchi Simulink si deve esplicitare l’equazione differenziale rispetto alle derivate di ordine piu elevato.

Con un blocco integratore (Integrator) e con dei blocchi “Constant” e “Gain” si può realizzare il seguente modello di simulazione che ipotizza dei valori costanti per q e Te

Si noti come all’ingresso dell’integratore, punto cui corrisponde il segnale dTf/dt, venga

“costruita” elemento per elemento la formula


Matlab simulink

Per eseguire la simulazione bisogna assegnare un valore ai parametri Cf [J/K] e Kfe [J/Ks], alla condizione iniziale Tf(0), ed al valore costante dei segnali Te e q.

La condizione iniziale dell’integratore si specifica nella relativa finestra di dialogo

Script di parametrizzazione

Tf_zero=298.16; %[K], pari a 25°C

q=2000; % J/s

Te=323.16; %[K], pari a 50°C;

Cf=2e3; % J/K

Kie=1e2; % J / K s


Matlab simulink

Si desidera visualizzare Tf sia in gradi Kelvin che in gradi centigradi in 2 finestre Scope separate.

La conversione da °K a °C può essere realizzata con il blocco Fcn (libreria UserDefinedFunctions

q(t)

Il blocco Fcn consente di realizzare una funzione statica tra un parametro di ingresso (scalare o vettoriale) e un parametro di uscita scalare.

Si deve scrivere l’espressione della funzione, denotando con u (parola riservata) la variabile in ingresso al blocco

q

t

Si desidera anche modificare il profilo di q(t)

Si può utilizzare il blocco Step, libreria Sources.

100


Matlab simulink

Si realizzi lo schema seguente

Grafico della temperatura Tf in gradi centigradi


Matlab simulink

Realizziamo lo stesso modello in maniera più compatta, utilizzando il blocco “Transfer Function” (libreria Continuous).

Trasformiamo secondo Laplace l’equazione differenziale

Notazione impropria, ma chiara

Schema a blocchi

Schema Simulink compatto

+

+

q(t)


Matlab simulink

Parametrizzazione del blocco Transfer Function

Il blocco deve rappresentare la Funz. di Trasf.

Si devono specificare i coefficienti dei polinomi a numeratore e denominatore della FdT utilizzando la notazione Matlab per la rappresentazione dei polinomi (un vettore che contiene i coefficienti dl polinomio in ordine decrescente rispetto alle potenze di s)

Si può “aggirare” la trasformazione secondo Laplace ragionando sui coefficienti della equazione differenziali


Matlab simulink

FdT del secondo ordine


Matlab simulink

Obbiettivi aggiuntivi

Far variare nel tempo la temperatura esterna ed osservare le corrispondenti fluttuazioni della temperatura interna

Nell’ipotesi che q(t) possa assumere solo due valori (il valore nullo q=0, ed un valore costante q=Q* ) realizzare un sistema di controllo ON-OFF per regolare ad un valore desiderato la temperatura del fluido interno al volume

Confrontare i risultati ottenuti impiegando come controllore un rele’ con e senza isteresi


Matlab simulink

Schema SIMULINK

FILE: termico1dof_feedback.mdl

Tf_zero=298;.16 %[K], pari a 25°C

q=2000; % J/s

Te=323;.16 %[K], pari a 50°C;

Cf=2e3; % J/K

Kie=1e2; % J / K s


Matlab simulink

Sistema a ciclo aperto


Matlab simulink

Ampiezza isteresi = 4°C

Ampiezza isteresi = 2°C


Matlab simulink

Complichiamo il modello

Trattiamo in maniera distinta gli accumuli termici nel volume e nella parte di contorno.

Definiamo quindi un modello più complesso che mi fornisca anche l’evoluzione temporale della temperatura della parete Tp(t).

temperatura della parete

Cf [J/K] è la capacita termica del gas interno al volume

Cp [J/K] è la capacita termica del materiale che costituisce la parete

Kip [J/K s] è il coefficiente di scambio termico tra l’interno del volume e la parete.

Kpe [J/K s] è il coefficiente di scambio termico tra la parete e l’esterno.


Matlab simulink

Esplicitiamo il sistema di equazioni rispetto alle derivate di ordine più elevato

Importiamo nella pagina di lavoro un ulteriore blocco integratore la cui uscita sarà la

temperatura Tp della parete.

Utilizziamo anche un visualizzatore a Display (libreria Sinks)

Lo schema può essere realizzato come segue


Matlab simulink

Script di configurazione dei parametri

Tf_zero=25+273.16; %[K], pari a 25°C

Tp_zero=10+273.16; %[K], pari a 10°C

Cf=2e3; % J/K

Cp=10e3; % J/K

Kip=1e2; % J/K s

Kpe=1e2; % J/K s

q=2000; % J/s

Te=20+273.16 %[K], pari a 20°C;

Risultati della simulazione


Matlab simulink

Si desidera acquisire il segnale q(t) da un file esterno.

Il segnale q(t) sia disponibile nella forma di un file dati di tipo ASCII

File “dati_problema.dat”

La prima riga riporta i tempi e la seconda riporta il valore del segnale

Bisogna creare un mat-file (lo chiamiamo dati_mat.mat) che contenga tali informazioni.

%clearall

load dati_problema.dat

M=dati_problema;

tempi=M(1,:); %non utilizzato

segnale=M(2,:); %non utilizzato

savedati_mat M %sipuo’ fare direttamente >> savedati_matdati_problema

Tf_zero=298.16; %[K], pari a 25°C

Tp_zero=10+273.16; %[K], pari a 10°C

Cf=2e3; % J/K

Cp=10e3; % J/K

Kip=1e2; % J/K s

Kpe=1e2; % J/K s

q=2000; % J/s

Te=20+273.16; %[K], pari a 20°C;


Matlab simulink

Per importare il segnale si può utilizzare il blocco Simulink “From File”, dalla libreria Sources

Schema Simulink

In accordo con i dati acquisiti,

la durata della simulazione deve essere posta pari a 2.


Matlab simulink

Creazione di sottosistemi

Si vuole rendere più compatta la rappresentazione del modello attraverso la definizione di un macroblocco come in figura

Simulink consente di definire dei macroblocchi (sottosistemi) che rappresentano una particolare interconnessione tra altri blocchi, alla quale si accede esplorando il contenuto del sottosistema.


Matlab simulink

Creazione di sottosistemi

Si dispongano i blocchi del modello come in figura, in modo che sia possibile tracciare un rettangolo nel quale entrano i segnali di input del sottosistema e dal quale escono i segnali di output.


Matlab simulink

Con il mouse si deve “tracciare” nella pagina di lavoro un rettangolo come quello nella slide precedente.

Poi, dal menu Edit della pagina di lavoro Simulink, si deve selezionare il comando Create Subsystem

Ridisponendo i blocchi dello schema si puo realizzare la seguente configurazione

Cliccando sul blocco Subsystem si accede al suo contenuto.

Si notino i blocchi “In1”, “In2” , “Out1” ed “Out2”


Matlab simulink

Rinominando i blocchi “In1”, “In2”, “Out1” ed “Out2” si può fare in modo che nelle porte di input e di Output del Subsystem compaia il nome della grandezza associata

La parametrizzazione del modello è attualmente effettuata per mezzo del file di script precedentemente illustrato, che assegna una valore alle costanti simboliche usate nel modello Simulink definendo opportune variabili omologhe nel workspace di Matlab. Tale m-file di script deve sempre accompagnare il file Simulink (che ha estensione .mdl) e deve essere lanciato prima di quest’ultimo

Può essere conveniente disporre di una maschera di parametrizzazione interna al modello Simulink.

In questo modo tutte le informazioni associate al modello sono contenute in un unico file (il file .mdl) e la riparametrizzazione del modello avviene in maniera più semplice, senza dovere ogni volta rilanciare il file script con estensione .m


Matlab simulink

Creazione di MASK

Bisogna portarsi con il mouse sul Subsystem “Camera di Combustione”, premere il tasto destro del mouse, e selezionare MaskSubsystemdal menu che compare


Matlab simulink

Dopo avere selezionato MaskSubsystemsi deve nuovamente portarsi con il mouse sul Subsystem“Camera di Combustione”, premere il tasto destro del mouse, e selezionare stavolta EditMaskdal menu che compare.

Finestra di configurazione della mask

Andare nel sottomenù:

Parameters


Matlab simulink

Nel sottomenù Parameters completare le voci “DialogParameters” come in Figura, creando una riga per ognuno dei 6 parametri da settare .

Pulsante “Add”

Aggiunge una riga.

Per ciascun parametro , oltre al nome della relativa variabile (Cf, Cp, …) si può riportare una frase descrittiva che comparirà nella maschera di configurazione, che riportiamo nella slide seguente.


Matlab simulink

Maschera di parametrizzazione del Subsystem

Viene visualizzata facendo doppio click sul blocco Simulink del Sottosistema

E’ possibile inserire manualmente il valore dei parametri nelle opportune caselle di testo. I valori inseriti vengono memorizzati al salvataggio del file, e riproposti alla sua riapertura.

Per accedere al contenuto del blocco “mascherato” premere il tasto destro del mouse e poi selezionare “Look Under Mask”

Script semplificato

%clearall

load dati_problema.dat

M=dati_problema;

tempi=M(1,:); %non utilizzato

segnale=M(2,:); %non utilizzato

savedati_mat M

q=2000; % J/s

Te=20+273.16; %[K], pari a 20°C;

FILE:

termico_2dof_matfile_mask01.mdl


Matlab simulink

Si inserisca una ulteriore mask che consenta l’impostazione manuale di q e Te

FILE:

termico_2dof_matfile_mask02.mdl

Script

%clearall

load dati_problema.dat

M=dati_problema;

tempi=M(1,:); %non utilizzato

segnale=M(2,:); %non utilizzato

savedati_mat M


Matlab simulink

Un processo termico a parametri distribuiti

Cilindro cavo.

Parti grigie in acciaio.

Parte bianca: volume con vapore ad alta temperatura.

Parte nera: piccolo volume interno

statore

r

rotore

Coordinata radiale

Es. Sezione di una turbina a vapore


Matlab simulink

Es. Sezione di una turbina a vapore


Matlab simulink

Ipotesi: simmetria angolare della distribuzione di temperatura

Si desidera calcolare la distribuzione di temperatura nel rotore (in uno dei suoi raggi)

Mediante misure acquisite in una turbina in esercizio, si suppone nota la temperatura nella “parte bianca” (regione del vapore in alta temperatura)

In una modellazione più dettagliata, si potrebbe essere interessati a valutare la distribuzione di temperatura nella superficie delle pale di rotore, onde valutare gli stress termici sui materiali.

Problema complesso (anche nella formulazione semplificata sotto esame) perche il modello matematico è una equazione alle derivate parziali (sistema a parametri distribuiti, sistema infinito-dimensionale)


Matlab simulink

Eq. di diffusione (Equazione del calore) monodimensionale in coord. cilindriche , con unica variabile spaziale la coordinata cilindrica radiale r

è il coefficiente di diffusione [m2/s]

è la capacita termica a pressione costante per unita di massa [J/gK]

è la conduttività termica [J/K s m]

è la densità [g /m3 ]


Matlab simulink

r =0


Matlab simulink

Approssimazione delle derivate spaziali mediante differenze finite

Sistema di ODE


Matlab simulink

Sistema di ODE

Boundaryconditions


Matlab simulink

Condizioni iniziali


Matlab simulink

Modello Simulink

FILES

TurbinaVapore01.mdl

T_centrorotore.mat

T_vapor.mat

Esportazione dati

verso il Workspace

Contenuto del Subsystem “Modello termico Rotore”

Due diverse modalità di specificare i due segnali di input.

Linee spesse che rappresentano segnali multidimensionali


Matlab simulink

Sistema LTI (Linear TimeInvariant)

MIMO (multi-input-multi-output)

Uso di Matrix Gain

Integratore saturato


Matlab simulink

Parametrizzazione del modello

Utilizziamo una mask


Matlab simulink

Costruzione della maschera di parametrizzazione


Matlab simulink

Calcolo delle Matrici A e B


Matlab simulink

Codice copiabile

ed seguibile

Matrici A e B (per n = 6)

n=40;

r_min=0.05;

r_max=0.392;

rho=7900;

C=0.45;

k=73;

T_in=80;

h=(r_max-r_min)/n;

K=k/(rho*C*1e3)/h^2;

A=zeros(n,n);B=zeros(n,2);

for i=1:n,

A(i,i)=-(2+h/(r_min+i*h));

end

for j=1:n-1,

A(j,j+1)=1+h/(r_min+j*h);

A(j+1,j)=1;

end

B(1,1)=1;B(n,2)=1+h/r_max;

A=K*A; B=K*B;


Matlab simulink

Documentation- descrizione della MASK


Matlab simulink

Analisi dei risultati

  • Impostiamo preliminarmente due valori costanti per le temperature al contorno

Profili temporali degli elementi del vettore T

  • Uscita del blocco Scope “T”


Matlab simulink

Profilo di temperatura al nodo 40


Matlab simulink

  • Con dei profili differenti per le boundaryconditions, l’evoluzione del profilo di temperatura è differente.

  • Ora processiamo in Matlab i risultati della simulazione, creando dei grafici 3D.

r_min=0.05;

r_max=0.392;

n=40;

[X,Y] = meshgrid(linspace(r_min,r_max,n),tout);

h=mesh(X,Y,Trot)

title('Distribuzione temperatura rotore.')

xlabel('Coordinata radiale r [m] ','FontName','times','FontSize',14)

ylabel('Tempo [s]','FontName','times','FontSize',14)

zlabel('T(r,t)','FontName','times','FontSize',14)

set(gca,'FontSize',14,'FontName','Times')


Matlab simulink

  • Invertiamo la direzione dell’asse dei tempi


Matlab simulink

  • Completiamo questo esempio mostrando l’impiego, nella Mask, di variabili di configurazione tipo “popup” o “checkbox” e un loro possibile impiego.

  • Si apportino le seguenti modifiche alla lista dei Parameters


Matlab simulink

  • Si apportino le seguenti modifiche alle istruzioni di Initialization


Matlab simulink

  • Si apportino le seguenti modifiche allo schema Simulink

  • Ora si esegua il modello con diverse scelte per le variabili pop up e checkbox, e si analizzino i risultati.

FILES:

TurbinaVapore02.mdl

T_centrorotore.mat

T_vapor.mat


Matlab simulink

  • Anti-lockbracking system (ABS)

  • Simulazione di un sistema di frenatura con ABS

  • Modello quarto di veicolo

  • Rr = raggio ruota

  •  = velocità ruota

  • I = inerzia ruota

  • = forza da interazione

  • pneumatico/strada

  • = coppia frenante

  • s = scorrimento

  • Sistema dinamico NON LINEARE, del secondo ordine

  • Caratteristica -s nota in forma tabellare


Matlab simulink

  • Modello SIMULINK

  • LookupTable

  • Blocco Fcn per il calcolo dello scorrimento

clearall

g = 9.81;

v0 = 40; % velocita iniziale (m/s)

Rr = 0.6; % raggio

m = 200; % massa

J = 5; % inerzia

% Curva mu-slip

slip = 0:.05:1.0;

mu = [0 .4 .8 .97 1.0 .98 .96 .94 .92 .9 .88 .855 .83 .81 .79 .77 .75 .73 .72 .71 .7];

  • Stop a veicolo fermo


Matlab simulink

  • LookupTable (libreria LookupTables)

  • La caratteristica viene disegnata sulla maschera del blocco

  • Blocco Stop Simulation

  • (libreria Sinks )

  • Interrompe la simulazione quando il veicolo si ferma

  • Integratori saturati


Matlab simulink

  • Dettaglio sulla parte che interrompe la simulazione


Matlab simulink

  • Integratori saturati

  • Soluzione semplificata per interrompere la simulazione quando il veicolo si ferma


Matlab simulink

  • Ora modelliamo l’ABS

  • La dinamica del sistema di frenatura idraulico è approssimata da un filtro del primo ordine (dinamica cassetti distributori) e da un integratore saturato (pressurizzazione).

  • Il controllo è un relè (controllo bang-bang). L’apposito blocco Relay si trova nella libreria Discontinuities

Kf = 3; %guadagno

PBmax = 1500; % saturazione

TB = 0.01; %costante di tempo


Matlab simulink

  • FILES:

  • ABS_OpenClosedLoop.mdl

  • ABS_OpenClosedLoop_DATI.m

  • Modello complessivo

  • E’ stato aggiunto un blocco “ManualSwitch” (libreria SignalRouting) per poter simulare una frenatura non controllata (Tf=-1000).

  • Eseguiamo una simulazione, e visualizziamo i risultati nei blocchi Scope


Matlab simulink

  • Frenatura non controllata (ABS disattivato)

  • Il pneumatico si blocca dopo 1.5 secondi circa, mentre la marcia del veicolo continua per altri 4 secondi.

  • Lo scorrimento diventa unitario quando il pneumatico si blocca


Matlab simulink

  • Frenatura con ABS attivato

  • Il pneumatico ora si blocca solo nell’ultima parte della frenata.

  • Il bloccaggio del pneumatico avviene quando ormai la velocita di marcia del veicolo è prossima a zero, la marcia del veicolo si arresta infatti dopo pochi decimi di secondo.

  • Lo scorrimento viene regolato attorno al set point desiderato 0.2. diventando unitario solo a frenata ormai conclusa.

  • Nella prossima slide si confrontano due diversi test del sistema ABS con una diversa velocita di marcia iniziale V0.


Matlab simulink

  • Con ABS

  • v0= 40 m/s

  • 145 km/h

  • Con ABS

  • v0 = 70 m/s

  • 250 km/h


Matlab simulink

  • Variare il controllo sul FUEL (SubsystemControl)

  • Osservare la velocità dell’albero motore in RPM, e correlarne le variazioni ai corrispondenti incrementi e decrementi del fuel rate


Matlab simulink

  • EmbeddedMatlabFunction block

  • Consideriamo nuovamente il sistema

  • termico del secondo ordine

temperatura della parete


Matlab simulink

  • Realizziamo il modello SIMULINK in maniera differente, generando i segnali q e Te con dei blocchi Signal Builder (libreria Sources) …..

FILE: termico_2dof_matfile_mask01_EMF.mdl


Matlab simulink

  • ….. e realizzando le equazioni per mezzo di un blocco Emdebbed MATLAB Function (EMF)

  • Integratore

  • “vettoriale”

  • (bidimensionale)

  • y = uscite

  • u = ingressi

  • p = parametri


Matlab simulink

  • Il blocco Camera di Combustione conserva la medesima maschera della implementazione precedente


Matlab simulink

  • Codice del blocco EMF

functionydot = fcn(y,u,p)

Cf=p(1);

Cp=p(2);

Kip=p(3);

Kpe=p(4);

q=u(1);

Te=u(2);

Tf=y(1);

Tp=y(2);

Tfdot=q/Cf+(Kip/Cf)*(Tp-Tf);

Tpdot=(Kpe/Cp)*(Te-Tp)-(Kip/Cp)*(Tp-Tf);

ydot=[TfdotTpdot];

  • Variabili globali non concesse

  • all’interno di blocchi EMF.

  • I parametri della mask non sono direttamente accessibili da parte della EMF

  • Codice analogo a quello di un Function file


Matlab simulink

  • Parametrizzazione dei Signal Builder

  • Target


Matlab simulink

  • Zoom on T

  • Spostiamo verso sinistra questa linea

  • (dopppio click su di essa)


Matlab simulink

  • Spostiamo verso destra questa linea con modalita analoghe

  • Spostiamo verso l’alto questa linea con modalita analoghe


Matlab simulink

  • Profilo completo q(t)

  • Profilo più complicato per q(t)

  • Proflopiu complicato per T(t)


Matlab simulink

  • Non serve piu un file script in abbinamento

  • Risultati della simulazione


Matlab simulink

  • Toolbox avanzati

  • SimMechanics

  • Modellazione di sistemi meccanici multi-body


Matlab simulink

  • Modello 3D


Matlab simulink

  • Vista differente


Matlab simulink

  • Toolbox avanzati

  • SimDriveline

  • Componenti e modelli

  • area automotive

  • Animazione 3D


  • Login