%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% analisi nel dominio del tempo del modello serbatoio %% %%%% descritto da un sistema LTI del primo ordine: %%%%%% %%%% xdot =a*x+ b*u %%%%%%%%%%%%%%%%% %%%% y=c*x +d*u, %%%%%%%%%%%%%%%%%% %%%% dove %%%%%%%%%%%%%%%%%% %%%% a=-k/S, b=1/S, c=1, d=0, %%%%%%%%%%%%%%%% %%%% con S superficie/base del serbatoio %%%%%%%%%%% %%%% e k parametro dipendente dalla %%%%%%%%%%%%%% % %% sezione della valvola di uscita %%%%%%%%%%%%%%% clear all close all clc % definisci i parametri, la costante k e la superficie S % in particolare, studia il comportamento per due diversi valori di k % caso 1: k=k1; caso 2: k=k2) k1=1; k2=5; S=1; % per valori diversi di k, si hanno valori diversi di a, a=-k/S % definisci a (a1 ed a2), b, c e d per il modello i-s-u a1=-k1/S; a2=-k2/S; % b, c e d(=0) non dipendono da k b=1/S; c=1; d=0; % calcola tau per i due valori di k1 e k2 tau1=-1/a1; tau2=-1/a2; % definisci la rappresentazione i-s-u (mediante il comando ss, state space representation) % del modello serbatoio per i due valori di k1 e k2 sys1=ss(a1,b,c,d); sys2=ss(a2,b,c,d); % definisci la condizione iniziale dello stato x0=10; % simula l'evoluzione libera per i due sistemi, sys1 e sys2 figure(1) initial(sys1,x0) hold on grid on initial(sys2,x0) legend %%% definisci il sistema mediante fdt %%% caso 1 % calcolo fdt mediante ss2tf [num1,den1]=ss2tf(a1,b,c,d); % definisci la fdt G1_s=tf(num1,den1); % oppure editando la fdt una volta definita la variabile s; s=tf('s'); G1=c*b/(s-a1)+d; % guadagno statico per il caso 1 G0_1=dcgain(sys1); pole_G1=pole(G1); % polo di G1 = a1 %%% caso 2 % calcolo fdt mediante ss2tf [num2,den2]=ss2tf(a2,b,c,d); % definisci la fdt G2_s=tf(num2,den2); G2=c*b/(s-a2)+d; % guadagno statico per il caso 2 G0_2=dcgain(sys2); pole_G2=pole(G2); % polo di G2 = a2 % simula l'evoluzione forzata al gradino unitario (comando step) % per i due sistemi, sys1 e sys2 figure(2) step(sys1,sys2) grid on legend % stesso risultato utilizzando G1 e G2 figure(3) hold on step(G1,G2) grid on legend('k=k1','k=k2') % simulazione con gradino di ampiezza 2 opt2 = stepDataOptions('StepAmplitude',2); figure(4) hold on step(G1,G2,opt2) grid on legend % genera un segnale di tipo onda quadra utilizzando gensig [U,T] = gensig('square',10,20,0.1); % periodo=5, tempo finale=20, passo di camp.=0.1 figure (5) hold on lsim(sys1,U,T); grid on legend % per default visualizza il nome del sys, in questo caso sys2