Sei sulla pagina 1di 34

2

Luca Ortolomo

RELAZIONI 2019-2020

Contenuto
Relazioni di programmi contenuti nella Libreria Software, di G. e L. Celentano

N46004643
N46004643
Luca Ortolomo | N46004643

INTRODUZIONE
Le seguenti relazioni sono state redatte a partire dai programmi contenuti nella libreria software
allegata al libro FONDAMENTI DI DINAMICA DEI SISTEMI di Giovanni e Laura Celentano, facendo
riferimento al modello su cui si basano studiati dal medesimo testo. Un sentito ringraziamento va
agli autori del testo che mettono a disposizione degli studenti un’enorme mole di materiale utile
alla comprensione pratica della materia, mettendo quindi delle ottime basi di lavoro per noi futuri
ingegneri; in particolare vorrei ringraziare il professore G. Celentano per la sua, per nulla scontata,
disponibilità dimostrata durante le lezioni e ricevimento.

1
Luca Ortolomo | N46004643

Processo di estinzione di un debito mediante mutuo a tasso fisso


Si intende modellare l’estinzione di un debito contratto mediante un mutuo che implica il
pagamento di v rate annue a tasso annuo fisso i. Si considera la rata da pagare ogni m=12/v
mesi come ingresso uk ; mentre l’uscita y k rappresenterà il debito residuo dopo il pagamento
della rata.

Abbiamo quindi:

i
(
y k = 1+ )
y −u
100 v k−1 k

i
Dove è il tasso per rata.
100 v

Ma y k−1=x k → y k =x k+1s

Quindi:

i
(
x k+1= 1+ )
x −u = A x k + B uk =f ( x k ,u k ¿
100 v k k

i
(
y k = 1+ )
x −u =C x k + D u k =η( x k ,u k ¿
100 v k k

12
Posto :ρ=l’ importo costante delle N ratedeb=debito iniziale ( δ )nra=numero rate annue=
v
N=numero rate di valore ρ

i=tasso di interesse percentuale annuo

Nell’ipotesi che il debito iniziale δ lo si voglia estinguere con N rate ρ costanti determiniamo
l’ammontare di ciascuna rata ρ e la legge di decrescita y k del debito. Se la prima rata viene
pagata all’istante 1, essendo x 0=δ per la seguente equazione relativa alla risposta del sistema
al gradino

si ottiene :

i k+1
1−(1+ )
100 v i k+ 1
yk= ρ+(1+ )
i 100 v
100 v
i
100 v
Da cui se si impone y N =0 si ottiene ρ= δ
i −N
1−(1+ )
100 v

2
Luca Ortolomo | N46004643

Programma Matlab

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Calcola il piano di ammortamento di un mutuo a tasso fisso %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% Autori: G. e L. Celentano

clc, close all, clear all

disp(' ')
i=input('Tasso di interesse annuo =');
nra=input('Numero di rate annue =');
dma=input('Durata del mutuo in anni =');

deb=100000; % ammontare mutuo


N=nra*dma; % numero rate

A=1+i/100/nra;B=-1;C=A;D=B;

ro=i/100/nra/(1-A^(-N))*deb;
xo=deb;

K=1:N;
u=K*0+ro;
y=dlsim(A,B,C,D,u,xo);
close
tot=sum(u)/1000;
ra=tot/N;

K=[0 K]*12/nra;
y=[deb;y];
y(N+1)=round(y(N+1));
subplot(2,1,1)
plot(K,y/1000,'.k','LineWidth',2),grid,
title(['Andamento del debito se i=',num2str(i),'% - Rata=',
num2str(round(ra*1000)/1000),...
' migliaia di Euro - Somma totale pagata=',num2str(round(tot*1000)/1000),' migliaia
di Euro'])
xlabel('Tempo in mesi'), ylabel('Debito in migliaia di Euro')

y1=y;
i1=i;

i=2*i; % Tasso di interesse doppio

A=1+i/100/nra;B=-1;C=A;D=B;

ro=i/100/nra/(1-A^(-N))*deb;
xo=deb;

K=1:N;
u=K*0+ro;
y=dlsim(A,B,C,D,u,xo);
tot=sum(u)/1000;
ra=tot/N;

K=[0 K]*12/nra;

3
Luca Ortolomo | N46004643

y=[deb;y];
y(N+1)=round(y(N+1));
subplot(2,1,2)
plot(K,y1/1000,'.k',K,y/1000,'.r','LineWidth',2),legend('i','2i'),grid,
title(['Andamento del debito se i=',num2str(i),'% - Rata=',
num2str(round(ra*1000)/1000),...
' migliaia di Euro - Somma totale pagata=',num2str(round(tot*1000)/1000),' migliaia
di Euro'])
xlabel('Tempo in mesi'), ylabel('Debito in migliaia di Euro')
Risultati per
Tasso di interesse annuo =2
Numero di rate annue =4
Durata del mutuo in anni =20

Risultati per
Tasso di interesse annuo =4
Numero di rate annue =4
Durata del mutuo in anni =20

Confronto tra tasso annuo del 2% e del 4%

4
Luca Ortolomo | N46004643

Moto di navigazione di una nave

Possiamo considerare per un moto a 3 gradi di libertà RV = 0, Mx = 0, Mh = 0:

m(u - rv) = Rx equazione di abbrivio

m(v + ru) = Rh equazione di deriva

IV r = M V equazione di imbardata

Per calcolare la posizione della nave bisogna aggiungere le seguenti equazioni:

x = u cosy - v sin y

y = u siny + v cosy

y=r,

%%% Codice Matlab

function p=fnavep(U)

u=U(1);
v=U(2);
psi=U(3); %

c=cos(psi);
s=sin(psi);
xp=u*c-v*s;
yp=u*s+v*c;

p=[xp yp]';

return

5
Luca Ortolomo | N46004643

Possiamo calcolare, attraverso formule semplificate:

Rx = -Kaxu2 sign u + R
xd + S

Dove:

- Rxd è la componente lungo l’asse x delle eventuali forze dovute alla corrente, alle onde, al
vento ed agli ancoraggi

2
-S =Ks pn è la spinta del sistema di propulsione con:

-p passo dell’elica

-n numero di giri del motore

Rh = -Kahv2 sign v + R

-R componente lungo l’asse h delle forze dovute alla corrente, alle onde, al vento
ed agli ancoraggi

Mz= -K r - K r2 sign
ahy
r + Kv2 signyvd + M+ M ,

con:
MT = KTu sign u cosd sind ,
2

- d angolo di rotazione del timone

function ac=fnavev(U)

global Mcsi Meta Izita Kacsi Kaeta Ka1psi Ka2psi Kaetapsi Kt

Rcsid=U(1);
Retad=U(2);
Mpsid=U(3);
S=U(4);
delta=U(5);
u=U(6); %moto longitudinale di avanzamento
v=U(7); %moto trasversale di deriva
r=U(8); %moto di imbardata(rotazione)

up=v*r+(S-Kacsi*u^2*sign(u)+Rcsid)/Mcsi; %derivata di u, quello tra parentesi è


Repsilon,
vp=-u*r+(-Kaeta*v^2*sign(v)+Retad)/Meta; %derivata di v, tra parentesi Rni
6
Luca Ortolomo | N46004643

Mt=Kt*u^2*sign(u)*cos(delta)*delta;
rp=(Mt-Ka1psi*r-Ka2psi*r^2*sign(r)+Kaetapsi*v^2*sign(v)+Mpsid)/Izita; %tra
parentesi Mc

ac=[up vp rp];

return

Ciò considerato possiamo rappresentare il sistema in questo modo:

V
S x
Nave
y
d
y

Con V=√ u2 +v 2.

Simulazione tramite il programma s_nave.m con:

Mcsi=1e7; %Massa virtuale


Meta=1.5e7; %Massa virtuale
Izita=2e9; %Momento d'inerzia virtuale
Kacsi=1e4;
Kaeta=1e5;
Ka1psi=5e6;
Ka2psi=1e8;
Kaetapsi=5e4;
Kt=1e4;

7
Luca Ortolomo | N46004643

8
Luca Ortolomo | N46004643

9
Luca Ortolomo | N46004643

Pendolo

Modello del pendolo, con K a coeff. del momento di attrito viscoso:

M l 2 ÿ + K a ẏ+ Mgl sin y =u ,

x 1= y , x 2= ẏ ; x˙1=x 2 ;
ponendo si ottiene

−g Ka u
ÿ= x˙2= sin x 1− x +
2 2
;
l Ml M l2

Linearizzazione:

Per lo stato di equilibrio, se , vale

Scrivendo tali relazioni in forma matriciale risulta

Questo vale però solo per piccole oscillazioni del pendolo.

Codice Matlab:

10
Luca Ortolomo | N46004643

p_pendolo.m conttine i dati del pentolo:

M=1 % massa del pendolo

g=9.81 % accelerazione di gravità

l=9.81/(4*pi^2) % lunghezza del pendolo

Ka=0 % coefficiente di attrito

un=0 % ingresso nominale

yn=asin(un/(M*g*l)) % uscita nominale

fpendolo.m simula il sistema effettivo:

function Y=fpendolo(U)

global M g l Ka

u=U(1); %ingressi del multiplexer

x1=U(2);

x2=U(3);

xp1=x2;

xp2=-9.81/l*sin(x1)+(u-Ka*x2)/(M*l^2);

y=x1;

Y=[y xp1 xp2]';

11
Luca Ortolomo | N46004643

Per ingresso costante pari a 1.85 otteniamo due grafici diversi:

SERBATOIO

12
Luca Ortolomo | N46004643

Se indichiamo con qi =u la portata volumetrica di alimentazione e con qu la portata


volumetrica di uscita, dovuta al prelievo o ad una perdita (disturbo).

Se qu è proporzionale alla velocità di efflusso secondo la regola di Torricelli, che possiamo ricavare

dall’equazione di Bernoulli, ovvero se: q u=k √ y

Ponendo x=y possiamo scrivere:

−k 1
ẋ= √ x + u , y=x
S S

Mentre se al posto del prelievo abbiamo una perdita, e quindi un disturbo che possiamo indicare
con u2, allora:

qu = u2 , u1=qi (u=¿T)

Avremo infine:

1 −1
ẋ=0 ∙ x+ [ S S ]
u= Ax+ Bu , y =1∙ x+ 0 ∙u=Cx+ Du

1 −1
Ovvero A=0,B= [ S S ]
, C=1, D=0.

SIMULINK:

13
Luca Ortolomo | N46004643

Come parametri per il controllore a relè si è impostato come Switch on point 8.25 e come Switch
off point 7.75; la pompa quindi inizia a erogare 250 mc/h quando il livello del serbatoio arriva a
7.75 e smette quando il livello risale a 8.25.

Impostando come consumo orario 100 mc/h otteniamo un consumo totale di 2487mc con i
seguenti risultati:

Possiamo cosi osservare come l’elettropompa venga azionata appena viene raggiunto lo Switch off

point e immediatamente disattivata al raggiungimento dello Switch on point.

14
Luca Ortolomo | N46004643

Se invece ci trovassimo in una situazione in cui la perdita di acqua è maggiore della portata
dell’elettropompa, ad esempio u2= 275, u1=150 :

Pur essendo l’elettropompa sempre attiva l’uscita d’acqua è maggiore dell’ingresso, portando il
serbatoio a svuotarsi completamente.

15
Luca Ortolomo | N46004643

RISCALDAMENTO DI UN COMPONENTE CICUITALE:

R= resistenza fissa

α1,α2= coefficienti termici di resistenza (positivi nei conduttori, negativi negli isolanti non perfetti)

ϑ a= temperatura ambiente=u2

ϑ=x=¿ temperatura del componente

v= tensione in ingresso= u1

Rc = resistenza variabile in base alla temperatura

C=capacità

G=conduttanza

Ic=corrente del circuito

Vogliamo trovare il punto di lavoro Pd

u1
I c=
R+ R c

R c∗ν 2
Pd =Rc∗I 2c = 2
=C ϑ ' +G(θ−ϑa )
( R+ Rc )

16
Luca Ortolomo | N46004643

Tenendo conto che

Rc ( ϑ ,ϑ a )=R 0 ¿

Rc ( x , u2 ) =R 0∗(1+α 1 ( x−u2 ) + α 2 ( x−u2 )2 )

Da queste si ha

' −G Rc ( x , u2 )∗u 21
x= ( x−u2 ) + 2
C C( R + Rc ( x , u2 ) )

R c ( x ,u 2 )∗u1
y 1=ν c =
R+ R c ( x ,u 2)

u1
y 2=I c =
R+ Rc ( x , u2 )

y 3=ϑ=x

Abbiamo ottenuto un modello matematico con la sua equzione di stato e di uscita, possiamo
usarlo per studiare due situazioni diverse :

1. Controllare ed analizzare un circuito nel quale sia presente un fusibile che in caso di
correnti e/o tensioni troppo elevate vada ad interrompere la continuità del circuito
2. Calcolare temperatura e resistenza, nonché il punto di lavoro, di un componente Rc, che
risente delle variazioni di temperatura.

MODELLO SIMULINK:

17
Luca Ortolomo | N46004643

Possiamo fornire in ingresso una combinazione tra impulso periodico e un gradino.

Fornendo in ingresso un treno di impulsi di periodo 5 e ampiezza 5 otteniamo:

18
Luca Ortolomo | N46004643

Mentre se in ingresso poniamo un gradino osserviamo che la temperatura del componente


aumenta avvicinandosi ad un asintoto.

19
Luca Ortolomo | N46004643

ANDAMENTO EPIDEMIA
Il problema più interessante, per attualità, è quello di prevedere in qualche modo l’andamento
della diffusione di un’epidemia in una popolazione.

Possiamo in particola provare a modellarlo considerando:

x1 = S i suscettibili (individui che possono incorrere nella malattia ma non ancora contagiati),

x2 = E gli infettati (individui che hanno contratto l’infezione ma non sono ancora contagiosi),

x3 = I gli infettivi (individui che sono ammalati e che trasmettono a loro volta la malattia ad

altri)

x4 = R gli immuni (individui che sono stati eliminati dalla cerchia dei suscettibili,
in quanto o totalmente guariti, o perché sono stati isolati o perché sono deceduti sia
per cause naturali sia in seguito al contagio stesso),

N = x1 + x2 + x3 + x4 la popolazione totale,

u = V il tasso di vaccinazione,

x1 = -m x1 + wx4 +n N - b x1x3 / N - Nu

x2 = -(m + s )x2 + b x1x3 / N

x3 = s x2 - (m + g )x3

x4 = g x3 - (m + w)x4 + Nu .

20
Luca Ortolomo | N46004643

Possiamo andare a simulare l’andamento di un’epidemia, nel caso non sia disponibile il vaccino e
nel caso sia disponibile, grazie al programma s_epidemia.m che fa uso di una simulazione, grazie
ad un modello simulink, per prevedere come cambiano nel tempo i diversi gruppi in cui è stata
divisa la popolazione in questo modello.

Risultati per S0=350;E0=200;I0=250;R0=200:

Risultati per S0=350;E0=200;I0=250;R0=200:

21
Luca Ortolomo | N46004643

In caso ic=0, non sia disponibile vaccino:

22
Luca Ortolomo | N46004643

In caso ic=1, sia disponibile un vaccino:

23
Luca Ortolomo | N46004643

MOTORE CORRENTE CONTINUA


Il modello del motore in corrente continua si basa su due equazioni: una di tipo meccanico e
l’altra di tipo elettromagnetico.

Condizione di equilibrio meccanico:


C m=Iα + K a ω+C r

Dove:

Cm =Kc*i coppia motrice uscente;

Cr = coppia resistente applicata al rotore;

I = momento di inerzia del rotore;

ω = velocità angolare del rotore;

Ka = coefficiente di attrito.

Poniamo i = x1 e ω = x 2, l’equazione precedente diventa:


K c x1=I ẋ 2+ K a x 2 +u2

Con Kc costante di proporzionalità tra la corrente nel circuito di alimentazione e la coppia


applicata al motore.
Per quanto riguarda invece l’equazione che descrive il circuito elettromagnetico, consideriamo
la legge di Faraday, secondo la quale la variazione del flusso di induzione magnetica ϕ (B)
produce una forza elettromotrice ξ che si oppone ad essa:
−d ϕ( B)
ξ=
dt

Applicando il principio di Kirchoff alla maglia abbiamo:


di
v = Ri + L +ξ
dt

24
Luca Ortolomo | N46004643

Il rotore, quindi, si muove con una velocità angolare ω e velocità lineare v = ωr (r = raggio del
rotore) sotto l’azione di un campo magnetico B uniforme. Il moto è regolato dalla seguente
equazione:
ξ = Blv = Blrω = K mω = K m x 2

che descrive, appunto, la dipendenza della forza contro-elettromotrice da x 2 tramite un


coefficiente di proporzionalità Km che dipende dalle caratteristiche del rotore e dal campo B.
L’equazione finale elettromagnetica, ricordando che v = u1, i = x 1, è:

u1=R x 1+ L x˙1+ K m x 2

L’ultima considerazione da fare è sui coefficienti di proporzionalità che abbiamo introdotto. In


questo caso è d’aiuto il principio di conservazione dell’energia, che impone l’uguaglianza tra la
potenza elettrica:
Pe = ξ i = Km ωi = Km ω x1

e la potenza meccanica:

Pm = F×v = Cm × ω = Kc ω x1

allora i coefficienti Kc e Km sono uguali e assimilabili in un unico coefficiente K.


Il sistema completo può essere descritto da un sistema lineare di 2 equazioni in 2 incognite x 1 e
x2, del tipo:
ẋ= Ax+ Bu
{ y=Cx+ Du

Dove

−R −K 1
A= L
K
I
[ ] [ ] L
−Ka
I
, B=
L
0
−1
I
0
, C=[ 0 1 ] , D= [ 0 0 ]

MODELLO SIMULINK

25
Luca Ortolomo | N46004643

Grazie agli switch presenti nel modello è possibile fornire ingressi di diversi tipi, 4 per la tensione e
2 per il carico.

Risultati simulazione con tensione costante e carico in ingresso come step a 10s:

26
Luca Ortolomo | N46004643

Osserviamo come la velocità raggiunga un regime stazionario, dopo un transitorio, che


dura fino all’istante t=10s, cioè quando entra in gioco anche la coppia resistente che
riduce il numero di giri.
27
Luca Ortolomo | N46004643

ANALISI SPETTRALE BRANO MUSICALE


Attraverso l’utilizzo del programma spettri.m che riceve in ingresso:

-u campioni del segnale

-fc frequenza di campionamento

-fi frequenza inferiore dell’intervallo [fi,fs] che si vuole visualizzare (<fc/2)

-fs frequenza superiore dell’intervallo [fi,fs] che si vuole visualizzare (>fi e <fc/20)

E restituisce in uscita :

-M spettro d’ampiezza

-F spettro di fase in gradi

-f frequenze

Possiamo produrre un brano musicale attraverso il programma musica.m definendo le note


musicali come sinusoidi di frequenze caratteristiche:

-DO=sin(2*pi*440*t)
-RE=sin(2*pi*494*t)
-MI=sin(2*pi*554*t)
-FA=sin(2*pi*587*t)
-SOL=sin(2*pi*659*t)
-LA=sin(2*pi*740*t)
-SI=sin(2*pi*831*t).

Una volta combinate tra di loro le note e prodotto il brano


musicale attraverso la funzione sound(sinusoidi, a*fc) con a che
può velocizzarne o rallentarne la riproduzione possiamo
analizzarne lo spettro.

Codice Matlab

%%% Autore: G. Celentano

clc, close all, clear all

fc=8e3; %frequenza di campionamento


t=0:1/fc:.5; %durata nota = 0.5sec

n1=sin(2*pi*440*t); %DO 1
n2=sin(2*pi*494*t); %RE 2
n3=sin(2*pi*554*t); %MI 3
n4=sin(2*pi*587*t); %FA 4

28
Luca Ortolomo | N46004643

n5=sin(2*pi*659*t); %SOL 5
n6=sin(2*pi*740*t); %LA 6
n7=sin(2*pi*831*t); %SI 7

linea1=[n1,n2,n5,n5,n7,n7,n5,n5];
linea2=[n4,n4,n3,n3,n2,n2,n1,n1];
linea3=[n5,n5,n4,n4,n3,n3,n2,n2];
brano=[linea1,linea2,linea3,linea3,linea1,linea2];

%sound(brano,fc)
%pause
sound(brano,2*fc)
pause
%sound(brano,0.5*fc)
%pause

note=[n1 n2 n3 n4 n5 n6 n7];
sound(note,fc);
spettri(note,1e4,0,1e3);

Analisi Spettrale note:

29
Luca Ortolomo | N46004643

ANTIFURTO
SCHEMA SIMULINK

Attraverso tre switch e due porte logiche, una OR e una AND, è possibile simulare il
comportamento di un sistema di antifurto composto da un interruttore di abilitazione, due sensori
e un lampeggiante con segnale acustico. In particolare dovrà accadere che:

SE l’interruttore di abilitazione è attivo l’antifurto dovrà suonare nel momento in cui uno o
entrambi i sensori vengono innescati.

30
Luca Ortolomo | N46004643

SE l’interruttore di alimentazione al contrario non è attivo, l’antifurto non dovrà essere attivato
anche nel caso in cui i sensori vengano innescati.

31
Luca Ortolomo | N46004643

CLOCK
Modello Simulink:

Grazie a questo modello possiamo simulare un semplice modello di un “clock” con delle
componenti base: una porta NOR e un Delay(Ritardo), per poi confrontarlo con un effettivo clock.

Dove la porta NOR restituisce 1 se nessuna delle due entrate è nulla:

-Se lo switch è impostato su ‘0’, allora l’uscita della porta sarà ‘1’ , di conseguenza l’uscita
successiva, a causa del Delay sarà ‘0’ e così via…

-Se lo switch è impostato su ‘1’ non si avrà mai la condizione necessaria per avere un’uscita
negativa dalla porta NOR, il clock è quindi disattivato o “spento”.

32
Luca Ortolomo | N46004643

Confronto tra “clock realizzato” attivo e “clock effettivo”:

33