No BSD License  

Highlights from
Control of Spacecraft and Aircraft

[FD,GD,AD,ND,BD]=cvrt(F,G,A,N,B,TS)
function [FD,GD,AD,ND,BD]=cvrt(F,G,A,N,B,TS)
%[FD,GD,AD,ND,BD]=cvrt(F,G,A,N,B,TS)
  % Converts continuous system and quadratic performance index to
  % equivalent discrete system and quadratic performance index;
  % Jcont=integral(x'Ax+2*x'Nu+u'Bu)dt, dx/dt=Fx+Gu;
  % Jdisc=sum(x'ADx+2x'NDu+u'BDu), x(k+1)=FDx(k)+GDu(k);
  % TS=sample time;                                          7/90
%
[NS,NC]=size(G); Z1=zeros(NS);Z2=zeros(NS,NC); B2=sqrt(B);
S=[-F',eye(NS),Z1,Z2;Z1,-F',A,N/B2; Z1,Z1,F,G/B2; Z2',Z2',Z2',...
   zeros(NC)]; SD=expm(S*TS); K1=SD([1:NS],[3*NS+1:3*NS+NC]); 
G2=SD([NS+1:2*NS],[2*NS+1:3*NS]);
H2=SD([NS+1:2*NS],[3*NS+1:3*NS+NC]);
FD=SD([2*NS+1:3*NS],[2*NS+1:3*NS]);
G3=SD([2*NS+1:3*NS],[3*NS+1:3*NS+NC]); GD=G3*B2;
AD1=FD'*G2;AD=(AD1+AD1')/2; ND=FD'*H2*B2; BD1=G'*FD'*K1;
BD=TS*B+B2'*(BD1+BD1')*B2;

Contact us at files@mathworks.com