Matlab solve a first-order transfer functin using differential equation and step responce simulation

4 篇文章 0 订阅
3 篇文章 0 订阅

Most of the time, we use transfer function to simulate the signal relating to time by using tf() and lsim(). In this paper, I try to use differential equation to solve it.

Main

  • Transfer funtion:
    0.5 y ˙ + y = F ( t ) 0.5\dot{y}+y=F(t) 0.5y˙+y=F(t)
  • Input :
    F ( t ) = 100   ( t > 0 ) F ( t ) = 75   ( t ≤ 0 ) F(t)=100 \space (t>0) \\ F(t)=75 \space (t\le0) F(t)=100 (t>0)F(t)=75 (t0)
  • matlab code
syms y(t) inp;
ode = 0.5*diff(y,t)+y== inp;
cond = y(0) == 75;
ySol(t,inp) = dsolve(ode, cond);
x=[0:0.1:10];
result=ySol(x,100);
input=x*0+100;
input(1)=75;
plot(x, result);
hold on;
plot(x, input);
legend({'Output','Input'},'Location','southwest');
xlabel('Time') 
ylabel('Amplitude') 
hold off;
  • result 1
ySol(t, inp) =
inp - exp(-2*t)*(inp - 75)
  • result 2

在这里插入图片描述

Note

  1. This method is not suitable for second order system practically. I guess primarily because of its complexcity of the differential equation.
  2. This method is useful for periodic input.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值