Python全面分析系统的时域特性和频率域特性


Posted in Python onFebruary 26, 2020

在不使用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 等。

下面是自己练习时写的代码,写在此作记录和分享用,因为函数语法和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全面分析系统的时域特性和频率域特性

Python全面分析系统的时域特性和频率域特性

Python全面分析系统的时域特性和频率域特性

Python全面分析系统的时域特性和频率域特性

以上这篇Python全面分析系统的时域特性和频率域特性就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
一步步解析Python斗牛游戏的概率
Feb 12 Python
python itchat实现微信好友头像拼接图的示例代码
Aug 14 Python
python正则实现计算器功能
Dec 14 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
Jan 06 Python
Python+Django搭建自己的blog网站
Mar 13 Python
Django自定义用户登录认证示例代码
Jun 30 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
Jul 22 Python
python运用sklearn实现KNN分类算法
Oct 16 Python
Python API自动化框架总结
Nov 12 Python
Django集成celery发送异步邮件实例
Dec 17 Python
Python利用全连接神经网络求解MNIST问题详解
Jan 14 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
Mar 20 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
Feb 26 #Python
Python中os模块功能与用法详解
Feb 26 #Python
Python中sys模块功能与用法实例详解
Feb 26 #Python
Python线程threading模块用法详解
Feb 26 #Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 #Python
Python基础之字典常见操作经典实例详解
Feb 26 #Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
Feb 26 #Python
You might like
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
JScript中的"this"关键字使用方式补充材料
2007/03/08 Javascript
分析 JavaScript 中令人困惑的变量赋值
2007/08/13 Javascript
javascript YUI 读码日记之 YAHOO.util.Dom - Part.4
2008/03/22 Javascript
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
jquery json 实例代码
2010/12/02 Javascript
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
jQuery中[attribute*=value]选择器用法实例
2014/12/31 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
详解JavaScript中getFullYear()方法的使用
2015/06/10 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
2016/12/14 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
vue引入swiper插件的使用实例
2017/07/19 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
JavaScript中的this基本问题实例小结
2020/03/09 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
Python实现远程调用MetaSploit的方法
2014/08/22 Python
python3生成随机数实例
2014/10/20 Python
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
Django添加feeds功能的示例
2018/08/07 Python
PyCharm 无法 import pandas 程序卡住的解决方式
2020/03/09 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
奇怪的鱼:Weird Fish
2018/03/18 全球购物
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
JYSK加拿大:购买家具、床垫、家居装饰等
2020/02/14 全球购物
安全生产承诺书
2014/03/26 职场文书
大学生入党自传2015
2015/06/26 职场文书