Hallo zusammen,
und zwar habe ich eine Frage zu einer Funktion die ich schreiben soll:
Erstmal geht es darum, dass ich ein in Excel manuell angelegtes Beispiel als Funktion scheiben soll, damit man das für jedes beliebige Beispiel ausführen kann.
Die Angaben und für was die Werte stehen und worum es genau geht ist denke ich irrelevant.
Hiermit bekomme ich Werte, mit denen die Größe eines Fehler berechnet werden soll. Und zwar brauche ich wie man sieht die Werte bei jedem Grad bis 360 Grad.
aValsADC1(iWinkel0To360) = 607.03 * Sin((iWinkel0To360 + dSin) * PI / 18) ' Die Werte für ADC1 und ADC" nach Steckung/Stauchung
Wie ihr schon seht steht in der Sinusfunktion ein dSin. Dies wird in Excel durch Klick auf einen Button erhöht oder eben erniedrigt.
Erstmal die Berechnung des Fehlers:
Err1 = ((fMeanADC1(0) - aValsADC1(0)) ^ 2) + ((fMeanADC1(1) - aValsADC1(18)) ^ 2) + ((fMeanADC1(2) - aValsADC1(36)) ^ 2) + ((fMeanADC1(3) - aValsADC1(54)) ^ 2) + ((fMeanADC1(4) - aValsADC1(72)) ^ 2) + ((fMeanADC1(5) - aValsADC1(90)) ^ 2) + ((fMeanADC1(6) - aValsADC1(108)) ^ 2) + ((fMeanADC1(7) - aValsADC1(126)) ^ 2) + ((fMeanADC1(8) - aValsADC1(144)) ^ 2) + ((fMeanADC1(9) - aValsADC1(162)) ^ 2) + ((fMeanADC1(10) - aValsADC1(180)) ^ 2) + ((fMeanADC1(11) - aValsADC1(198)) ^ 2) + ((fMeanADC1(12) - aValsADC1(216)) ^ 2) + ((fMeanADC1(13) - aValsADC1(234)) ^ 2) + ((fMeanADC1(14) - aValsADC1(252)) ^ 2) + ((fMeanADC1(15) - aValsADC1(270)) ^ 2) + ((fMeanADC1(16) - aValsADC1(288)) ^ 2) + ((fMeanADC1(17) - aValsADC1(306)) ^ 2) + ((fMeanADC1(18) - aValsADC1(324)) ^ 2) + ((fMeanADC1(19) - aValsADC1(342)) ^ 2) + ((fMeanADC1(20) - aValsADC1(360)) ^ 2)
Ist kompliziert geschrieben, aber lassen wir das erstmal dahingestellt, darum geht es ja nicht.
Ihr seht also dass der aValsADC1-Wert in jedem Winkel wichtig ist.
Ich habe oben den aValsADC1-Wert ja als Array mit 360 Werten gespeichert. Aber bei jedem dieser Werte 0-360 soll nun das dSin noch von sagen wir mal 0-50 in 0.01 Schritten verändert werden. Am Ende soll also Err1 möglichst klein sein und dafür muss ich eben dSin variabel einstellen können, um zu schauen bei welchem Wert der Fehler1 am kleinsten wird.
Wie kann ich das jetzt machen? Gibt es sowas wie ein Array im Array? Dass ich z.B. mit meinem Array von oben die Werte von 0-360 speichere und dann für jedes einzelne Grad mit einem Array noch die verschiedenen Werte bei veränderung von dSin speichere? Oder wie könnte man sowas machen?
Sorry wenn ihr das nicht ganz versteht, aber ich kann die Frage nicht besser stellen, weil ich euch dazu alles erklären müsste was die verschiedenen Werte sind und wo sie herkommen und was das Ganze für einen Sinn gibt, aber das ist über Tastatur etwas schwierig. Aber vielleicht klappt es ja und mit kann jemand helfen..
Gruß
und zwar habe ich eine Frage zu einer Funktion die ich schreiben soll:
Erstmal geht es darum, dass ich ein in Excel manuell angelegtes Beispiel als Funktion scheiben soll, damit man das für jedes beliebige Beispiel ausführen kann.
Die Angaben und für was die Werte stehen und worum es genau geht ist denke ich irrelevant.
Hiermit bekomme ich Werte, mit denen die Größe eines Fehler berechnet werden soll. Und zwar brauche ich wie man sieht die Werte bei jedem Grad bis 360 Grad.
aValsADC1(iWinkel0To360) = 607.03 * Sin((iWinkel0To360 + dSin) * PI / 18) ' Die Werte für ADC1 und ADC" nach Steckung/Stauchung
Wie ihr schon seht steht in der Sinusfunktion ein dSin. Dies wird in Excel durch Klick auf einen Button erhöht oder eben erniedrigt.
Erstmal die Berechnung des Fehlers:
Err1 = ((fMeanADC1(0) - aValsADC1(0)) ^ 2) + ((fMeanADC1(1) - aValsADC1(18)) ^ 2) + ((fMeanADC1(2) - aValsADC1(36)) ^ 2) + ((fMeanADC1(3) - aValsADC1(54)) ^ 2) + ((fMeanADC1(4) - aValsADC1(72)) ^ 2) + ((fMeanADC1(5) - aValsADC1(90)) ^ 2) + ((fMeanADC1(6) - aValsADC1(108)) ^ 2) + ((fMeanADC1(7) - aValsADC1(126)) ^ 2) + ((fMeanADC1(8) - aValsADC1(144)) ^ 2) + ((fMeanADC1(9) - aValsADC1(162)) ^ 2) + ((fMeanADC1(10) - aValsADC1(180)) ^ 2) + ((fMeanADC1(11) - aValsADC1(198)) ^ 2) + ((fMeanADC1(12) - aValsADC1(216)) ^ 2) + ((fMeanADC1(13) - aValsADC1(234)) ^ 2) + ((fMeanADC1(14) - aValsADC1(252)) ^ 2) + ((fMeanADC1(15) - aValsADC1(270)) ^ 2) + ((fMeanADC1(16) - aValsADC1(288)) ^ 2) + ((fMeanADC1(17) - aValsADC1(306)) ^ 2) + ((fMeanADC1(18) - aValsADC1(324)) ^ 2) + ((fMeanADC1(19) - aValsADC1(342)) ^ 2) + ((fMeanADC1(20) - aValsADC1(360)) ^ 2)
Ist kompliziert geschrieben, aber lassen wir das erstmal dahingestellt, darum geht es ja nicht.
Ihr seht also dass der aValsADC1-Wert in jedem Winkel wichtig ist.
Ich habe oben den aValsADC1-Wert ja als Array mit 360 Werten gespeichert. Aber bei jedem dieser Werte 0-360 soll nun das dSin noch von sagen wir mal 0-50 in 0.01 Schritten verändert werden. Am Ende soll also Err1 möglichst klein sein und dafür muss ich eben dSin variabel einstellen können, um zu schauen bei welchem Wert der Fehler1 am kleinsten wird.
Wie kann ich das jetzt machen? Gibt es sowas wie ein Array im Array? Dass ich z.B. mit meinem Array von oben die Werte von 0-360 speichere und dann für jedes einzelne Grad mit einem Array noch die verschiedenen Werte bei veränderung von dSin speichere? Oder wie könnte man sowas machen?
Sorry wenn ihr das nicht ganz versteht, aber ich kann die Frage nicht besser stellen, weil ich euch dazu alles erklären müsste was die verschiedenen Werte sind und wo sie herkommen und was das Ganze für einen Sinn gibt, aber das ist über Tastatur etwas schwierig. Aber vielleicht klappt es ja und mit kann jemand helfen..
Gruß