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

本文介绍了一种利用微分方程而非传递函数来模拟随时间变化的信号的方法。通过一个具体的例子展示了如何在MATLAB中实现这一过程,并对比了输入与输出信号的变化。此方法适用于一阶系统,但不适用于二阶系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.5y˙+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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值