我是靠谱客的博主 风趣路人,最近开发中收集的这篇文章主要介绍MATLAB编程测试传递函数的响应曲线(系统辨识第一篇),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

S域传递函数

                           50        Y(S)
  G(S) = exp(-100*s) * ---------- = -----
                       1000 s + 1    X(S)

通过MATLAB编程生成动态响应曲线,这里的采样周期设为1s,便与后期辨识工业现场被控对象。
这里涉及到《自动控制原理》知识点,S变换、Z变换、差分方程等。

将S域传递函数离散化

              		  0.04998    y(z)
   g(z) = z^(-100) * --------- = -----
             		 z - 0.999   x(z)

方程分子分母同时除以z

              		    0.04998        y(z)
   g(z) = z^(-101) * --------------- = -----
             	     1 - 0.999z^(-1)   x(z)

将上述方程十字相乘

y(z) - 0.999y(z)z^(-1) = 0.04998x(z) z^(-101) 

改写成

y(t) - 0.999y(t-1) = 0.04998x(t-101) 
y(t) =  0.999y(t-1) + 0.04998x(t-101) 
clear all;close all;clc;

sys=tf([0 50],[1000,1],'inputdelay',100);
% ts 为采样时间常数
ts = 1;
dsys=c2d(sys,ts,'zoh');
% num 为分子系数,den 为分母系数
[num,den]=tfdata(dsys,'v');
% tdelay 为滞后时间常数
tdelay = 101;
for m=1:tdelay
    y(m)=0;
end
x=linspace(1, 1, 10000);
for n=102:1:10000
    y(n)=-den(2)*y(n - 1)+num(2)*x(n-101);
end
figure(1)
plot(y)

在这里插入图片描述

最后

以上就是风趣路人为你收集整理的MATLAB编程测试传递函数的响应曲线(系统辨识第一篇)的全部内容,希望文章能够帮你解决MATLAB编程测试传递函数的响应曲线(系统辨识第一篇)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部