I've got another question relating to solving an equation to determine an angle of rotation but it's a far more complex one/system than I've been able to find information for online.
This relates to working with calculating the profile for a grinding wheel in a CNC machine based on the profile of the item we wish to grind (which is referred to as "Axial To Wheel" conversion) - the current routine uses Newton iteration to find a value, but there are some cases where this fails to find a value within the 30 iteration limit and defined tolerance ($\pm$ 0.001 from memory).
Essentially, the equation looks like this:
$\frac{(B_1 \cdot B_6 - B_3 \cdot B_4)}{(B_1 \cdot B_5 - B_2 \cdot B_4)} = 0$ (Eq. 1)
Where the different $B_1$ to $B_6$ are defined as follows:
$C_1 = 2\pi \dot Y_A$
$C_2 = 1 \div \sqrt{L^{2} + C_1^{2}}$
$SA = L \cdot C_2$
$CA = C_1 \cdot C_2$
$ST = cos (\theta_A - \frac{\pi}{2})$
$CT = sin (\theta_A - \frac{\pi}{2})$
$A =\beta \cdot L \div 2\pi$
$X_3 = X_A + A$
$B_1 = SA \cdot cos \gamma \cdot cos \delta - CA \cdot sin \beta \cdot cos \gamma \cdot sin \delta - CA \cdot cos \beta \cdot \sin \gamma$
$B_2 = SA \cdot sin \gamma \cdot cos \delta - CA \cdot sin \beta \cdot sin \gamma \cdot sin \delta + CA \cdot cos \beta \cdot cos \gamma$
$B_3 = X_3 \cdot SA + D \cdot CA \cdot sin \beta$
$B_4 = ST \cdot cos \gamma \cdot cos \delta + CT \cdot cos \beta \cdot cos \gamma \cdot sin \delta - CT \cdot sin \beta \cdot sin \gamma$
$B_5 = ST \cdot sin \gamma \cdot cos \delta + CT \cdot cos \beta \cdot sin \gamma \cdot sin \delta + CT \cdot sin \beta \cdot cos \gamma$
$B_6 = Y_A \cdot CT + X_3 \cdot ST - D \cdot cos \beta \cdot CT$
Where:
- ($X_A$, $Y_A$) represent the (X,Y) coordinates of the point on the thread
- $\theta_A$ represents the outward normal vector angle from the point on the thread
- ($X_B$, $Y_B$) represent the (X,Y) coordinates of a point on the wheel
- $\theta_B$ represents the outward normal vector angle from the point on the wheel
- L represents the thread lead measurement
- D represents the distance between the centres of the thread and wheel axes
I think I've got everything listed - if not, I'll have to come back and edit it later.
Does anyone know how I'd solve the equation (Eq. 1) to get the value of $\beta$ please?
I've tried to work it out for myself using Google searches but haven't really found articles that seemed relevant or helpful and it's probably the most complicated equation I've ever seen.
Thanks in advance.
Edit to add (16/11/2020):
Rearranging the formulas for $B_1$, $B_6$, $B_3$ and $B_4$ as per Yves' suggestion:
$B_1 = a_1 - b_1 \cdot cos \beta - c_1 \cdot sin \beta$
$B_6 = a_6 - b_6 \cdot \beta$
$B_3 = a_3 + c_3 \cdot sin \beta$
$B_4 = ST a_4 + b_4 \cdot cos \beta - c_4 \cdot sin \beta$
Where:
$a_1 = SA \cdot CG \cdot CD$
$b_1 = CA \cdot CG \cdot SD$
$c_1 = CA \cdot SG$
$a_3 = X_3 \cdot SA$
$c_3 = D \cdot CA$
$a_4 = ST \cdot CG \cdot CD$
$b_4 = CT \cdot CG \cdot SD$
$c_4 = CT \cdot SG$
$a_6 = Y_A cdot CT + X_3 \cdot ST$
$b_6 = D \cdot CT$
I'm not very familiar with Weierstrass transformations - I've found Wikipedia articles and a few other sources about them, but I don't remember learning the in high school or college, so any additional advice on them would be much appreciated.
Hint:
Your equation reduces to $$B_1B_6-B_3B_4=0,$$ where every term is a linear function of $\cos\beta$ and $\sin\beta$.
Using the Weierstrass transformation, you will replace these with rational expressions, and you will end-up with a quartic polynomial (unless the high-order term vanishes).
There are analytical expressions for the roots of a quartic, so your equation can be solved with non-iterative formulas.