You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It seems your method is sensitive to the settings of D, T, and error (varepsilon). I tried difeerent settings but none of them give expected results and some of them seems not correct. Although maybe I'm wrong, could someone help on this?
You should remove the requirement on the initial acknowledgement of equilibrium point values. Refer to the method above I referred to.
The good thing of your method is it does NOT limited to the degree of 2 of ODE fcn.
The text was updated successfully, but these errors were encountered:
Thank you for your interest in the toolbox. Indeed, most solvers have difficulties in solving accurately the SDPs that come from the moment-SoS hierarchy, hence some numerical artifacts in the obtained results. That being said, I will answer your points one by one:
Indeed, the method is sensitive to all of its parameters, and identifying good settings is an open question so far; a quick comment on the "partially correct" plot that you shared: although it might sound unsatisfying, this often happens with the method (regardless of the implementation), and the quick fix just consists in ignoring all connected components that do not contain the original equilibrium point; indeed, the current method uses monomials as the basis of polynomials, and in practice (at reasonable degrees) this choice produces very rigid polynomials whose behavior is globally fixed by their local values; here, the solver puts all its power to produce the approximation containing the equilibrium point, at the price of numerical inaccuracy in other regions. Also, remember that the plots have no meaning outside of the admissible set X, as polynomials are only constrained within this set. One can compare it with Lyapunov functions: outside of their domain, these functions are totally free, and they only decrease along trajectory within a neighbourhood of the equilibrium point; the same occurs here, so that you can ignore the red lines at the bottom of the figure.
We wanted to remove this requirement, but it is needed both in the system's recasting (enforcing that the equilibrium point is 0) and in the plotting of the RoA approximation. Having 0 as the equilibrium is a must in polynomial optimization with monomials (because they vanish only at this point), and without this assumption numerical accuracy would be even worse than in the current setting.
Indeed, this method can handle a lot of dynamical systems, from polynomial systems with degree higher than 2 to trigonometric-polynomial systems; the next steps will be to include even more nonlinearities such as saturations.
First, really thanks for sharing this. However I find something that seems need improvements.
![image](https://private-user-images.githubusercontent.com/141780658/259573109-96ef99c5-13c2-4b5f-ad43-d8861a27a283.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjE3NjIsIm5iZiI6MTczOTI2MTQ2MiwicGF0aCI6Ii8xNDE3ODA2NTgvMjU5NTczMTA5LTk2ZWY5OWM1LTEzYzItNGI1Zi1hZDQzLWQ4ODYxYTI3YTI4My5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQwODExMDJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lNTNlZmNlMTkyMDQyODYwNjQ2MzIxOTBmZjYxNzVkYTQwZGUxZjg2YThmNDZhMjQ0NDc3ZDRhYTVhNDJmNGRhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.w2e2if-Z-vYck-Jm0-onjPL6hUEvRwSsStL15id-UJc)
So I tried on Swing Equation, which should give me a similar result as using this method (Phase Portrait Plotter on 2D phase plane
[Version 1.0.3]
(https://www.mathworks.com/matlabcentral/fileexchange/110785-phase-portrait-plotter-on-2d-phase-plane#version_history_tab) (370 KB) by [Yu Zhang]
The codes I tried using your method are attached below (note some \times "*" operators are missing):
clf;
eq = [sin(pi/6);cos(pi/6);0];
dev = [1;1;4];
ang_ind = [1,2];
pow_sys = SOStab(eq,dev,ang_ind);
pow_sys.dynamics = [pow_sys.x(3)*pow_sys.x(2);-pow_sys.x(3)pow_sys.x(1);
0.5 - pow_sys.x(1) - 0.2pow_sys.x(3)
];
pow_sys.SoS_out(6,14,0.1);
vopow_sys = value(pow_sys.vcoef_outer);
wopow_sys = value(pow_sys.wcoef_outer);
pow_sys.plot_roa([1,2],3,'outer',0,"\theta","\omega");
The result looks like this, partially correct:
![image](https://private-user-images.githubusercontent.com/141780658/259573020-61901f19-ce79-4b2a-ba1a-994f82011765.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjE3NjIsIm5iZiI6MTczOTI2MTQ2MiwicGF0aCI6Ii8xNDE3ODA2NTgvMjU5NTczMDIwLTYxOTAxZjE5LWNlNzktNGIyYS1iYTFhLTk5NGY4MjAxMTc2NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQwODExMDJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kNjcxNTE4NzJiMmQwZDU3MzRkZWJmZWJmNTdkZjcyM2NkYWU1NTc2YjdjMjUzNTIwYjM4YTZjYTEyM2VmMzAwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.EUAafiyAeE2MYdancWki_isywLdqz-XhuqVPpbdROLM)
My comments are:
The text was updated successfully, but these errors were encountered: