一阶惯性环节

def firstorder(T,K,t,In):
	# T 时间常数
	# K 增益
	Out = np.zeros(len(In))
		
	for i in range(1,len(t)):
		dt = t[i]-t[i-1]
		s = T/dt
		Out[i] = K*In[i]/(s+1) +Out[i-1]*s/(s+1)

	return Out
		

if __name__ == '__main__':
	t = np.arange(0,150,1)
	#r = np.sin(0.1*t)
	r = np.ones(len(t))

	c1 = firstorder(20,1,t,r)
	c2 = firstorder(10,1,t,r)


	fig,ax = plt.subplots()
	ax.plot(t,c1,label = 'T=20')
	ax.plot(t,c2,label = 'T=10')
	ax.plot(t,r,label='Input')
	ax.set_title('First Order System')	
	ax.legend(loc=0)
	plt.show()

posted @   华小电  阅读(878)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示