【传递函数matlab计算】检查对函数 ‘ilaplace‘ 的调用中是否存在不正确的参数数据类型或缺少参数

今天在自学自控原理的过程中遇到了一个小问题。想要把系统的传递函数变成时域下的函数形式,理所当然的想到了拉氏反变换,拉氏反变换在matlab中的指令是ilaplace()。

【传递函数matlab计算】检查对函数 ‘ilaplace‘ 的调用中是否存在不正确的参数数据类型或缺少参数_第1张图片

于是将得到的系统传递函数直接进行拉氏反变换想要得到结果,但是系统给出了如下错误提示:

 【传递函数matlab计算】检查对函数 ‘ilaplace‘ 的调用中是否存在不正确的参数数据类型或缺少参数_第2张图片

 在MATLAB手册中,对于ilaplace()函数的解释是这样的:

【传递函数matlab计算】检查对函数 ‘ilaplace‘ 的调用中是否存在不正确的参数数据类型或缺少参数_第3张图片

 在第一行给出的描述是这样的:

f = ilaplace(F) returns the Inverse Laplace Transform of F. By default, the independent variable is s and the transformation variable is t. If F does not contain silaplace uses the function symvar.

这句话的大概意思就是ilaplace(F)返回的是F的拉氏反变换,默认F是s构成的函数,返回值用t来构成,如果F中不含有s,那么使用系统变量。

但是当我们使用s构成传递函数的时候,s不再是一个普通的symvar,而是一个tf类型的变量,“tf”在matlab中表示传递函数模型,进一步说,由s构成的传递函数G(s),就不能直接使用ilaplace()进行反变换,需要将s变成symvar之后,才能将G(s)变成G(t).

tf 在matlab中的解释:

【传递函数matlab计算】检查对函数 ‘ilaplace‘ 的调用中是否存在不正确的参数数据类型或缺少参数_第4张图片

 而我们常常在matlab中建立传递函数的时候使用的

s=tf('s');

就已经将s以及由s构成的传递函数G(s)变成了tf类型。

如下实例:

clear;
clc;
s=tf('s');
G1=2/s;
G2=1/(s+3);
Rs=1/s;
Ns=1;
% 传递函数
G12=series(G1,G2);
Gcr=feedback(G12,1);
%输出
Crs=Gcr*Rs;

当在命令行窗口对Crs进行拉氏反变换的时候,会给出报错:

【传递函数matlab计算】检查对函数 ‘ilaplace‘ 的调用中是否存在不正确的参数数据类型或缺少参数_第5张图片

 此时将s变成系统变量symvar,并将此时的Crt传递函数复制给新变量准备进行拉氏反变换,然后进行拉氏反变换即可完成。

使用syms s重新对s定义,然后完成拉氏反变换即可。

【传递函数matlab计算】检查对函数 ‘ilaplace‘ 的调用中是否存在不正确的参数数据类型或缺少参数_第6张图片

你可能感兴趣的:(Matlab,matlab,开发语言,自动化)