% % pendolo.m % % Fondamenti di Automatica - Vercelli % (c) Fabrizio Dabbene - 2004 % % Simulazione dell'evoluzione libera del pendolo % tramite integrazione numerica dell'equazione differenziale % clear all; close all; clear global; % valori numerici % definisco le variabili globali (per poterle 'vedere' nella funzione f_pendolo) global m l g beta; m=1; l=1; g=9.8; % provare diversi valori di smorzamento beta=0.5; % beta=0; %non smorzato % beta=.1; %poco smorzato % beta=1; % molto smorzato: % condizioni iniziali (provare diversi valori) x0=[pi/4;0]; % tempo di simulazione t0=0; % istante iniziale tf=30; % istante finale dt=0.1; % intervallo di tempo t=t0:dt:tf; % tempo di simulazione Nt=length(t); % numero di istanti di tempo %------------------ simulazione sistema non lineare ------------------ [t,x_nl]=ode23('f_pendolo',t,x0); y_nl=x_nl(:,1); % uscita sistema non-lineare (angolo) figure(1) set(1,'pos',[20 300 970 393]);hold on % position/size of sim. window %%%%%%%%%%%%%%%%%%%%%%%%%%%% VISUALIZZAIONI %%%%%%%%%%%%%%%%%%%%%%%%%%%% %---------------- evoluzione dell'uscita ----------------------- figure(1),subplot(2,2,2) plot(t,y_nl(:,1),'r'); %sistema non lineare - in rosso title('evoluzione della uscita') xlabel('t'); ylabel('x_1'); %----- evoluzione dei movimenti nello spazio degli stati -------- figure(2) plot3(t,x_nl(:,1),x_nl(:,2),'r'); hold on; plot3(t0,x0(1),x0(2),'xr') grid; title('evoluzione dei movimenti nello spazio degli stati') xlabel('t'); ylabel('x_1'); zlabel('x_2'); %------ evoluzione delle traiettorie nello spazio degli stati ---- figure(1);subplot(2,2,4) plot(x_nl(:,1),x_nl(:,2),'r'); hold on; plot(x0(1),x0(2),'xr') grid; title('traiettorie nello spazio degli stati'); xlabel('x_1'); ylabel('x_2'); %------ simulazione grafica pendolo figure(1);subplot(2,2,1) simul_pendolo(x_nl,x0,t)