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的装饰器模式与面向切面编程详解
Jun 21 Python
python3.5仿微软计算器程序
Mar 30 Python
python常用函数详解
Sep 13 Python
Python遍历文件夹和读写文件的实现方法
May 10 Python
python opencv 直方图反向投影的方法
Feb 24 Python
python实现自动登录
Sep 17 Python
python后端接收前端回传的文件方法
Jan 02 Python
Django 1.10以上版本 url 配置注意事项详解
Aug 05 Python
Python unittest 自动识别并执行测试用例方式
Mar 09 Python
python 工具 字符串转numpy浮点数组的实现
Mar 14 Python
Python之字符串的遍历的4种方式
Dec 08 Python
10个顶级Python实用库推荐
Mar 04 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
php防止恶意刷新与刷票的方法
2014/11/21 PHP
在Windows XP下安装Apache+MySQL+PHP环境
2015/02/22 PHP
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
JavaScript使用yield模拟多线程的方法
2015/03/19 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
分享JavaScript监听全部Ajax请求事件的方法
2016/08/28 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
2017/01/16 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
解决vue点击控制单个样式的问题
2018/09/05 Javascript
深入了解JavaScript 私有化
2019/05/30 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
python使用 __init__初始化操作简单示例
2019/09/26 Python
在spyder IPython console中,运行代码加入参数的实例
2020/04/20 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
手把手教你将Flask应用封装成Docker服务的实现
2020/08/19 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
罗兰·穆雷官网:Roland Mouret
2018/09/28 全球购物
Ajax主要包含了哪些技术
2014/06/12 面试题
《颐和园》教学反思
2014/02/26 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
淘宝文案策划岗位职责
2015/04/14 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle
nginx共享内存的机制详解
2022/03/21 Servers