发布网友 发布时间:2022-04-26 07:33
共3个回答
热心网友 时间:2022-06-25 08:33
ilaplace是符号数学工具箱(Symbolic Math Toolbox)的函数,tf是控制系统工具箱(Control System Toolbox)定义的类(同时也是该类的构造函数),不能直接调用ilaplace。
要使用ilaplace求逆变换,应该先获得传递函数的分子分母系数,然后转换为符号表达式,再调用ilaplace。参考代码如下:
>> G = tf([1 2],[2 3 4]);上面的代码只是一个简单的示范,可以解决楼主目前问的问题。但需要注意,有很多*条件:
(1)由于高次代数方程没有一般的求根公式,所以上述方法原则上不适用于高阶系统(原理性*,无解,可采取其它做法,下详);
(2)就一般情形而言,传递函数G可以是矩阵,上面的代码未考虑(需要的话可以自行改进);
(3)传递函数可能包含纯延迟环节,上面也未作处理(需要的话可以自行改进)。
对于高阶系统,由于代数方程解析法求根的困难,一般不能直接用ilaplace求解。这种情况下可借助数值方法求传函极点,并利用部分分式展开的方法得到“准解析解”,详细的做法可参考薛定宇《控制系统计算机辅助设计——MATLAB语言与应用》第四章相关内容(以下ppt的58-65页):
http://wenku.baidu.com/view/d4e81e1b227916888486d731.html
热心网友 时间:2022-06-25 08:33
这可能需要用符号函数来处理,这种数字离散形式的估计不行。追问那请问一下需要怎么做呢?
热心网友 时间:2022-06-25 08:34
我用的matlab2016a版本,按楼主的例程总是提示错误,报错提示The second argument must be a symbolic variable,第二个参数必须是符号变量。遂改为 ilaplace(poly2sym(n,sym(s))/poly2sym(d,sym(s))) 方可运行。