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 相关文章推荐
centos系统升级python 2.7.3
Jul 03 Python
python获得文件创建时间和修改时间的方法
Jun 30 Python
python中利用xml.dom模块解析xml的方法教程
May 24 Python
Python二次规划和线性规划使用实例
Dec 09 Python
python实现12306登录并保存cookie的方法示例
Dec 17 Python
pytorch 数据处理:定义自己的数据集合实例
Dec 31 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
Jan 06 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
Mar 23 Python
python读取excel进行遍历/xlrd模块操作
Jul 12 Python
python里反向传播算法详解
Nov 22 Python
Python实现学生管理系统(面向对象版)
Jun 24 Python
Python matplotlib绘制雷达图
Apr 13 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
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
global.php
2006/12/09 PHP
php下MYSQL limit的优化
2008/01/10 PHP
如何使用php判断服务器是否是HTTPS连接
2013/07/05 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
PHP读取mssql json数据中文乱码的解决办法
2016/04/11 PHP
php正则提取html图片(img)src地址与任意属性的方法
2017/02/08 PHP
JavaScript自执行闭包的小例子
2013/06/29 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
Javascript delete 引用类型对象
2013/11/01 Javascript
多种方法实现load加载完成后把图片一次性显示出来
2014/02/19 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
2016/04/08 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
Bootstrap企业网站实战项目4
2016/10/14 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
React中jquery引用的实现方法
2017/09/12 jQuery
JS验证码实现代码
2017/09/14 Javascript
关于HTTP传输中gzip压缩的秘密探索分析
2018/01/12 Javascript
如何获取TypeScript的声明文件.d.ts
2018/05/01 Javascript
Vue项目pdf(base64)转图片遇到的问题及解决方法
2018/10/19 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
使用js实现单链解决前端队列问题的方法
2020/02/03 Javascript
利用Python爬虫给孩子起个好名字
2017/02/14 Python
python实现list由于numpy array的转换
2018/04/04 Python
wxPython实现窗口用图片做背景
2018/04/25 Python
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
英国最大的纸工艺品商店:CraftStash
2018/12/01 全球购物
硕士研究生个人求职信
2013/12/04 职场文书
英文自荐信
2013/12/19 职场文书
元旦红领巾广播稿
2014/02/19 职场文书
2014年关于两会精神的心得体会
2014/03/17 职场文书
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang
面试中老生常谈的MySQL问答集锦夯实基础
2022/03/13 MySQL
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers