Discussion:
Bestimmung der Koplanaritaet
(zu alt für eine Antwort)
Stephan Neumeister
2007-01-21 16:45:48 UTC
Permalink
Hallo!

Ich habe da ein kleines Problem:
Ich möchte gerne die Koplanarität eines elektrischen SMD-Bauteils (IC
oder ähnliches) bestimmen. Dabei bezeichnet hier die "Koplanarität" den
größten Abstand eines Pins, wenn ich das Bauteil auf eine Ebene stelle.
Dieser darf eben einen bestimmten Wert (beispielsweise 150um) nicht
überschreiten.
Koplanarität ist in diesem Falls wohl nicht mit der mathemat. Definition
zu verwechseln....

Was ich habe:
Das Bauteil liegt "auf dem Rücken" mit den Pins nach oben.
Die Position des Pins in X-Y-Richtung ist gegeben.
Gemessen wird die Höhe Z der Pins.
Somit habe ich (im aktuellen Fall bei einem Bauteil mit 2x 4Pins = 8
Pins) 8 Punkte mit X,Y,Z Koordinaten.

Was ich nun also suchen muss, ist die "Aufsetzebene", auf welcher das
Bauteil beim setzen auf eine Ebene stehen bleibt. Dies wird mit
(mindestens) 3 Pins passieren. Der Max-Wert der Abstandswerte der Punkte
zur Aufsetzeben müsste dann die gesuchte Koplanarität ergeben.

Aber wie ermittle ich nun die Aufsetzebene?
Ich kann aus jeweils 3 Punkten eine Ebene (und deren Gleichung)
aufstellen (auch wenn ich Vektorrechnung zuletzt im Studium vor gut 13
Jahren hatte.... ;-)). Dabei werden sich dann aber auch Ebenen ergeben,
auf welche das Bauteil in der Realität niemals stehen wird, weil es z.B.
wegen seines Schwerpunktes auf einen anderen Pin/Punkt kippen wird.

Eine Überlegung, welche Ebenen als Aufsetzebene überhaupt in Frage
können wäre vielleicht folgende:

Der Schwerpunkt des Bauteils (bei symmetrischer Anordnung der Pins) kann
(in X-Y-Ebene) im Schnittpunkt der Symmetrielinien in X- und Y-Richtung
angenommen werden. Die 3 Pins/Punkte, auf der das Bauteil aufsitzen wird
wird, beschreiben ein Dreieck. Der Schwerpunkt muss nun innerhalb des
auf die X-Y-Ebene projizierte Dreiecks liegen.
Ich muss also nur Ebenen berücksichtigen, deren 3 Punkte dieses
Kriterium erfüllen.
Habe ich diese Ebenen bestimmt, dann muss ich überprüfen, ob irgendein
Pin/Punkt diese Ebene durchstößt; falls ja, kann dies nicht die gesuchte
Ebene sein.
Am Ende dürften nicht mehr viele Ebene übrig bleiben, welche diese
Kriterien erfüllen.
(Eventuell lassen sich die Ebenen noch etwas reduzieren, wenn man nur
bestimmte Winkel zwischen der Aufsetzebene und der X-Y-Ebene zulässt....).
Zu diesen verbleibende Ebenen muss ich nun noch jeweils die (im Beispiel
5) Abstandswerte bestimmen; der max. Wert ist dann die gesuchte
Koplanarität.


Habt Ihr Anmerkungen dazu?
Lässt sich das ganze weiter vereinfachen? Am einfachsten wäre natürlich
'ne einfache Formel, in die nur die Höhenwerte einzutragen sind.... ;-)

Und dann natürlich die Frage:
Wie lässt sich das z.B. in "Excel" (oder "Calc" oder jedem anderen
Tabellenkalkulationsprogramm) realisieren (ohne VBA)?

Wohl am besten mit einem Sheet, welches eine bestimmt Anordnung/Anzahl
von Pins unterstellt. Formelmässig könnte man dann alle (wegen
Schwerpunktbedingung oben) möglichen Ebenen berechnen.
Wegen "durchstoßender" Pins könnte man dann ein TRUE/FALSE für jede
Ebene ermitteln. (Dies dann auf noch eventuell für die Winkelbedingung.)
Zu jeder Ebene lassen sich dann noch 5 Abstände ermitteln und ein max()
darüber sollte dann ein Ergebnis liefern....

Oder hat jemand 'ne ganz andere Idee oder Lösungsansatz?
--
__
(_
__)tephan Neumeister
Christopher Creutzig
2007-01-21 20:30:20 UTC
Permalink
Post by Stephan Neumeister
Was ich nun also suchen muss, ist die "Aufsetzebene", auf welcher das
Bauteil beim setzen auf eine Ebene stehen bleibt. Dies wird mit
Die ist natürlich nicht eindeutig, sonst könnte das Ding ja nicht
wackeln. Aber jede mögliche Aufsetzposition entspricht einem Polygon der
konvexen Hülle (wobei Du die Punkte um ein paar auf dem Bauteil elbst
ergänzen solltest). Ich würde daher diese berechnen, alle Polygone, die
in eine völlig falsche Richtung zeigen, verwerfen und über den Rest
iterieren und das Polygon suchen, das den maximalen Abstand aller Punkte
zu der aufgespannten Ebene minimiert. Äh, war das irgendwie verständlich
ausgedrückt?
Post by Stephan Neumeister
Jahren hatte.... ;-)). Dabei werden sich dann aber auch Ebenen ergeben,
auf welche das Bauteil in der Realität niemals stehen wird, weil es z.B.
wegen seines Schwerpunktes auf einen anderen Pin/Punkt kippen wird.
Diese Punkt kannst Du vermeiden, indem Du nur die Polygone
akzeptierst, bei denen der Lotpunkt des Schwerpunkts des Bauteils im
Polygon liegt.
Post by Stephan Neumeister
Wie lässt sich das z.B. in "Excel" (oder "Calc" oder jedem anderen
Tabellenkalkulationsprogramm) realisieren (ohne VBA)?
Excel für ernsthafte Berechnungen - ach nee. Es gibt aber einen Haufen
Code für konvexe Hüllen, frag mal Tante Gugel danach.


Gruß,
Christopher
Gottfried Helms
2007-01-21 22:33:13 UTC
Permalink
Post by Stephan Neumeister
Hallo!
Ich möchte gerne die Koplanarität eines elektrischen SMD-Bauteils (IC
oder ähnliches) bestimmen. Dabei bezeichnet hier die "Koplanarität" den
größten Abstand eines Pins, wenn ich das Bauteil auf eine Ebene stelle.
Dieser darf eben einen bestimmten Wert (beispielsweise 150um) nicht
überschreiten.
Koplanarität ist in diesem Falls wohl nicht mit der mathemat. Definition
zu verwechseln....
Das Bauteil liegt "auf dem Rücken" mit den Pins nach oben.
Die Position des Pins in X-Y-Richtung ist gegeben.
Gemessen wird die Höhe Z der Pins.
Somit habe ich (im aktuellen Fall bei einem Bauteil mit 2x 4Pins = 8
Pins) 8 Punkte mit X,Y,Z Koordinaten.
Was ich nun also suchen muss, ist die "Aufsetzebene", auf welcher das
Bauteil beim setzen auf eine Ebene stehen bleibt. Dies wird mit
(mindestens) 3 Pins passieren. Der Max-Wert der Abstandswerte der Punkte
zur Aufsetzeben müsste dann die gesuchte Koplanarität ergeben.
Aber wie ermittle ich nun die Aufsetzebene?
Ich kann aus jeweils 3 Punkten eine Ebene (und deren Gleichung)
aufstellen (auch wenn ich Vektorrechnung zuletzt im Studium vor gut 13
Jahren hatte.... ;-)). Dabei werden sich dann aber auch Ebenen ergeben,
auf welche das Bauteil in der Realität niemals stehen wird, weil es z.B.
wegen seines Schwerpunktes auf einen anderen Pin/Punkt kippen wird.
Eine Überlegung, welche Ebenen als Aufsetzebene überhaupt in Frage
Der Schwerpunkt des Bauteils (bei symmetrischer Anordnung der Pins) kann
(in X-Y-Ebene) im Schnittpunkt der Symmetrielinien in X- und Y-Richtung
angenommen werden. Die 3 Pins/Punkte, auf der das Bauteil aufsitzen wird
wird, beschreiben ein Dreieck. Der Schwerpunkt muss nun innerhalb des
auf die X-Y-Ebene projizierte Dreiecks liegen.
Ich muss also nur Ebenen berücksichtigen, deren 3 Punkte dieses
Kriterium erfüllen.
Habe ich diese Ebenen bestimmt, dann muss ich überprüfen, ob irgendein
Pin/Punkt diese Ebene durchstößt; falls ja, kann dies nicht die gesuchte
Ebene sein.
Am Ende dürften nicht mehr viele Ebene übrig bleiben, welche diese
Kriterien erfüllen.
(Eventuell lassen sich die Ebenen noch etwas reduzieren, wenn man nur
bestimmte Winkel zwischen der Aufsetzebene und der X-Y-Ebene zulässt....).
Zu diesen verbleibende Ebenen muss ich nun noch jeweils die (im Beispiel
5) Abstandswerte bestimmen; der max. Wert ist dann die gesuchte
Koplanarität.
Habt Ihr Anmerkungen dazu?
Lässt sich das ganze weiter vereinfachen? Am einfachsten wäre natürlich
'ne einfache Formel, in die nur die Höhenwerte einzutragen sind.... ;-)
Wie lässt sich das z.B. in "Excel" (oder "Calc" oder jedem anderen
Tabellenkalkulationsprogramm) realisieren (ohne VBA)?
Wohl am besten mit einem Sheet, welches eine bestimmt Anordnung/Anzahl
von Pins unterstellt. Formelmässig könnte man dann alle (wegen
Schwerpunktbedingung oben) möglichen Ebenen berechnen.
Wegen "durchstoßender" Pins könnte man dann ein TRUE/FALSE für jede
Ebene ermitteln. (Dies dann auf noch eventuell für die Winkelbedingung.)
Zu jeder Ebene lassen sich dann noch 5 Abstände ermitteln und ein max()
darüber sollte dann ein Ergebnis liefern....
Oder hat jemand 'ne ganz andere Idee oder Lösungsansatz?
Multiple lineare Regression? 2 Hauptachsen, die dritte
ist dann die Z-Achse, von der es die geringste Abweichung
gibt. Falls die Idee funktioniert kannst du gerne ein
wenig mit MatMate 'rumprobieren; da geht das optisch fast
so nett wie in einem Spreadsheet, aber du hast alle
Matrixformeln zur Verfügung. Email, wenn das interessant
ist...

