【Simulink系列】——动态系统仿真 之 离散系统线性离散系统

一、离散系统定义

离散系统是指系统的输入与输出仅在离散的时间上取值,而且离散的时间具有相同的时间间隔。满足下列条件:

①系统(的输入输出)每隔固定时间间隔才更新一次。固定时间间隔称为采样时间。

②系统的输出依赖当前的输入、以往的输入和输出见数学描述

③系统具有离散的状态。状态是指系统前一时刻的输出量。

设系统的输入变量为u\left(n T_s\right), n=0,1,2, \cdots,其中n为采样时刻,Ts为系统的采样时间。由于Ts为固定值,因而系统输入u\left(n T_s\right)常被记为u(n)。设系统输出为y(nTs),也可记为y(n),则离散系统的数学描述为:

y(n)=f(u(n), u(n-1), \cdots, y(n-1), y(n-2), \cdots)

注:离散系统初始状态的确定非常重要。

二、离散Simulinlk仿真

有一个人口变化系统。设某一年的人口数目为p(n),其中n表示年份,它与上一年的人口数目p(n-1)、人口繁殖速率r以及新增资源所能满足的个体数目K之间的动力学模型如下差分方程:

p(n)=r p(n-1)\left[1-\frac{p(n-1)}{K}\right]

此差分方程可看出系统为非线性离散系统。设人口初始值p(0)=600000,人口繁殖速率r为1.08,新增资源满足个体数K=200000,建立Simulink模型,分析人口数目的变化趋势。

(1)建立系统模型

Unit Delay为单位延迟模块,主要功能是将输入信号延迟一个采样时间,这里将p(n)作为它的输入以得到p(n-1)。

(2)模块参数设置

人口繁殖速率r:取1.08,
1/K:取1/2000000,
Unit Delay的初始值为初始人口数目:取600000。

(3)仿真参数设置

仿真时间0~50s,求解器设置为discrete离散,即需要使用离散求解器;仿真步长选择Fixed-step定步长。

(4)仿真运行

注:若离散系统中所有模块的采样时间均相同,则此系统为单速率离散系统(选定步长求解器),否则为多速率离散系统(选变步长仿真更好)。

三、线性离散系统定义

在离散系统中,线性离散系统具有重要的地位。当离散系统同时满足齐次性和叠加性时,即:

T\left\{\alpha u_{1}(n)+\beta u_{2}\left(n\right)\right\}=\alpha T\left\{u_{1}\left(n\right)\right\}+\beta T\left\{u_{2}\left(n\right)\right\}

此离散系统称为线性离散系统。最一般的数学描述为:

y(n)=f\bigl(u(n),u(n-1),\cdots;y(n-1),y(n-2),\cdots\bigr)

也可用差分方程描述(上为状态方程,下为输出方程):

\begin{array}{rl}&x(n+1)=f\big(x(n),u(n),n\big)\\&y(n)=g\big(x(n),u(n),n\big)\end{array}

除了上述两种方式,针对线性离散系统本身的特点,常使用Z变换来描述线性离散系统。Z变换时对离散信号进行分析的一个强有力工具,尤其线性离散系统

对于一个离散信号u(n),其Z变换为U\bigl(z\bigr)=\sum_{k=-\infty}^{\infty}u\bigl(k\bigr)z^{-k},一般离散系统的时间大于0,则Z变换为U\bigl(z\bigr)=\sum_{k=0}^{\infty}u\bigl(k\bigr)z^{-k},简记为U(z)=Z\left\{u(n)\right\}

利用离散信号的Z变换结果得到原离散信号的过程,叫做Z变换的逆变换,简记为u\left(z\right)=Z^{-1}\left\{U(n)\right\}

Z变换有两个重要性质

①Z变换同时满足齐次性和叠加性。

Z\left\{\alpha u_{1}\left(n\right)+\beta u_{2}\left(n\right)\right\}=\alpha Z\left\{u_{1}\left(n\right)\right\}+\beta Z\left\{u_{2}\left(n\right)\right\}

②若u(n)的Z变换为U(z),则u(n-1)的Z变换为z^{-1}U(z)

四、线性离散系统Simulink仿真

低通滤波器模型。它可以滤除信号中的高频部分,以获取信号中有用的低频信号,一个低通数字滤波器的差分方程如下:

y(n)-1.6y(n-1)+0.7y(n-2)=0.04u(n)+0.08u(n-1)+0.04u(n-2)

其中u(n)为滤波器输入,y(n)为滤波器输出。可见其为线性离散系统。

(1)Z变换

对该滤波器系统的差分方程进行Z变换,可得下面描述:

