Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici...

28
1 Esercitazioni Controlli Automatici Ing. Andrea Paoli 1 Introduzione all’utilizzo di Matlab ® e Simulink ® Ing. Marta Capiluppi [email protected] www-lar.deis.unibo.it/~mcapiluppi Tel. (051-20) 93875 2 Cosa è Matlab ® ? Matlab (= Matrix Laboratory) è un linguaggio di programmazione per applicazioni scientifiche e numeriche. Vasto set di funzioni predefinite. Interprete di comandi. Possibilità di scrivere nuove funzioni. Librerie di Toolbox per svariate applicazioni (Control System Toolbox, Signal Processing…)

Transcript of Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici...

Page 1: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

1

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

1

Introduzione all’utilizzo di Matlab®

e Simulink®

Ing. Marta [email protected]/~mcapiluppiTel. (051-20) 93875

2

Cosa è Matlab® ?

Matlab (= Matrix Laboratory) è un linguaggio di programmazione per applicazioni scientifiche e numeriche.Vasto set di funzioni predefinite.Interprete di comandi.Possibilità di scrivere nuove funzioni.Librerie di Toolbox per svariate applicazioni (Control System Toolbox, Signal Processing…)

Page 2: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

2

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

3

Perché Matlab-Simulink ?

Per il corso:– strumento utile per la verifica personale dei concetti appresi,

per la verifica degli esercizi e come approfondimento (es. con Multitool)

– programma utilizzato per sviluppare il progetto di sistemi di controllo (Controlli Automatici LB)

Come ingegneri:– ambiente di sviluppo software utilizzato nelle aziende per il

progetto di regolatori, per la loro implementazione, per lo sviluppo completo di sistemi di controllo (e non solo…).

4

L’interfaccia Matlab®

La command window dà accesso diretto all’interprete (scrittura diretta dei comandi).

Command window(scrittura diretta dei comandi)

Cartella corrente

Toolbox o Lista delle variabili(workspace)

Page 3: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

3

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

5

L’interfaccia grafica

Editor di testo

Figura

Simulink

6

Matlab® come calcolatrice.

Per valutare espressioni aritmetiche.Esempio: calcolare

al prompt digitare>> 4+sqrt(2)-sin(0.2*pi)^2+exp(2)ans =

12.4578Il risultato viene scritto nella variabile “ans”.

2 24 2 sin(0.2 ) e+ − π +

Page 4: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

4

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

7

Definizione di variabili.

E’ possibile definire variabile ed espressioni piùcomplesse:>> a=4; b=2;>> a*bans =8Per cancellare una variabile (es. a):>> clear a

8

Il workspace.

Ogni variabile definita in questo modo viene conservata in memoria nel workspace.

Page 5: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

5

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

9

Lettura e scrittura su file.

Mediante i comandi load e save è possibile salvare su file le variabili del workspace:save nomefile variabile1 variabile2 ... scrive nel file nomefile.mat le variabili elencate.load nomefile variabile1 variabile2 ... carica dal file nomefile.mat le variabili elencate.save nomefile salva tutto il workspace in nomefile.load nomefile carica tutte le variabili in nomefile.

10

Una funzione fondamentale.

Help: fornisce la descrizione completa di tutte le funzioni predefinite ! !

Page 6: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

6

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

11

Definizione di matrici.

Definiamo la matrice 2x2:

>> A=[ 1 , 2 ; 3 , 4]A =

1 23 4

Accedere agli elementi di una matrice:>> A(1,2)

ans =2

1 23 4

A⎡ ⎤

= ⎢ ⎥⎣ ⎦

12

Le wildcard.

Per accedere a intere righe o colonne di una matrice, si usa la wildcard “:”Es: selezionare la prima riga di A

>> A(1,:)ans =

1 2Es: selezionare la seconda colonna di A

>> A(:,2)ans =

24

Page 7: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

7

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

13

Selezionare sottomatrici.

Se definiamo:>> B=[1 , 2 , 3 ; 4 , 5 , 6]B =

1 2 34 5 6

>> B(1:2,2:3)ans =

2 35 6

14

Operazioni elementari.

Sono definiti gli operatori +,-,*,^ .Matrice trasposta:>> A'ans =

1 32 4

Matrice inversa:>> inv(A)

ans =-2.0000 1.00001.5000 -0.5000

Page 8: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

8

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

15

Operazioni elementari.

Determinante:>> det(A)ans =

