Trying to solve for analysis of system stability with transfer functions where 1 + Gol = 0, x represents the S variable. It says "unable to find explicit solution".

2 views (last 30 days)
syms x
Gd = 1/((573.5*x)+1);
Gc = (1.09)*(1+((1/693.51*x)));
Gv = (0.020*(exp(-24*x))/((180*x)+1));
Gp = 1417.15/((573.51*x)+1);
Gm = [0.08*exp(-1*180*x)]/(1 + 505.6*x);
Gol = Gc*Gv*Gp*Gm;
eqn = 1 + Gol == 0
sol = solve (eqn, x)
Output:
Warning: Unable to find explicit solution. For options, see
help.
> In sym/solve (line 317)
In untitled (line 11)
sol =
Empty sym: 0-by-1

Answers (1)

Walter Roberson
Walter Roberson on 21 Nov 2021
format long g
syms x
Gd = 1/((573.5*x)+1);
Gc = (1.09)*(1+((1/693.51*x)));
Gv = (0.020*(exp(-24*x))/((180*x)+1));
Gp = 1417.15/((573.51*x)+1);
Gm = [0.08*exp(-1*180*x)]/(1 + 505.6*x);
Gol = Gc*Gv*Gp*Gm;
eqn = 1 + Gol == 0
eqn = 
SE = simplify(eqn)
SE = 
sol = solve(SE, x)
Warning: Unable to solve symbolically. Returning a numeric solution using vpasolve.
sol = 
double(limit(lhs(eqn), x, sol))
ans =
-1.23106198916657e-32
double(subs(lhs(eqn), x, sol))
ans =
1.41426664083306e-38
So slightly numerically unstable, but close enough to 0 that you are getting down to round-off error.

Categories

Find more on Symbolic Math Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!