\frac{Y(z)}{U(z)}=\frac{0.04+0.08z^{-1}+0.04z^{-2}}{1-1.6z^{-1}+0.7z^{-2}}

(2)建立系统模型

发送方首先使用高频正弦波(载波)对一低频锯齿波(原信号波)进行幅度调制,然后在无损信道中传递此幅度调制信号;接受方在接收到幅度调制信号后,首先进行解调,然后使用低通数字滤波器对解调后的信号进行滤波以获得低频锯齿波信号

Sine Wave用来产生高频载波信号,Sine Wave1用来产生解调信号;

Signal Generator产生低频锯齿波信号;

Discrete Filter表示数字滤波器。

(3)模块参数设置

高频载波(Sine Wave)频率设置为1000rad/sec,其余默认;Signal Generator波形选择锯齿波sawtooth,其余默认;解调正弦波(Sine Wave1)频率也为1000rad/sec,采样时间0.005s。

Discrete Filter设置如下:

注:数字滤波器的采样时间应该与解调信号的采样时间一致。

(4)仿真参数设置

仿真时间0~10s,选择求解器并设置为Variable-step变步长ode45(Dormand-Prince),最大步长设置为0.005

(5)仿真运行

数字滤波器的输出信号与原始锯齿信号并不完全一致,存在一定失真,这种失真不可避免,因为实际上并不存在理想的滤波器,调制时信号之间不可避免会相互干扰。

疑问:博友们,这里遇到各问题,锯齿波的scope显示周期与设定的信号周期不一致???

往期精彩

STM32专栏(付费9.9)icon-default.png?t=N7T8http://t.csdnimg.cn/E2F88

OpenCV-Python专栏(付费9.9)icon-default.png?t=N7T8http://t.csdnimg.cn/zK1jV

AI底层逻辑专栏(付费9.9)icon-default.png?t=N7T8http://t.csdnimg.cn/zic0f

机器学习专栏(免费)icon-default.png?t=N7T8http://t.csdnimg.cn/FaXzAFreeRTOS专栏(免费)icon-default.png?t=N7T8http://t.csdnimg.cn/SjIqU电机控制专栏(免费)icon-default.png?t=N7T8http://t.csdnimg.cn/FNWM7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/666643.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年09月CCF-GESP编程能力等级认证Python编程三级真题解析

Python等级认证GESP(1~6级)全部真题・点这里 一、单选题(共15题,共30分) 第1题 人们所使用的手机上安装的App通常指的是( )。 A:一款操作系统 B:一款应用软件 C:一种通话设备 D:以上都不对 答案:B 第2题 下列流程图的输出结果是( )。 A:60 B:20 C:5 D…

倾斜摄影轻量化,这样才规范!

自然资源部发布了《倾斜数字摄影测量技术规程》等17项行业标准报批稿公示,其中高频出现的倾斜摄影技术,重回大众视野。 倾斜摄影技术是国际测绘领域近些年发展起来的一项高新技术,它颠覆了以往正射影像只能从垂直角度拍摄的局限,通…

栈--数据结构

初始化栈、入栈、出栈 栈&#xff1a;只允许在一端进行插入或删除操作的线性表 栈顶&#xff08;Top&#xff09; 代码 #include <stdio.h>#define MaxSize 50 typedef int ElemType; typedef struct {ElemType data[MaxSize];//数组int top;//始终指向栈顶的一个变量…

SparkStreaming---入门

文章目录 1.SparkStreaming简介1.1 流处理和批处理1.2 实时和离线1.3 SparkStreaming是什么1.4 SparkStreaming架构图 2.背压机制3.DStream案例实操 1.SparkStreaming简介 1.1 流处理和批处理 流处理和批处理是两种不同的数据处理方式&#xff0c;它们在处理数据的方式和特点…

【C++】类和对象之运算符重载(三)

前言&#xff1a;在前面我们知道在类和对象中有六个默认成员函数&#xff0c;并学习了其中三个构造函数、析构函数、拷贝构造函数&#xff0c;今天我们将进一步的学习.赋值运算符重载。 &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &#x1f449; 专栏分类:高质…

Java并发基础:FutureTask全面解析!

内容概要 FutureTask结合了Future和Runnable接口&#xff0c;它能够异步执行任务&#xff0c;提高程序响应性&#xff0c;可以获取任务执行结果&#xff0c;并且支持任务取消机制&#xff0c;提高了灵活性&#xff0c;同时&#xff0c;它简化了并发编程&#xff0c;使多线程开…

【Linux系统 02】Shell脚本

目录 一、Shell概述 二、输入输出 三、分支控制 1. 表达式 2. if 分支 3. case 分支 四、循环控制 1. for 循环 2. while 循环 3. select 循环 五、函数 一、Shell概述 Shell是Linux系统连接用户和操作系统的外壳程序&#xff0c;将用户的输入和请求选择性传递给操…

