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
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 ρ
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 %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
disp(' ')
i=input('Tasso di interesse annuo =');
nra=input('Numero di rate annue =');
dma=input('Durata del mutuo in anni =');
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;
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
4
Luca Ortolomo | N46004643
IV r = M V equazione di imbardata
x = u cosy - v sin y
y = u siny + v cosy
y=r,
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
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
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
function ac=fnavev(U)
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)
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
V
S x
Nave
y
d
y
Con V=√ u2 +v 2.
7
Luca Ortolomo | N46004643
8
Luca Ortolomo | N46004643
9
Luca Ortolomo | N46004643
Pendolo
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:
Codice Matlab:
10
Luca Ortolomo | N46004643
function Y=fpendolo(U)
global M g l Ka
x1=U(2);
x2=U(3);
xp1=x2;
xp2=-9.81/l*sin(x1)+(u-Ka*x2)/(M*l^2);
y=x1;
11
Luca Ortolomo | N46004643
SERBATOIO
12
Luca Ortolomo | N46004643
Se qu è proporzionale alla velocità di efflusso secondo la regola di Torricelli, che possiamo ricavare
−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
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
R= resistenza fissa
α1,α2= coefficienti termici di resistenza (positivi nei conduttori, negativi negli isolanti non perfetti)
ϑ a= temperatura ambiente=u2
v= tensione in ingresso= u1
C=capacità
G=conduttanza
u1
I c=
R+ R c
R c∗ν 2
Pd =Rc∗I 2c = 2
=C ϑ ' +G(θ−ϑa )
( R+ Rc )
16
Luca Ortolomo | N46004643
Rc ( ϑ ,ϑ a )=R 0 ¿
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
18
Luca Ortolomo | N46004643
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.
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
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.
21
Luca Ortolomo | N46004643
22
Luca Ortolomo | N46004643
23
Luca Ortolomo | N46004643
Dove:
Ka = coefficiente di attrito.
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
u1=R x 1+ L x˙1+ K m x 2
e la potenza meccanica:
Pm = F×v = Cm × ω = Kc ω x1
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
-fs frequenza superiore dell’intervallo [fi,fs] che si vuole visualizzare (>fi e <fc/20)
E restituisce in uscita :
-M spettro d’ampiezza
-f frequenze
-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).
Codice Matlab
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);
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.
-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
33