% Esercitazione Fondamenti di Automatica
% 
% Generico sistema del secondo ordine
% con fattore trinomio a denominatore
% e guadagno
% Risposta forzata ad un ingresso sinusoidale
%
% I dati sono forniti dall'utente 
%
% (ultima modifica 19/03/99)
%

clc
clear all
close all

echo on

% DATI DEL SISTEMA
echo off

omn = input('Pulsazione naturale:  ');
zeta = input('Smorzamento:  ');
gua = input('Guadagno:  ');


echo on

% INGRESSO SINUSOIDALE
echo off

omu = input('Pulsazione del segnale di ingresso:  ');
amp = input('Ampiezza del segnale di ingresso:  ');
tf = input('Durata della simulazione:  ');

Num = [gua];
Den = [1/omn^2, 2*zeta/omn, 1];

echo on

% IL SISTEMA SCELTO E'
echo off

printsys(Num,Den,'s')

pause

lim=max(abs(zeta*omn),abs(sqrt(1-zeta^2)*omn));
figure(1)
plot(-zeta*omn, sqrt(1-zeta^2)*omn, '*', -zeta*omn, -sqrt(1-zeta^2)*omn, '*')
axis([-2*lim, 2*lim, -2*lim, 2*lim])
hold on
plot([0,-zeta*omn],[0,sqrt(1-zeta^2)*omn],':')
plot([0,-zeta*omn],[0,-sqrt(1-zeta^2)*omn],':')

plot([-2*lim,2*lim],[0,0],'-')
plot([0,0],[-2*lim,2*lim],'-')
title('Poli nel piano complesso')
hold off

om= logspace(log10(omn/100),log10(100*omn),500);

figure(2)
bode(Num,Den,om)
subplot(211)
title('Diagrammi di Bode')

t = 0:0.02*2*pi/omn:tf;
u= amp*sin(omu*t);

figure(3)
lsim(Num,Den,u,t)
title('Evoluzione forzata con ingresso sinusoidale')
grid