-2Autovalori:>> eig(A)ans =

-0.37235.3723

16

Altre operazioni.

rank: calcolo del rango di una matrice

trace: calcolo della traccia di una matrice

norm: calcolo della norma di una matrice

size: per conoscere le dimensioni di una matrice

Page 9: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

9

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

17

Matrici speciali.

eye(n,n): matrice identità nxn;

zeros(n,m): matrice di zeri nxm;

ones(n,m): matrice di uni nxm;

rand(n,m): matrice nxm con elementi distribuiti uniformemente tra 0 e 1.

18

I vettori.

I vettori hanno due funzioni fondamentali in Matlab:rappresentazione dei polinomi (un polinomioè descritto dal vettore dei suoi coefficienti);rappresentazione di segnali (un segnale èrappresentato mediante la sequenza dei valori che assume in un insieme di istanti di tempo, quindi mediante un vettore).

Page 10: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

10

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

19

Definizione di vettori.

>> v=(0:10)v =0 1 2 3 4 5 6 7 8 9 10

>> v=(1:0.5:3)v =1.0000 1.5000 2.0000 2.5000 3.0000>> v=[3 6 1 7]v =3 6 1 7

20

I polinomi e le operazioni.

Sono definiti come vettori. Es:>> pol=[3 2 1]pol =3 2 1 Calcolo delle radici (roots).>> roots(pol)ans =-0.3333 + 0.4714i-0.3333 - 0.4714i

23 2 1s s+ +

Page 11: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

11

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

21

I polinomi e le operazioni.

Valutazione in un punto (polyval)>> polyval(pol,0)ans =

1Prodotto di polinomi (conv) >> pol1=[1 1]; pol2=[1 1];>> polprod=conv(pol1,pol2)polprod =

1 2 1

2( 1)( 1) 2 1s s s s+ + = + +

22

Gli M-file: script e funzioni.

M-file: file contenente codice MatlabVengono scritti mediante un qualsiasi editor di testo ed eseguiti chiamandoli dalla linea di comando. Due tipi di M-file: script e funzioni.Gli script si usano per automatizzare le sequenze di comandi. Quando viene eseguito uno script, l’esecuzione dei comandi è del tutto equivalente alla scrittura del codice con la tastiera. Non hanno argomenti di input e output, tutte le variabili sono globali.

Page 12: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

12

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

23

Gli M-file: script e funzioni.

Le function si usano per estendere le capacità di Matlab. Normalmente generano una o più uscite (matriciali) dipendenti dai parametri in ingresso. Le variabili sono locali alla funzione.

function [output]=nomefunction(input)istruzioni;

return;

24

Programmare in Matlab.

Matlab è un linguaggio di programmazioneEsistono comandi per il controllo di flusso:

– if…elseif…else...end– while…end– for– switch– break

Page 13: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

13

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

25

La grafica in matlab

plot(y) – visualizza gli elementi del vettore y rispetto agli indici del vettore stesso;

plot(x,y) – visualizza il vettore y vs. il vettore x;

Per visualizzare una qualsiasi funzione y=f(x) in Matlab, è SEMPRE necessario creare i vettori x e ynel dominio di interesse;

26

Scegliere la finestra grafica.

figure(n) specifica su quale figura lavoriamosubplot permette di suddividere la finestra in piùgrafici, per visualizzare contemporaneamente diversi segnaliEs.figure(1); subplot(211); …subplot(211);…clf - pulisce la figura corrente

Page 14: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

14

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

27

Tracciare il grafico.

plot: plotta il grafico 2-D con scale lineari per entrambi gli assi; loglog: plotta il grafico 2-D con scale logaritmiche per entrambi gli assi; semilogx: plotta il grafico 2-D con scala logaritmica per l’asse x e lineare per l’asse y; semilogy: plotta il grafico 2-D con scala lineare per l’asse x e llogaritmica per l’asse y;Sintassi: plot(x1,y1,x2,y2,…).

28

Grafici 3-D.

Possibilità di tracciare grafici tridimensionali (mesh).>> x=(0:0.01:2*pi); y=(0:0.01:2*pi);>> for i=1:length(x)

for j=1:length(y)z(i,j)=sin(x(i)+y(j));

endend

>> mesh(x,y,z)

Page 15: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

15

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

29

Grafici 3-D.

[ ][ ]

( )

0,2 ;

0, 2 ;

sin ;

x

y

z x y

∈ π

∈ π

= +

