simulink如何解非线性方程

simulink不是为解非线性方程而设计的,通常是用于解微分方程。
1、如果碰到复杂的非线性方程,建议通过换元法看看能不能转化为多项式方程,用roots函数求。

2、simulink中是不支持fsolve、syms函数的,不支持符号向量,

3、在连续采样时间的情况下,全局变量、调用外部函数coder.extrinsic都是不合法的结构,如果你想在外部函数中使用fsolve,就需要将整个模型设置为离散系统,且fsolve不能求解太过复杂的式子。
如果使用了外部函数或是全局变量,输出的信号曲线会强行离散化。
simulink如何解非线性方程_第1张图片
4、simulink的fcn中虽然不支持fsolve函数,但倒是有专门的fsolve模块,
https://ww2.mathworks.cn/matlabcentral/fileexchange/61633-fsolve-matlab-simulink-example
我找了很久,但都没找到,在simulink和matlab的官方文档,搜索“非线性方程”“fsolve simulink”等等,都没有。到最后,才意识到mathworks的file exchange也是一个需要着重搜索的平台,可以通过案例来学习一些生僻的函数。
不过,这个simulink的fsolve模块我自己没用过,你们可以用用看。

你可能感兴趣的:(matlab,学习)