博客
关于我
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/

你可能感兴趣的文章
postgresql 主从配置_生产环境postgresql主从环境配置
查看>>
postgresql 函数&存储过程 ; 递归查询
查看>>
PostgreSQL 分组聚合查询中 filter 子句替换 case when
查看>>
PostgreSQL 同步流复制锁瓶颈分析
查看>>
PostgreSQL 备份与还原命令 pg_dump
查看>>
Postgresql 外部表插件postgres_fdw的安装和使用
查看>>
PostgreSQL 如何从崩溃状态恢复(上)
查看>>
PostgreSQL 存储过程基本语法
查看>>
PostgreSQL 实现批量更新、删除、插入
查看>>
PostgreSQL 导入 .gz 备份文件
查看>>
PostgreSQL 批量插入&更新数据时报错(ERROR: ON CONFLICT DO UPDATE command cannot affect row a second time)
查看>>
PostgreSQL 新增数据返回自增ID
查看>>
postgresql 更新多列数据
查看>>
PostgreSQL 服务启动后停止
查看>>
PostgreSQL 辟谣存在任意代码执行漏洞:消息不实
查看>>
PostgreSQL+PostGIS实现两坐标点之间最短路径查询算法函数(地图工具篇.12)
查看>>
Qt开发——简易调色板QPalette
查看>>
PostgreSQL-解决连接时遇到的乱码问题
查看>>
PostgreSQL15.2最新版本安装_远程连接_Navicat操作_pgAdmin操作_Windows10上安装---PostgreSQL工作笔记001
查看>>
PostgreSQL9.1 双机部署配置(主备数据同步)
查看>>