Gottfried Helms
Ralf Muschall
2007-01-27 17:24:46 UTC
Permalink
Post by Stephan Neumeister
Die Position des Pins in X-Y-Richtung ist gegeben.
Gemessen wird die Höhe Z der Pins.
Somit habe ich (im aktuellen Fall bei einem Bauteil mit 2x 4Pins = 8
Pins) 8 Punkte mit X,Y,Z Koordinaten.
Solange die Zahlen so klein bleiben, muss man sich ja keine Gedanken
über die Geschwindigkeit machen. 8 Punkte bilden 56 Ebenen (wenn die
Pinreihen parallel sind, sogar nur 48 (je einer rechts und zwei links
oder umgekehrt)), macht für die je 5 Restpunkte 280 bzw. 240 Abstände.
Dann verwirft man diejenigen Ebenen (und das sind vermutlich fast
alle) , bei denen mindestens ein Abstand negativ wird (hierzu würde
ich nur die z-Komponente des Abstands nehmen, das spart nochmal Zeit).

Wenn der Schwerpunkt im Polygon liegen soll, reduziert sich die Zahl
der zu betrachtenden Ebenen nochmal. Ich mache mal folgend Syntax:
(a|bc) heißt, Bein a (0..3) links und Beine b<c rechts spannen die
Ebene auf.

Schwerpunkt auf einer Kante:
12 mit Diagonale (0|03), (0|13), (0|23) und Symmetriebilder davon
4 mit je 3 der 4 Innenpunkte (1|12)
8 mit 2 Innenpunkten und einer Ecke (1|02)
Summe: 24

Schwerpunkt draußen:
4 (0|01)
4 (0|02)
4 (1|01)
4 (0|12)
Summe: 16

Schwerpunkt streng innen:
4 (1|13)
4 (1|03)
Summe: die restlichen 8

Da das Problem in x- und y-Richtung unabhängig voneinander skalierbar
ist (ich nehme an, dass Bauteile mit so extrem verbogenen Beinen, wo
das nicht mehr gilt, eh Ausschuss sind), kann man o.B.d.A den Pitch
und die Breite unabhängig voneinander gleich 1 setzen, d.h. die
Koordinaten sind dann links x=0, rechts x=1, und y jeweils aus
{0,1,2,3}. Für die interessanten 32 Ebenen kann man sich jetzt 160
einfache lineare Formeln machen, die aus den 3 z-Werten der
ebenenbestimmenden Beine und je 5 Fremdbeinen die z-Abweichung
angeben.

Beispiel für Ebene (0|01), Höhen za,zb,zc und Fremdbein (1|), Höhe zf:
-Fehler = zf - (za+zc-ab)
Post by Stephan Neumeister
innerhalb des auf die X-Y-Ebene projizierte Dreiecks liegen.
Projizieren muss man nur, wenn die Teile extrem krumm sind, ansonsten
lässt man einfach z weg und hat genug "projiziert".
Post by Stephan Neumeister
Zu jeder Ebene lassen sich dann noch 5 Abstände ermitteln und ein
max() darüber sollte dann ein Ergebnis liefern....
Man mache sich die restlichen 159 Formeln wie meine eine oben und ist
fertig. Die meisten sind aus Symmetriegründen bis auf Permutation der
Variablen untereinander identisch.

Mein Verfahren versagt dann, wenn man Bauteile hat, die so krumm sind,
dass ein Punkttripel, welches in unverbogener Form den Schwerpunkt
nicht enthielte, diesen bekommt. Außerdem sind meine z-Fehlerwerte
systematisch zu groß (aber nie zu klein), weil der Cosinus der
Ebenenneigung als Faktor fehlt.

Ralf
--
GS d->? s:++>+++ a+ C++++ UL+++ UH++ P++ L++ E+++ W- N++ o-- K-
w--- !O M- V- PS+>++ PE Y+>++ PGP+ !t !5 !X !R !tv b+++ DI+++
D? G+ e++++ h+ r? y?
Loading...