作业帮 > 综合 > 作业

采用MATLAB编写程序,带滞后的传递函数,怎么实现?不要SIMULINK,只要函数.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 19:30:36
采用MATLAB编写程序,带滞后的传递函数,怎么实现?不要SIMULINK,只要函数.
传递函数为G(s)=50*e^(-100)/(1000s+1)
传递函数为G(s)=50*e^(-100s)/(1000s+1),一楼的高手,我对不起你,我忘了加个S了.这是个纯滞后的函数.最好能编成可以将一组M序列作为输入的形式,也就是说,最好能编成差分的形式.
这是我编的一个小程序,你可以参考参考.
%%%% 传递函数 %%%%
sys=tf([0 50],[1000,1],'inputdelay',100);
%%% 对传递函数进行离散化 %%%%
dsys=c2d(sys,ts,'zoh'); %%%% dsys为离散化得到的方程 %%%%
[num,den]=tfdata(dsys,'v'); %%%% num 为分子系数,den 为分母系数 %%%%
%%%% 设定初值y,由于滞后,故y的输出在刚开始有输入的滞后时间内为零 %%%%%
for k=1:101
y(k)=0;
end
%%%% 输入 u 为一组伪随机数 %%%%%%
.随机序列可以自己用想用.
接下来弄一个循环:每一个y(k)就可以的得到
y(k+101)=-den(2)*y11(k+100)+num(2)*u(k);
希望对你有帮助.