30

Elaborare i grafici.

axis ( [XMIN XMAX YMIN YMAX] ) imposta la scala degli assi;grid on / grid off abilita e disabilita la grigliatitle inserisce il titolo;xlabel, ylabel inserisce le etichette negli assi, es. per specificare le unità di misura;legend inserisce la legenda del grafico.

Page 16: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

16

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

31

Plot editing mode.

Interfaccia user-friendly per modificare le proprietàdelle figure, delle linee, ecc.

32

Il Control System Toolbox.

Il Control System Toolbox mette a disposizione del Control Engineer una serie di strumenti classici per la modellazione, l’analisi e il controllo di sistemi dinamiciPermette di:– inserire una f.d.t. in vari modi– manipolare sistemi dinamici– analizzare risposte temporali e frequenziali– progettare un controllore con varie tecniche (es. rlocus)

Page 17: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

17

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

33

Inserire un sistema in forma di stato.

Inserire

>>A=[0,1 ; -2,-1]; >>B=[0;1]; >>C=[1, 0]; >>D=0; >>S=ss(A,B,C,D)

[ ]

1 1

2 2

1

2

x x0 1 0u

x x2 1 1

xy 1 0

x

⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤= +⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥− −⎣ ⎦ ⎣ ⎦⎣ ⎦ ⎣ ⎦

⎡ ⎤= ⎢ ⎥

⎣ ⎦

a = x1 x2

x1 0 1x2 -2 -1

b = u1

x1 0x2 1

c = x1 x2

y1 1 0d =

u1y1 0

Continuous-time model.

34

Inserire una funzione di trasferimento.

Inserire

>> num=[1 1]; den=[1 2 3];>> G=tf(num,den)Transfer function:

s + 1-------------s^2 + 2 s + 3

1 02

1 0

1( )2 3

mm

nn

b s b s b sG sa s a s a s s

+ + + += =

+ + + + +……

Page 18: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

18

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

35

Inserire una funzione di trasferimento.

Inserire

>> k=20; Z=[-2 4]; P=[3+i 3-i]; >> G=zpk(Z,P,k)20 (s+2) (s-4)---------------(s^2 - 6s + 10)

( )( 2)( 4)( ) , ( , ) 20

( ) ( 3 )( 3 )

ii

i jj

j

s zs sG s k z p C

s p s j s j

−+ −

= ∈ =− + + + −

∏∏

36

Inserire una funzione di trasferimento.

Più intuitivamente:

>> s=tf('s');>> G=(s+160)/(s^3+12*s^2+30*s+100)Transfer function:

s + 160-------------------------s^3 + 12 s^2 + 30 s + 100

3 2

160( )12 30 100

sG ss s s

+=

+ + +

Page 19: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

19

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

37

Estrarre dati da una f.d.t.

Estrarre il numeratore e il denominatore(tfdata):

>> [num,den]=tfdata(G,'v')num =

0 0 1 160den =

1 12 30 100

38

Estrarre dati da una f.d.t.

Estrarre zeri poli e guadagno (zpkdata):>> [z,p,k]=zpkdata(G,'v')z =-160

p =-10.0000 -1.0000 + 3.0000i-1.0000 - 3.0000i

k =1

Page 20: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

20

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

39

Proprietà delle f.d.t.

Altre caratteristiche delle f.d.t.damp pulsazione naturale e coefficiente di smorzamento di poli e zeri;dcgain guadagno statico;pole poli della f.d.t. ;zero zeri della f.d.t. ;pzmap grafico di poli e zeri nel piano complesso (sgrid permette di tracciare i luoghi caratteristici);

40

Le rappresentazioni con ss, tf o zpksono equivalenti.

>> zpk(G3)Zero/pole/gain:

(s+160)----------------------(s+10) (s^2 + 2s + 10)

>> tf(G3)Transfer function:

s + 160-------------------------s^3 + 12 s^2 + 30 s + 100

>> ss(G3)a =

x1 x2 x3x1 -12 -1.875 -0.7813x2 16 0 0x3 0 8 0

b = u1

x1 1x2 0x3 0

c = x1 x2 x3

y1 0 0.0625 1.25d =

u1y1 0

Continuous-time model.

Page 21: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

21

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

41

Interconnessione di sistemi.

Connessione in serie:>> G=series(G1,G2);

Connessione in parallelo:>> G=parallel(G1,G2);

Connessione in feedback:>> Gtot=feedback(G,G3);

