UNIVERSITY OF CALIFORNIA, SANTA CRUZ BOARD OF STUDIES IN COMPUTER ENGINEERING CMPE 4: INTRODUCTION TO LINEAR DYNAMICAL SYSTEMS Gabriel Hugh Elkaim Fall 5 longitudinal aircraft dynamics wind gust & control inputs linearized dynamics steady-state analysis eigenvalues & modes impulse matrices Aircraft Dynamics Example Longitudinal aircraft dynamics frag replacements θ body axis horizontal variables are (small) deviations from operating point or trim conditions state (components): u: velocity of aircraft along body axis v: velocity of aircraft perpendicular to body axis (down is positive) θ: angle between body axis and horizontal (up is positive) q = θ: angular velocity of aircraft (pitch rate)
Inputs disturbance inputs: u w : velocity of wind along body axis v w : velocity of wind perpendicular to body axis control or actuator inputs: δ e : elevator angle (δ e > is down) δ t : thrust 3 Linearized dynamics for 747, level flight, 4 ft, 774 ft/sec, u v q θ = +.3.39.3.65.39 7.74...49..8.4.6.598 units: ft, sec, crad (=.rad.57 ) [ ] δe δ t matrix coefficients are called stability derivatives outputs of interest: aircraft speed u (deviation from trim) climb rate ḣ = v + 7.74θ u u w v v w q θ 4 Steady-state analysis DC gain from (u w, v w, δ e, δ t ) to (u, ḣ): H() = CA B = [ 7. 5..34 4.9 ] gives steady-state change in speed & climb rate due to wind, elevator & thrust changes solve for control variables in terms of wind velocities, desired speed & climb rate [ ] [ ] [ ] δe.379.9 u uw = δ t..43 ḣ + v w
level flight, increase in speed is obtained mostly by increasing elevator (i.e., downwards) constant speed, increase in climb rate is obtained by increasing thrust and increasing elevator (i.e., downwards) (thrust on 747 gives strong pitch up torque) 5 Eigenvalues and modes eigenvalues are.375 ±.888j,.5 ±.674j two complex modes, called short-period and phugoid, respectively system is stable (but lightly damped) hence step responses converge (eventually) to DC gain matrix eigenvectors are x short = x phug =.5.5433.899.83.75.96..5 ± j ± j.35.835.677.4.63.94.8.637, 6 Short-period mode y(t) = Ce ta (Rx short ) (pure short-period mode motion).5 u(t).5 4 6 8 4 6 8.5 ḣ(t).5 4 6 8 4 6 8 3
only small effect on speed u period 7 sec, decays in sec 6. Phugoid mode y(t) = Ce ta (Rx phug ) (pure phugoid mode motion) u(t) 4 6 8 4 6 8 ḣ(t) 4 6 8 4 6 8 affects both speed and climb rate period sec; decays in 5 sec 7 Dynamic response to wind gusts impulse response matrix from (u w, v w ) to (u, ḣ) (gives response to short wind bursts) over time period [, ]:.. h h. 5 5. 5 5.5.5 h h.5 5 5.5 5 5 4
over time period [, 6]:.. h h. 4 6. 4 6.5.5 h h.5 4 6.5 4 6 8 Dynamic response to actuators impulse response matrix from (δ e, δ t ) to (u, ḣ) over time period [, ]: h h 5 5 5 5 5 3 h 5 5 5 h.5.5.5 5 5 over time period [, 6]: 5
h h 4 6 4 6 3 3 h 3 4 6 h 3 4 6 9 MATLAB code % 747 longitudinal axis example for 63 % 4 feet steady, level flight, 774 ft/sec % from bryson p5 % x = u, w, q, theta A = [ -.3.39 -.3; -.65 -.39 7.74 ;. -. -.49 ]; %input = u_w, w_w, delta_e, delta_t Bw= -A(:,[,]); Bc= [. ; -.8 -.4; -.6.598; ]; B = [Bw, Bc]; % output: u, climb rate = -w + 7.74 theta C = [ ; - 7.74]; H = -C*inv(A)*B; H = H(:,[3,4]); % DC gain matrix from delta_e delta_t to % speed, climb rate % modal analysis [V,Gam]=eig(A); xshort = real(v(:,)); xphug = real(v(:,3)); xshort = xshort/norm(xshort); xphug = xphug/norm(xphug); Nsamp = ; %number of time samples yshort=zeros(,nsamp); t=linspace(,,nsamp); for i=:nsamp, yshort(:,i)=c*expm(t(i)*a)*xshort; end figure(3) subplot(,,) plot(t,yshort(,:) ); axis([ - ]) ylabel( u ) subplot(,,) plot(t,yshort(,:) ); axis([ - ]) ylabel( hdot ) 6
print -deps aircraft_short Nsamp = 4; %number of time samples yshort=zeros(,nsamp); t=linspace(,,nsamp); for i=:nsamp, yphug(:,i)=c*expm(t(i)*a)*xphug; end figure(4) subplot(,,) plot(t,yphug(,:) ); axis([ - ]) ylabel( u ) subplot(,,) plot(t,yphug(,:) ); axis([ - ]) ylabel( hdot ) print -deps aircraft_phug % now do responses to various impulses figure() Nsamp = ; %number of time samples h=zeros(,nsamp); h=zeros(,nsamp); t=linspace(,,nsamp); for i=:nsamp, h(:,i)=c*expm(t(i)*a)*b(:,); % impulse response from u_w h(:,i)=c*expm(t(i)*a)*b(:,); % imp resp from v_w end subplot(,,) plot(t,h(,:) ); axis([ -..]) ylabel( h ) subplot(,,) plot(t,h(,:) ); axis([ -..]) ylabel( h ) subplot(,,3) plot(t,h(,:) ); axis([ -.5.5]) ylabel( h ) subplot(,,4) plot(t,h(,:) ); axis([ -.5.5]) ylabel( h ) print -deps aircraft_gust % now do same plots over longer time scale figure(); t=linspace(,6,nsamp); for i=:nsamp, h(:,i)=c*expm(t(i)*a)*b(:,); % impulse response from u_w h(:,i)=c*expm(t(i)*a)*b(:,); % imp resp from v_w end subplot(,,) plot(t,h(,:) ); axis([ 6 -..]) ylabel( h ) subplot(,,) plot(t,h(,:) ); axis([ 6 -..]) ylabel( h ) subplot(,,3) plot(t,h(,:) ); axis([ 6 -.5.5]) ylabel( h ) subplot(,,4) plot(t,h(,:) ); axis([ 6 -.5.5]) ylabel( h ) print -deps aircraft_gust % now do same things, but for actuator inputs figure() 7
Nsamp = ; %number of time samples h=zeros(,nsamp); h=zeros(,nsamp); t=linspace(,,nsamp); for i=:nsamp, h(:,i)=c*expm(t(i)*a)*b(:,3); % impulse response from delta_e h(:,i)=c*expm(t(i)*a)*b(:,4); % imp resp from delta_t end subplot(,,) plot(t,h(,:) ); axis([ - ]) ylabel( h ) subplot(,,) plot(t,h(,:) ); axis([ - ]) ylabel( h ) subplot(,,3) plot(t,h(,:) ); axis([ -5 5]) ylabel( h ) subplot(,,4) plot(t,h(,:) ); axis([ 3]) ylabel( h ) print -deps aircraft_act % now do same plots over longer time scale figure(); t=linspace(,6,nsamp); for i=:nsamp, h(:,i)=c*expm(t(i)*a)*b(:,3); % impulse response from delta_e h(:,i)=c*expm(t(i)*a)*b(:,4); % imp resp from delta_t end subplot(,,) plot(t,h(,:) ); axis([ 6 - ]) ylabel( h ) subplot(,,) plot(t,h(,:) ); axis([ 6 - ]) ylabel( h ) subplot(,,3) plot(t,h(,:) ); axis([ 6-3 3]) ylabel( h ) subplot(,,4) plot(t,h(,:) ); axis([ 6-3 3]) ylabel( h ) print -deps aircraft_act courtesy of Stephen Boyd @ Stanford University 8