Python全面分析系统的时域特性和频率域特性-创新互联
在不使用matlab的情况下,可以选择用python来实现自动控制理论有关系统打时域分析和频率域分析等,安装的package是python-control,在windows的控制台(cmd)或者linux终端下输入pip install control 即可,注意,如果同时安装了2.7 和 3.x(3.4或者3.5或者3.6 版本,使用pip 命令打时候需要指定版本号,如pip2 install control 或者pip3.4 install control ,当然,常用打科学计算用的package也要安装,numpy,scipy,sympy,matplotlib,pandas 等。
龙凤ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!下面是自己练习时写的代码,写在此作记录和分享用,因为函数语法和matlab相差无几,这里就没有写太多的注释了,有需要打话可以去python-control打官网查看相关文档。
#!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on Wed Nov 16 17:48:02 2016 @author: kindy """ from control import * from scipy import signal as sgl from matplotlib import pyplot as plt import numpy as np T=np.mgrid[0:8:0.02] U1=T U2=T**2 sys1 = tf([1],[0.5,1]) # sys2 = tf([2],[1,2,4]) # # Step Response def step_resp(): sout1,stime1 = step(sys1) sout2,stime2 = step(sys2) plt.plot(stime1,sout1,'b',linewidth=0.5) plt.plot(stime2,sout2,'b',linewidth=0.5) plt.xlabel("Time") plt.ylabel("Amplitude") plt.title("Step Resopnse",fontsize=12) #plt.legend() plt.show() # Impulse Response def impulse_resp(): iout1,itime1 = impulse(sys1) iout2,itime2 = impulse(sys2) plt.plot(itime1,iout1,'m',linewidth=0.8) plt.plot(itime2,iout2,'r',linewidth=0.8) plt.show() #impulse_resp() # 任意输入信号的输出,lsim def lsim_plot(): yout1,Time1, xout1 = lsim(sys1, U1, T) yout2,Time2, xout2 = lsim(sys2, U1, T) plt.plot(Time1, yout1, 'b', linewidth=0.7) plt.plot(Time2, yout2, 'b', linewidth=0.7) plt.show() #lsim_plot() # 波特图 def bode_plot(): bode(sys1) bode(sys2) #bode_plot() # Nyquist图 def nyquist_plot(): nyquist(sys1) nyquist(sys2) #nyquist_plot() # 根轨迹 def root_locus(): rlocus(sys1) rlocus(sys2) root_locus()
网站名称:Python全面分析系统的时域特性和频率域特性-创新互联
链接地址:http://lswzjz.com/article/cchedd.html