0
$\begingroup$

I have the following set of equations:

1:

$f(x,y,z) = f_xx+f_yy+f_zz + d_1$

$g(x,y,z) = g_xx+g_yy+g_zz + d_2$

where $ f_x,f_y,f_z, d_1, g_x,g_y,g_z, d_2$ are known scalar constants, and

$x,y,z \subset(-1e5,1e5)$

2:

$r(f,g) = \sqrt{f^2+g^2}$

$N_c(f,g) = \sqrt{(ff_x+gg_x)^2 + (ff_y+gg_y)^2 + (ff_z+gg_z)^2}$

$N_s = \sqrt{(f_yg_z-f_zg_y)^2+(f_zg_x-f_xg_z)^2+(f_xg_y-f_yg_x)^2}$

3:

$v_{zd} = \frac{-V(ff_z+gg_z)tanh(kr)}{N_c} + \frac{V(f_xg_y-f_yg_x)sech(kr)}{N_s}$

$v_{xd} = \frac{-V(ff_x+gg_x)tanh(kr)}{N_c} + \frac{V(f_yg_z-f_zg_y)sech(kr)}{N_s}$

where $k$ is unknown number which I want to find.

4:

$\chi_d = atan2(v_{zd}, v_{xd})$

$B_x = \frac{\partial \chi_d}{\partial x}$

$B_y = \frac{\partial \chi_d}{\partial y}$

$B_z = \frac{\partial \chi_d}{\partial z}$

I've been informed to find the value of $k$ from the last following two inequalities:

5:

$\sqrt{B_x^2 + B_z^2} \le \frac{7(1-\alpha)\dot{\chi}_{max}}{10V}$

$\lvert{B_y}\rvert \le \frac{\alpha\dot{\chi}_{max}}{V}$

with $0 < \alpha < 1$

and $\dot{\chi}_{max}, V$ are known constants.

Just to make things little more easier, let $\alpha = 0.5, \dot{\chi}_{max} = 0.3, V = 50$

The ultimate problem here is that $B_x, B_y, B_z$ do not have explicit symbolic equations because I have to compute them numerically since their direct symbolic equations are too complicated even for the Matlab symbolic engine.

So the question is: how to numerically solve equations (5:) for the variable $k$ in Matlab/Ocatve?

$\endgroup$
0
0
$\begingroup$

I have finally solved this set symbolically. In the original paper which I've used I have noticed the implicit assumption:

$lim(k*r) = 0$

Therefore symbolic evaluation gives:

syms fx fy fz d1 gx gy gz d2 real; syms x y z real; syms k positive; syms s positive; syms V positive; syms F G R NC NS; syms chi_rate_max; syms alpha positive;

s = sym(1);

f(x,y,z) = fx*x + fy*y + fz*z + d1; g(x,y,z) = gx*x + gy*y + gz*z + d2;

r(x,y,z) = sqrt(f^2 + g^2); Nc(x,y,z) = sqrt((f*fx + g*gx)^2 + (f*fy + g*gy)^2 + (f*fz + g*gz)^2); Ns = sqrt((fy*gz - fz*gy)^2 + (fz*gx - fx*gz)^2 + (fx*gy - fy*gx)^2);

vx_d(x,y,z) = sym(-1)*V*(f*fx + g*gx)*tanh(k*r)/Nc + s*V*(fy*gz - fz*gy)*sech(k*r)/Ns; vy_d(x,y,z) = sym(-1)*V*(f*fy + g*gy)*tanh(k*r)/Nc + s*V*(fz*gx - fx*gz)*sech(k*r)/Ns; vz_d(x,y,z) = sym(-1)*V*(f*fz + g*gz)*tanh(k*r)/Nc + s*V*(fx*gy - fy*gx)*sech(k*r)/Ns;

chi_d = atan2(vz_d, vx_d);

B_x = diff(chi_d, x);

B_x = subs(B_x, d1 + fx*x + fy*y + fz*z, F); B_x = subs(B_x, d2 + gx*x + gy*y + gz*z, G); B_x = subs(B_x, sqrt(F^2 + G^2), R); B_x = subs(B_x, R*k, 0); B_x = subs(B_x, sqrt((F*fx + G*gx)^2 + (F*fy + G*gy)^2 + (F*fz + G*gz)^2), NC); B_x = subs(B_x, sqrt((fy*gz - fz*gy)^2 + (fz*gx - fx*gz)^2 + (fx*gy - fy*gx)^2), NS); B_x = simplify(B_x);

B_y = diff(chi_d, y); B_y = subs(B_y, d1 + fx*x + fy*y + fz*z, F); B_y = subs(B_y, d2 + gx*x + gy*y + gz*z, G); B_y = subs(B_y, sqrt(F^2 + G^2), R); B_y = subs(B_y, R*k, 0); B_y = subs(B_y, sqrt((F*fx + G*gx)^2 + (F*fy + G*gy)^2 + (F*fz + G*gz)^2), NC); B_y = subs(B_y, sqrt((fy*gz - fz*gy)^2 + (fz*gx - fx*gz)^2 + (fx*gy - fy*gx)^2), NS); B_y = simplify(B_y);

B_z = diff(chi_d, z); B_z = subs(B_z, d1 + fx*x + fy*y + fz*z, F); B_z = subs(B_z, d2 + gx*x + gy*y + gz*z, G); B_z = subs(B_z, sqrt(F^2 + G^2), R); B_z = subs(B_z, R*k, 0); B_z = subs(B_z, sqrt((F*fx + G*gx)^2 + (F*fy + G*gy)^2 + (F*fz + G*gz)^2), NC); B_z = subs(B_z, sqrt((fy*gz - fz*gy)^2 + (fz*gx - fx*gz)^2 + (fx*gy - fy*gx)^2), NS); B_z = simplify(B_z);

ineq1 = sqrt(simplify(B_x^2 + B_z^2)) <= sym(7)*(sym(1)-alpha)*chi_rate_max/(sym(10)*V); ineq2 = abs(B_y) <= alpha*chi_rate_max/V;

These last two inequalities can be solved symbolically or by hand calculations.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.