Java中Object类常用的12个方法

前言 Java 中的 Object 方法在面试中是一个非常高频的点&#xff0c;毕竟 Object 是所有类的“老祖宗”。Java 中所有的类都有一个共同的祖先 Object 类&#xff0c;子类都会继承所有 Object 类中的 public 方法。 先看下 Object 的类结构&#xff1a; 1. getClass 方法 pub…

「悬浮捷径SoftCircle」安卓平台的hao123,一键打开万物

罗老师的onestep一步发布之前, 终端的打开形式还拘泥于桌面和负一屏 这种方式够简洁,但缺点明显: 1.入口单一性:只能在app首页和各种扫一扫之间选择和切换 2.操作复杂:入口切换需要频繁的进入退出桌面,步骤过于繁杂 以下是悬浮捷径SoftCircle的解决方式 1.入口的丰富性: 安卓平…

如何在飞凌嵌入式T113-i开发板的Buildroot中移植MQTT协议?

在实际的项目开发中&#xff0c;工程师朋友们可能会需要在文件系统中移植一些工具或协议&#xff0c;那么该如何进行移植操作呢&#xff1f; 我们可以通过添加package包配置的方式在OK113i-S开发板的Buildroot中移植新功能。本篇文章&#xff0c;小编就以在Buildroot移植MQTT协…

关于Django部署

首先了解一下开发环境服务器跟生产环境服务器有何不同。 一、我们通过 python manage.py runserver 启动开发环境服务器&#xff0c;这条命令背后做了哪些事情&#xff1f; 1、首先加载Django项目的设置&#xff08;settings&#xff09; 2、检查数据库迁移&#xff0c;确保数…

Leetcode92:反转链表II(区间反转链表)

一、题目 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 示例&#xff1a; 输入&#xff1a;head [1,2,3,4,5], left 2, right 4 输出&#xff1a…

Multisim14.0仿真(五十一)基于LM555定时器的分频器设计

一、1KHz脉冲设置&#xff1a; 二、555脉冲电路&#xff1a; 三、仿真电路&#xff1a; 四、运行仿真&#xff1a;

Day 1. 学习linux高级编程之Shell命令和IO

1.C语言基础 现阶段学习安排 2.IO编程 多任务编程&#xff08;进程、线程&#xff09; 网络编程 数据库编程 3.数据结构 linux软件编程 1.linux&#xff1a; 操作系统&#xff1a;linux其实是操作系统的内核 系统调用&#xff1a;linux内核的函数接口 操作流程&#xff…

Unity类银河恶魔城学习记录1-10 PlayerWallJump源代码 P37

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Player.cs using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; u…

海外YouTube视频点赞刷单悬赏任务投资理财源码/tiktok国际版刷单理财

测试环境&#xff1a;Linux系统CentOS7.6、宝塔、PHP7.3、MySQL5.7&#xff0c;根目录public&#xff0c;伪静态Laravel5&#xff0c;开启SSL证书 前端&#xff1a;修改网站的默认文档 index.html 为第一个&#xff0c; index.php 改成第二个 &#xff0c;或者前端访问 index.…

OJ_整数奇偶排序

题干 c实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<algorithm> using namespace std;//compare函数不交换返回true bool compare(int a, int b) {//1.a奇数&#xff0c;b偶数&#xff0c;不交换//2.a奇数&#xff0c;b奇数&#xff0c;a比b…

C语言实现跳表(附源码)

最近在刷一些链表的题目&#xff0c;在leetcode上有一道设计跳表的题目&#xff0c;也是通过查阅各种资料&#xff0c;自己实现出来&#xff0c;感觉这是种很神奇的数据结构。 一.简介 跳表与红黑树&#xff0c;AVL树等&#xff0c;都是一种有序集合&#xff0c;那既然是有序…

Prompt Engneering(提示词工程)

大模型的目标是理解和生成人类语言。给定一些词语&#xff0c;语言模型可以预测下一个词语可能是什么&#xff0c;或者给定的一些词语生层对应内容。 那么如何引导它们产生期望的输出&#xff0c;或者说如何提问&#xff0c;就成为了一个关键的问题。这就引入了一个重要的概念…

QStandardItemModel与QTableView里如何设置复选框居中

笔者为这个问题思索了不少时间&#xff0c;这个问题就是c qt里创建了一个QStandardItemModel设置了表格的表头&#xff0c;往表格填充数据时&#xff0c;数据的复选框左对齐&#xff0c;想要设置复选框居中对齐&#xff0c;不知道如何处理&#xff0c;这里给出代码与运行效果&a…