42

Esempio di interconnessione.

Calcolare la f.d.t. totale

1 2 32

1 4 2( ) ; ( ) ; ( ) ;1 0.8 4 2

G s G s G ss s s s

= = =+ + + +

1( )G s

3 ( )G s

2 ( )G sr y

Page 22: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

22

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

43

Esempio di interconnessione.

>> s=tf('s');>> G1=1/(s+1); G2=4/(s^2+0.8*s+4); G3=2/(s+2);>> andata=series(G1,G2);>> Gtot=feedback(andata,G3)Transfer function:

4 s + 8-------------------------------------s^4 + 3.8 s^3 + 8.4 s^2 + 13.6 s + 16

44

Simulazione di sistemi lineari.

Funzioni disponibili per la simulazione:impulse: simulazione risposta all’impulso;step: simulazione risposta a scalino;initial: simulazione movimento libero;lsim: simulazione con ingresso qualsiasi e stato iniziale qualsiasi.

Sintassi :>> [y,t]=step(G);>> [y,t]=lsim(G,u,t);

Page 23: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

23

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

45

Esempio di simulazione.

>> s=tf('s'); G=1/(s+1);>> t=(0:0.01:5); u=sin(2*pi*2*t);>> y=lsim(G,u,t);>> plot(t,y)

46

Analisi di sistemi di controllo.

Per i problemi di controllo lineari invarianti SISO esistono le seguenti funzioni:bode(sistema): tracciamento diagrammi di Bodedella risposta in frequenza;margin(sistema): come bode ma in più calcola pulsazione critica, margine di fase e margine di guadagno;nyquist(sistema): tracciamento diagramma di Nyquist della risposta in frequenza;rlocus(sistema): tracciamento luogo delle radici (rlocfind);

Page 24: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

24

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

47

Esempi di analisi.

>> s=tf('s'); L=5/(s+1); margin(L)

48

Esempi di analisi.

>> s=tf('s'); L=(s+1)/(s^2+2*s+16); rlocus(L)

Page 25: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

25

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

49

L’ambiente Simulink®.

Simulink: un ambiente grafico per la simulazione di sistemi complessi.

Perche’ non basta Matlab?E’ spesso necessario simulare sistemi complessi, composti da numerosi blocchi interconnessi tra loro;Spesso i singoli blocchi sono nonlineari o tempo-varianti;Può essere necessario integrare blocchi continui e discreti.

50

Come funziona?

Simulink contiene una libreria di blocchi che descrivono elementi statici e dinamici elementari;L’utente compone lo schema a blocchi del sistema da simulare mediante l’interconnessione dei blocchetti elementari;Simulink genera automaticamente le equazioni e risolve il problema numerico di simulazione desiderato.

Page 26: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

26

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

51

Interazione con Matlab®.

Simulink interagisce con Matlab attraverso il Workspace: i modelli Simulink possono contenere variabili del Workspace;Allo stesso modo il risultato delle simulazioni può essere esportato nel Workspace e analizzato con Matlab.Digitando ‘simulink’ al Matlab prompt si apre la libreria dei modelli.Da qui è possibile creare un nuovo modello (foglio bianco) e comporre il sistema da simulare mediante i diversi blocchi.

52

Un nuovo modello.

ModelloLibrerie

Page 27: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

27

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

53

Librerie Simulink®.

Continuous (integrator, transfer function, transportdelay, zero-pole, state-space,..);Discrete (Discrete transfer functions, discrete integrator, zero order hold, discrete state-space..);Functions & tables (fcn, look-up table, Matlab Fcn);Math (gain, sum, product);Nonlinear (saturation, switch, dead-zone);

54

Librerie Simulink®.

Signals & Systems (mux, demux);Sinks (scope, to workspace);Sources (white-noise, clock, constant, pulsegenerator, repeating sequence, sine, step, fromworkspace);Control System Toolbox (LTI System).

Page 28: Esercitazioni Controlli Automatici Introduzione all ... · 3 Esercitazioni Controlli Automatici Ing. Andrea Paoli 5 L’interfaccia grafica Editor di testo Figura Simulink 6 Matlab®

28

Esercitazioni Controlli Automatici

Ing. Andrea Paoli

55

Esempio di simulazione.

56

Parametri della simulazione.

L’utente deve definire:Istanti di inizio e fine della simulazione;Tipo di solutore numerico (se il problema richiede metodi particolari);Parametri del solutore.