📄 vpg_algorithmus_ws07.m
字号:
%Simulationstechnik ss2008
%Beleg 1
%Gruppe 5
%Xie zheng;Li da;Yang le;Peng si
% 1. uebung Simulationstechnik
% WS 2005/2006/2008 Prof. Janschek / Dr. Range / Dr.-Ing. S. Dyblenko
%
% vpg_algorithmus_ws07.m - Realisierung der VPG-Methode mit Fehlerschaetzung
% fuer PT1-Glied
% zu ergaenzende Codezeilen sind mit ">>> ergaenzen ...." und "..."gekennzeichnet
clear all % Loesche Arbeitsspeicher
Tm = 10; % Konstante des PT1
h = .1; % Schrittweite
t0 = 0; % Integrationsbeginn
tf = 300; % Integrationsende
t = []; % Zeitwerte fuer Plot [s]
d = []; % Fehler-Schaetzwerte
u = []; % Stellwerte u(t)
y = []; % Ausgangswerte y(t)
ys = []; % Soll-Ausgangswerte y_soll(t)
% Initialisierung
[dum,x(1)] = sysmodel_pt1_muster_ws07([],[],[],0);
d(1) = 0;
% Integration nach VPG-Methode
ti = t0;
i = 1;
while ti <= tf
% Berechnung des Soll-Ausgangswertes
ys(i) = u_ys(ti); %>>> ergaenzen ....
% Berechnung des Stellwertes
u(i) = u_sp(ti); %>>> ergaenzen ....
%ys = u(i)*(1-exp((-1/Tm)*ti));
% Berechnung des Ausgangswertes
y(i) = sysmodel_pt1_muster_ws07( ti,x(i) , u(i) , 3); %die Parameter einsetzen
% Berechnung der Koeffizienten fuer VPG-Methode
k1 = sysmodel_pt1_muster_ws07( ti,x(i) , u(i) , 1); %die Parameter einsetzen
k2 = sysmodel_pt1_muster_ws07( ti+h/2,x(i)+(h/2)*k1 , u(i) , 1); %die Parameter einsetzen
k3 = sysmodel_pt1_muster_ws07( ti+h,x(i)-h*k1+2*h*k2 , u(i), 1); %die Parameter einsetzen
% Berechnung des Zustands-Schaetzwertes x(ti+h)
x(i+1) = x(i)+h*k2;%>>> ergaenzen ....
% Berechnung der LDF Fehlerabschaetzung d(ti+h)
d(i+1) = (h/6)*(k1+4*k2+k3)-h*k2;%>>> ergaenzen ....
t(i) = ti; % Zeitwert fuer Plot speichern
ti = ti + h; % Zeitvariable um einen Schritt erh?hen
i = i + 1; % Index inkrementieren
end
d = d(1:end-1);
result=[t;d];
% Anzeige der Ergebnisse
figure(1);
subplot(2,1,1); plot(t,u); title('Eingang PT1-Glied');zoom on;grid on;
subplot(2,1,2); plot(t,y); title('Ausgang PT1-Glied');zoom on;grid on;
xlabel('Zeit, s');
figure(2);
subplot(2,1,1); plot(t,y-ys,'r.-'); title('GDF berechnet');zoom on;grid on;
tit=sprintf('LDF gesch?tzt: max. Betrag = %g',max(abs(d)));
subplot(2,1,2); plot(t,d,'.-'); title(tit);zoom on;grid on;
xlabel('Zeit, s');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -