• scipy在控制理论的应用


    scipy在控制理论的应用

    基本理论:

    系统可以使用状态空间、传递函数、零极点增益三种数学表示方式。

    1、状态空间:
    x ˙ = A x + B u x [ k + 1 ] = A x [ k ] + B u [ k ]

    x˙=Ax+Bux[k+1]=Ax[k]+Bu[k]" role="presentation">x˙=Ax+Bux[k+1]=Ax[k]+Bu[k]
    x˙=Ax+Bux[k+1]=Ax[k]+Bu[k]
    2、零极点增益:
    H ( s ) = k ∏ i ( s − z [ i ] ) ∏ j ( s − p [ j ] ) H(s)=\frac{k\prod_{i}{(s-z[i])}}{\prod_j(s-p[j])} H(s)=j(sp[j])ki(sz[i])
    3、传递函数
    H ( s ) = ∑ i = 0 N b [ N − i ] s i ∑ j = 0 M b [ M − j ] s j H ( s ) = ∑ i = 0 N b [ N − i ] z i ∑ j = 0 M b [ M − j ] z j H(s)=\frac{\sum_{i=0}^Nb[N-i]s^i}{\sum_{j=0}^M}b[M-j]s^j\\ H(s)=\frac{\sum_{i=0}^Nb[N-i]z^i}{\sum_{j=0}^M}b[M-j]z^j\\ H(s)=j=0Mi=0Nb[Ni]sib[Mj]sjH(s)=j=0Mi=0Nb[Ni]zib[Mj]zj

    1、连续时间线性系统(Continuous-time linear systems)

    lti(*system)连续时间线性系统基类
    StateSpace(*system, **kwargs)状态空间表达式的连续线性时不变系统
    TransferFunction(*system, **kwargs)传递函数表示的连续线性时不变系统
    ZerosPolesGain(*system, **kwargs)零极点增益表示的连续线性时不变系统
    lsim(system, U, T[, X0, interp])连续时间线性系统输出仿真
    lsim2(system[, U, T, X0])使用常微分方程求解器的连续时间线性系统输出仿真
    impulse(system[, X0, T, N])连续时间线性系统脉冲响应
    impulse2(system[, X0, T, N])但输入的连续时间线性系统脉冲响应
    step(system[, X0, T, N])连续时间线性系统阶跃响应
    step2(system[, X0, T, N])连续时间线性系统阶跃响应
    freqresp(system[, w, n])连续时间线性系统频率响应
    bode(system[, w, n])计算连续时间线性系统的伯德图和相位

    2、离散时间线性系统(Discrete-time linear systems)

    dlti(*system, **kwargs)离散线性时不变系统基类
    StateSpace(*system, **kwargs)状态空间表达式的离散线性时不变系统
    TransferFunction(*system, **kwargs)传递函数表示的离散线性时不变系统
    ZerosPolesGain(*system, **kwargs)零极点增益表示的离散线性时不变系统
    dlsim(system, u[, t, x0])离散时间线性系统输出仿真
    dimpulse(system[, x0, t, n])离散时间线性系统脉冲响应
    dstep(system[, x0, t, n])离散时间线性系统阶跃响应
    dfreqresp(system[, w, n, whole])计算离散时间线性系统频率响应
    dbode(system[, w, n])计算离散时间线性系统的伯德图和相位

    3、不同表示的转换

    tf2zpk(b, a)线性滤波器分子分母表示->零极点增益表示
    tf2sos(b, a[, pairing, analog])传递函数->二阶基本节
    tf2ss(num, den)传递函数->状态空间
    zpk2tf(z, p, k)零极点增益->传递函数
    zpk2sos(z, p, k[, pairing, analog])零极点增益->二阶基本节
    zpk2ss(z, p, k)零极点增益->状态空间
    ss2tf(A, B, C, D[, input])状态空间->传递函数
    ss2zpk(A, B, C, D[, input])状态空间->零极点增益
    sos2zpk(sos)二阶基本节->零极点增益
    sos2tf(sos)二阶基本节->传递函数
    cont2discrete(system, dt[, method, alpha])连续系统->离散状态空间表示的系统
    place_poles(A, B, poles[, method, rtol, maxiter])计算K使得特征值 (A - dot(B, K))=poles.
  • 相关阅读:
    基本分段存储管理方式(分段,段表,地址转换以及与分页管理对比)
    java毕业设计电子存证系统mybatis+源码+调试部署+系统+数据库+lw
    算法leetcode|17. 电话号码的字母组合(rust重拳出击)
    我梦想中的学习组织-勤学会
    函数的扩展
    brew 常用命令
    【每日一题】旋变字符串
    【操作符详解】之 移位操作符
    C++ STL 【priority_queue】
    解决hide方法反射限制的问题
  • 原文地址:https://blog.csdn.net/KPer_Yang/article/details/127657499