Está en la página 1de 2

CÓDIGO PARA LINEALIZAR

clear; close all; clc

% linealizacion sistema pendulo simple

syms g l x1 x2 Tc m % cabecera de variables simbolicas

f1=x2;

f2=(-g/l)*sin(x1) +(1/(m*l^2))*Tc;

f=[f1;f2]; % funcion para expansion de Taylor

% estados

x=[x1;x2];

U=Tc; % variable de entrada

% puntos de equilibrio

x1=0; % theta

x2=0; % dtheta

% linealizacion (derivadas parciales)

% | df1/dx1 df1/dx2 |

%A=| |

% | df2/dx1 df2/dx2 |

A=subs(jacobian(f,x));

B=subs(jacobian(f,U));

% usando parametros

A=subs(A,{'g','m','l','Tc'},[9.8,0.2,1,1]);

B=subs(B,{'g','m','l','Tc'},[9.8,0.2,1,1]);

% desde toolbox simbolico a toolbox de control

Ac=double(A);

Bc=double(B);

Cc=[1 0];

Dc=0;

% modelo espacio estado

H=ss(Ac,Bc,Cc,Dc); % ss=space state model

t=0:0.01:5;

y=impulse(H,t); % respuesta impulsiva


plot(t,y)

% modelo funcion de transferencia

[N,D]=ss2tf(Ac,Bc,Cc,Dc); % convertir espacio estado a fcn transf

F=tf(N,D);

printsys(N,D,'s')

También podría gustarte