matlab 我是菜鸟,比如一个标准的二阶传递函数G(S)=ωn^2/(S^2+2*ζ*ωn*S+ωn^2)由于过程需要 ωn ζ 取很多值 能不能将这个传递函数编成一个函数,要用的时候调用就可以了(能不能用function语句实现?
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/08 22:49:28
matlab 我是菜鸟,比如一个标准的二阶传递函数G(S)=ωn^2/(S^2+2*ζ*ωn*S+ωn^2)由于过程需要 ωn ζ 取很多值 能不能将这个传递函数编成一个函数,要用的时候调用就可以了(能不能用function语句实现?
matlab 我是菜鸟,比如一个标准的二阶传递函数G(S)=ωn^2/(S^2+2*ζ*ωn*S+ωn^2)
由于过程需要 ωn ζ 取很多值 能不能将这个传递函数编成一个函数,要用的时候调用就可以了(能不能用function语句实现?)
matlab 我是菜鸟,比如一个标准的二阶传递函数G(S)=ωn^2/(S^2+2*ζ*ωn*S+ωn^2)由于过程需要 ωn ζ 取很多值 能不能将这个传递函数编成一个函数,要用的时候调用就可以了(能不能用function语句实现?
这个很容易用function语句实现,首先说明一下,MATLAB中不识别ζ,这里用a代替ζ,这并不影响其它.
在M文件中,输入并保存.
function f=G(wn,a)
syms S
f=wn.^2./(S^2+2*a.*wn.*S+wn.^2);
end
在命令窗口中,输入:
G(wn,a)
就可以得到你想要的结果了.
如:输入 G(2,3)
其结果为:4/(S^2 + 12*S + 4)
输入 wn=[1,2,3];
a=[2,3,4];
G(wn,a)
其结果为:
[ 1/(S^2 + 4*S + 1),4/(S^2 + 12*S + 4),9/(S^2 + 24*S + 9)]
可以。如果我没理解错的话,wn,ζ可以取成向量,向量的元素就是你的值,做算法的时候用数组运算就可以了。
function f=G(wn,ζ) (ζ不知道matlab能不能接受,如果不行换一个就好)
f=wn.^2/(s.^2+2*ζ.*wn+wn.^2)
在命令窗口,输入
wn=[1,2,3];ζ=[1,2,3]
G(wn,ζ)
就可以得到对应的结果...
全部展开
可以。如果我没理解错的话,wn,ζ可以取成向量,向量的元素就是你的值,做算法的时候用数组运算就可以了。
function f=G(wn,ζ) (ζ不知道matlab能不能接受,如果不行换一个就好)
f=wn.^2/(s.^2+2*ζ.*wn+wn.^2)
在命令窗口,输入
wn=[1,2,3];ζ=[1,2,3]
G(wn,ζ)
就可以得到对应的结果
收起