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 正则表达式(转义问题)
Dec 15 Python
Python中函数的多种格式和使用实例及小技巧
Apr 13 Python
Python itertools模块详解
May 09 Python
手把手教你用python抢票回家过年(代码简单)
Jan 21 Python
分享一下Python数据分析常用的8款工具
Apr 29 Python
把csv文件转化为数组及数组的切片方法
Jul 04 Python
win7下python3.6安装配置方法图文教程
Jul 31 Python
详解Python的循环结构知识点
May 20 Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 Python
在pytorch中动态调整优化器的学习率方式
Jun 24 Python
CocosCreator ScrollView优化系列之分帧加载
Apr 14 Python
python神经网络编程之手写数字识别
May 08 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
Access数据库导入Mysql的方法之一
2006/10/09 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
input 高级限制级用法
2009/03/26 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
简单谈谈node.js 版本控制 nvm和 n
2015/10/15 Javascript
js实现文件上传表单域美化特效
2015/11/02 Javascript
ajax接收后台数据在html页面显示
2017/02/19 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
2018/04/28 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
移动端自适应flexible.js的使用方法(不用三大框架,仅写一个单html页面使用)推荐
2019/04/02 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
[00:53]2015国际邀请赛 中国区预选赛一触即发
2015/05/14 DOTA
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
Python实现的排列组合计算操作示例
2017/10/13 Python
浅谈Python批处理文件夹中的txt文件
2019/03/11 Python
HTML5新表单元素_动力节点Java学院整理
2017/07/12 HTML / CSS
法国二手手袋、手表和奢侈珠宝购物网站:Collector Square
2018/07/05 全球购物
.NET笔试题(20个问题)
2016/02/02 面试题
GWT都有什么特性
2016/12/02 面试题
什么是lambda函数
2013/09/17 面试题
环境工程大学生个人的自我评价
2013/10/08 职场文书
留学推荐信中文范文三篇
2014/01/25 职场文书
大学生英语演讲稿
2014/04/24 职场文书
国际金融专业自荐信
2014/07/05 职场文书
业绩倒数第一的检讨书
2014/09/24 职场文书
行政答辩状范文
2015/05/21 职场文书
会议室管理制度范本
2015/08/06 职场文书
2016八一建军节慰问信
2015/11/30 职场文书
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android