Bei nichtlinearen Modellen kann ich dir nicht helfen. Kannst denn du überhaupt ein solches Modell regeln bzw. weißt wie man da einen Regler auslegen muss?
Ich würde erstmal die Daten wie angesprochen aufzeichnen und dann ein LTI Modell wählen. Ebenfalls würde ich nicht nur Messungen bei Schneidvorgängen durchführen, sondern eben auch bei Leerlauf. Für die Analyse könnte das nämlich sehr hilfreich sein
ich bin neu hier und möchte direkt mal etwas zum Besten geben
@Assem: Spannende Aufgabenstellung. DSP und Controlnix unterstützen hier wirklich gut.
Ich stimme DSP zu, dass die Vorschubgeschwindigkeit der Streckeneingang und die Schwingung der Ausgang ist.
Dies hatte auch Controlnix bereits am Anfang des Threads angedeutet.
Stell doch bitte folgende Messdaten zur Verfügung, dann geht es bestimmt schneller vorwärts:
Spalte 1: Zeit
Spalte 2: Eingang = Vorschubgeschwindigkeit (bitte gib an, ob es sich dabei um die Vorschub- oder Schnittgeschwindigkeit handelt)
Spalte 3: Ausgang = Amplitude der Schwingung
Schöne Grüße,
Melissa
die Messwerte die ich hab haben eine Konstante vorschubgeschwindigkeit und die maschine steht mir momentan nicht zur verfügung. ich hab nur messungen mit unterschiedliche vorschubgeschwindigkeit wobei die Vorschubgeschwindigkeit konstant während der schneidprozess ist.
es gibt bestimmt eine möglichkeit eine Funktion über mehrere Messung mit unteschiedliche Vors.gesch. zu bilden!!!!
ich hab die "Nonlinear ARX" verfahren für eine Messung durch geführt und habe 100% Fit bekommen und mit der "Prosecc modell" methode habe ich 60% Fit bekommen.
Nochmal...was hast du von einen nichtlinearen Modell? Kannst du auch einen nichtlinearen Regler auslegen?
Aber erkläre mir doch mal, wo du in der ident toolbox ein nichtlineares Modell auswählen kannst. Oder das gibt es in meiner Matlab Version nicht.
Hast du diesen Kanal der Vorschubgeschwindigkeit vorliegen? Ist in deinen Messdaten auch der Zeitbereich aufgezeichnet, wo das Schneidwerkzeug noch keinen Kontakt mit dem Material hat?
Kannst du mir mal bitte den GENAUEN Funktionsnamen nennen.
EDIT: Hat sich erledigt...die Funktion heißt idnlarx bzw. nlarx. Die habe ich nicht und da kann ich dir auch nicht weiterhelfen.
Ebenfalls wäre es gut, wenn du mir auch meine anderen Fragen beantwortest.
So solltest du an die Funktion kommen:
Code:
TS=1/4000;
Yarx = eff_a5(:); % Ausgang System
Uarx = ef_ys100(:); % Eingang System dataset=iddata(Yarx,Uarx,TS);
% Modell Ordnung festlegen, nk = Verzögerung um x Werte
na=2; nb=2; nk=1;
sysid = nlarx(dataset,[na nb nk]); % nichtlineares ARX Modell
sys=tf(d2d(sysid,TS))% in sys in nun die Übertragungsfunktion
fpe1=fpe(sysid) [yh,fit]=compare(dataset,sysid);
disp('fit ARMAX Modell'); disp(fit);
figure(1);
%subplot(211)
compare(dataset,sysid);
hold on;
T = 0:TS:((length(Yarx)-1)*TS) ;
plot(T,Yarx,'r.--');
hold on;
plot(T(1:length(Uarx)),Uarx,'r--');
ylabel('y(t)');
xlabel('Zeit in s');
title('Vergleich Modell und reales System');
grid on;
die Messung wurden aufgezwichnet bevor das werkzeug in das Material eindringt.
habe ebenfalls Messungen mit unterschiedliche konstante Vorschubgeschwindigkeiten.
TS=1/4000;
Yarx = eff_a5(:); % Ausgang System
Uarx = ef_ys100(:); % Eingang System dataset=iddata(Yarx,Uarx,TS);
% Modell Ordnung festlegen, nk = Verzögerung um x Werte
na=2; nb=2; nk=1;
sysid = nlarx(dataset,[na nb nk]); % nichtlineares ARX Modell
sys=tf(d2d(sysid,TS))% in sys in nun die Übertragungsfunktion
fpe1=fpe(sysid) [yh,fit]=compare(dataset,sysid);
disp('fit ARMAX Modell'); disp(fit);
figure(1);
%subplot(211)
compare(dataset,sysid);
hold on;
T = 0:TS:((length(Yarx)-1)*TS) ;
plot(T,Yarx,'r.--');
hold on;
plot(T(1:length(Uarx)),Uarx,'r--');
ylabel('y(t)');
xlabel('Zeit in s');
title('Vergleich Modell und reales System');
grid on;
Dann hat man aber wieder kein Eingangssignal. Das was du gepostet hast (Sensorsignal der Kraft am Material), kann man nicht verwenden. Warum...hat controlnix bereits erklärt.
Müsste man...aber am Modell ändert das nichts. Kannst es ja mal selbst testen.
aber was sich ändert ist: wenn ich die effektivwerte der Ein/Ausgan daten mit der geändert Abtastfreq. (40 hz) in der Tool box lade und ein schätz verfahren durchführe kriege ich ein fit von 50%. aber wenn ich die gleiche effektivewerte mit 4000 Hz lade und die mit das vorherieges geschäztes model vergliche bekomme ich fit von 90%
meine überlegung ist aus unterschiedliche Messungen eine Messung mache. z.b. aus jede Aufzeichnung ein Teil nehme und diese Teile zu ein Vektor mache. oder eine Funktion darauf legen
Kann sein...bei obigem Code und der ARX Funktion ändert sich überhaupt nichts. Ohnehin bin ich noch nicht davon überzeugt, mit dem Effektivwert zu arbeiten. Durch die Filterung und den Eff.wert änderst du die Rohdaten so ab, dass nun dem Systemverhalten schon die Filtereigenschaft überlagert ist. Bei einem Fenster von 100 Messwerten, die du hier verwendest, ist dieser Faktor keinesfalls unerheblich. Vermutlich wirst du dadurch ein Modell erhalten, dass mit den Rohdaten nicht viel gemein hat.
Aber ich kann dir hier eh nicht mehr weiterhelfen. Bei nichtlinearen Sachen bin ich raus...
Außerdem scheinst du immer noch nicht verstanden zu haben, dass dein Eingangs- und Ausgangssignal kaum etwas miteinander gemein haben. Im Eingang ist z.B. der von controlnix angesprochene auftretende Peak, der am Ausgang überhaupt nicht zu sehen ist. Für mich sind diese beiden Signale eher zwei Ausgänge an unterschiedlichen Stellen gemessen. Mit diesen Daten wirst du imho kein vernünftiges Modell für eine Regelung finden. Von daher macht es hier auch wenig Sinn, über dein nichtlineares Modell zu sprechen.
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.