博客
关于我
Matlab中lsim函数的使用
阅读量:355 次
发布时间:2019-03-04

本文共 1631 字,大约阅读时间需要 5 分钟。

lsim函数详解


目录

  • 语法(常用)

    • 分子分母形式
    • 传递函数形式
    • 状态空间形式
    • 其他形式
  • 说明

    • 响应图
    • 响应数据
  • 示例

    • 示例1
    • 示例2
    • 示例3
    • 示例4
    • 示例5

语法(常用)

1. 分子分母形式

lsim函数支持通过分子分母形式定义传递函数,语法如下:

lsim(num, den, u, t)
  • num:传递函数的分子多项式。
  • den:传递函数的分母多项式。
  • u:输入信号,行数与时间样本长度相等。
  • t:模拟时间点。

2. 传递函数形式

对于已定义的传递函数 sys,可以直接调用 lsim:

lsim(sys, u, t)
  • sys:传递函数对象。
  • u:输入信号。
  • t:模拟时间点。

3. 状态空间形式

对于状态空间模型,语法为:

lsim(A, B, C, D, u, t, x0)
  • A:状态矩阵。
  • B:输入矩阵。
  • C:输出矩阵。
  • D:直接传输矩阵。
  • u:输入信号。
  • t:模拟时间点。
  • x0:初始状态向量。

4. 其他形式

支持多种参数形式,例如:

lsim(sys, u, t, x0)lsim(sys, u, t, x0, method)y = lsim(sys, u, t)y = lsim(sys, u, t, x0)
  • method:插值方法,适用于连续时间模型。
  • y:模拟结果。

说明

响应图

lsim(sys, u, t) 用于绘制动态系统对输入信号的模拟响应。时间向量 t 指定仿真样本点。对于单输入系统,输入信号 u 与时间向量长度相同;对于多输入系统,u 的行数与时间样本长度相同,列数与输入维度相同。

响应数据

y = lsim(sys, u, t) 返回与输入同时采样系统的响应 t。对于单输出系统,y 与时间向量 t 长度相同;对于多输出系统,y 是行向量,行数与时间样本相同,列数与输出维度相同。


示例

示例1

传递函数表示:

H = [tf([2 5 1],[1 2 3]); tf([1 -1],[1 1 5])][u, t] = gensig('square', 4, 10, 0.1);lsim(H, u, t);

如图所示,系统对方波输入的响应表现明显。


示例2

连续时间系统:

sys = tf(3, [1 2 3]);t = 0:0.04:8;u = max(0, min(t - 1, 1));lsim(sys, u, t);

模拟响应数据为:

y = lsim(sys, u, t);size(y)  # 1×201

示例3

离散时间系统:

sys = tf([0.06 0.05], [1 -1.56 0.67], 0.05);t = 0:0.05:4;u = max(0, min(t - 1, 1));lsim(sys, u, t);

模拟响应如图所示。


示例4

闭环系统对比:

H = tf(4, [1 10 25]);C1 = pidtune(H, 'PI');C2 = pidtune(H, 'PID');sys1 = feedback(H * C1, 1);sys2 = feedback(H * C2, 1);[u, t] = gensig('square', 4, 12);lsim(sys1, sys2, u, t);

默认情况下,lsim绘制的每个系统选择不同的颜色。可以通过 LineSpec 输入参数指定颜色和线条样式。


示例5

状态空间模型初始状态:

A = [-1.5 -3; 3 -1];B = [1.3; 0];C = [1.15 2.3];D = 0;sys = ss(A, B, C, D);x0 = [-0.2 0.3];t = 0:0.05:8;u = zeros(length(t), 1);u(t > 2) = 1;lsim(sys, u, t, x0);

如图所示,系统从初始状态 x0 = [-0.2 0.3] 自由演化,在 t = 2 时输入阶跃信号,响应如图所示。

转载地址:http://kucr.baihongyu.com/

你可能感兴趣的文章
SQL-CLR 类型映射 (LINQ to SQL)
查看>>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
查看>>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
查看>>
org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded
查看>>
org.tinygroup.serviceprocessor-服务处理器
查看>>
org/eclipse/jetty/server/Connector : Unsupported major.minor version 52.0
查看>>
org/hibernate/validator/internal/engine
查看>>
Orleans框架------基于Actor模型生成分布式Id
查看>>
SQL-36 创建一个actor_name表,将actor表中的所有first_name以及last_name导入改表。
查看>>
ORM sqlachemy学习
查看>>
Ormlite数据库
查看>>
orm总结
查看>>
os.environ 没有设置环境变量
查看>>
os.path.join、dirname、splitext、split、makedirs、getcwd、listdir、sep等的用法
查看>>
os.removexattr 的 Python 文档——‘*‘(星号)参数是什么意思?
查看>>
os.system 在 Python 中不起作用
查看>>
OS2ATC2017:阿里研究员林昊畅谈操作系统创新与挑战
查看>>
OSCACHE介绍
查看>>
SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum
查看>>
OSChina 周五乱弹 ——吹牛扯淡的耽误你们学习进步了
查看>>