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的Flask站点中集成xhEditor文本编辑器的教程
Jun 13 Python
Windows下Python2与Python3两个版本共存的方法详解
Feb 12 Python
Python基于tkinter模块实现的改名小工具示例
Jul 27 Python
详解python里使用正则表达式的分组命名方式
Oct 24 Python
python中的set实现不重复的排序原理
Jan 24 Python
pyqt5实现俄罗斯方块游戏
Jan 11 Python
Python 常用模块 re 使用方法详解
Jun 06 Python
python word转pdf代码实例
Aug 16 Python
基于python读取.mat文件并取出信息
Dec 16 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
Mar 23 Python
django中url映射规则和服务端响应顺序的实现
Apr 02 Python
python调用摄像头的示例代码
Sep 28 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
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
一致性哈希算法以及其PHP实现详细解析
2013/08/24 PHP
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
网页中实现浏览器的最大,最小化和关闭按钮
2007/03/12 Javascript
JavaScript null和undefined区别分析
2009/10/14 Javascript
jQuery 渐变下拉菜单
2009/12/15 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
2015/03/18 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
使用百度地图实现地图网格的示例
2018/02/06 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
小程序使用watch监听数据变化的方法详解
2019/09/20 Javascript
vue实现点击按钮下载文件功能
2019/10/11 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
[05:11]TI9战队采访——VIRTUSPRO
2019/08/22 DOTA
[01:08:32]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第二场 1月18日
2021/03/11 DOTA
python+mongodb数据抓取详细介绍
2017/10/25 Python
python实现超市扫码仪计费
2018/05/30 Python
详解Python中的测试工具
2019/06/09 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
《沉香救母》教学反思
2014/04/19 职场文书
民事赔偿协议书
2014/11/02 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript