function K=kmatrix(Z,S)
%KMATRIX  weighting factors for the optimization equation system of (BOD)
%         K=kmatrix(Z,S) whereat S=number of columns; Z=number of rows
%  BOD: Discontinuous Amplitude Optrimum - compare chapter 3 in:
%                     "Entwurf digitaler Regler für elektrische Antriebe",
%                     by G.-H. Geitner, 
%                     publisher: VDE-Verlag GmbH Berlin und Offenbach 1995
%                     (equation 3.11 and table 3.1 on page 69); 

% KEY WORDS: Discontinuous Amplitude Optrimum, weighting factors

% Copyright (c) 1997-2009. All Rights Reserved. 
%                    Dr. Gert-Helge Geitner; TU Dresden, Fak. ET,
%                    Elektrotechnisches Institut (ETI); Mommsenstr. 13;
%                    D-01062 Dresden, Germany;
%                    http://eeiwzg.et.tu-dresden.de/ae2_files/ae_1.htm

%------------------------German-------------------------------------------------
%KMATRIX  Wichtungsfaktoren fuer das Optimierungsgleichungssystem nach (BOD)
%         K=kmatrix(Z,S) mit S=Spaltenanzahl; Z=Zeilenanzahl
%  BOD: Digitales Betragsoptimum - vergleiche Kapitel 3 in Geitner, G.-H.:
%                     Entwurf digitaler Regler für elektrische Antriebe.
%                     VDE-Verlag GmbH Berlin und Offenbach 1995
%                     (Gleichung 3.11 und Tabelle 3.1 auf S.69); 

% SCHLUESSELWORTE: Digitales Betragsoptimum, Wichtungsfaktoren

% Copyright (c) 1997-2009. All Rights Reserved. 
%                    Dr. Gert-Helge Geitner; TU Dresden, Fak. ET,
%                    Elektrotechnisches Institut (ETI); Mommsenstr. 13;
%                    D-01062 Dresden, Germany;
%                    http://eeiwzg.et.tu-dresden.de/ae2_files/ae_1.htm
%-------------------------End German------------------------------------------

for i=1:Z
 for j=1:S
  if     i==1         K(i,j)=j^2;
  else   if j==1      K(i,j)=0;
	 elseif  j==2 K(i,j)=K(i,j-1)+K(i-1,j-1);
	 elseif  j==3 K(i,j)=K(i,j-1)+K(i,j-2)+K(i-1,j-1)+K(i-1,j-2);
	 else         K(i,j)=K(i,j-1)+K(i,j-2)-K(i,j-3)+K(i-1,j-1)+K(i-1,j-2);
end; end; end; end
