%Programm zum Entwurf des Deadbeat-Reglers % % % zunächst Berechnung der Daten für den Deadbeat-Entwurf: %Abtastzeit: T T=1; %kontinuierliche Strecke: G G=tf(1,[1 2 2],'inputDelay',2*T); disp('Gegeben ist das folgende zeitkontinuierliche System:') G %zugehörige Z-ÜF: Gz Gz=c2d(G,T); disp('') disp('Daraus ergibt sich folgende zeitdiskrete Übertragungsfunktion:') Gz [Q,N]=tfdata(Gz);N=N{1:1}; Qneu=Q{1:1};clear Q;Q=Qneu(2:3); Gz1=tf(Q,N,T,'variable','z^-1'); Gz=Gz1;Gz.inputDelay=3; disp('bzw:') Gz %Führungs-ÜF für den "schnellen" Dead-Beat-Regler: Fw1 Fw1=tf(1,[1 0 0 0],T); % [Fp,Fq]=tfdata(Fw1); disp('') disp('Die Führungsübertragungsfunktion für die "schnelle" Dead-Beat-Regelung lautet:') Fw1 % "Schneller" Dead-Beat-Regler: Gk1 Gk1=tf(N,Q,T,'variable','z^-1')*1/(1-Fw1); [G1Q,G1N]=tfdata(Gk1); disp('') disp('Der "schnelle" Dead-Beat-Regler ergibt sich dann zu:') Gk1 % Führungs-ÜF für den normalen Dead-Beat-Regler: Fw2 Fw2=tf(Q,[1 0 0 0],T)/sum(Q); % Normaler Dead-Beat-Regler: Gk2 Q1=[0 0 0 Q]; % Q(z)*z^-3 Gk2=tf(N,[sum(Q)-Q1(1) -Q1(2:end)],T,'variable','z^-1'); [G2Q,G2N]=tfdata(Gk2); disp('') disp('Der eigentliche Dead-Beat-Regler lautet:') Gk2 % Gesamtsystem mit beiden Reglervarianten: Simulinkmodell deadb deadb