MATLAB中的代数环概念

news2024/12/23 23:27:10

        在 Simulink® 模型中,当存在信号环并且信号环中只存在直接馈通模块时,将出现代数环。直接馈通表示 Simulink 需要模块输入信号的值来计算当前时间步的输出。这种信号循环会在同一时间步中产生模块输出和输入的循环依存关系。这会导致一个需要在每个时间步求解的代数方程,从而增加仿真的计算成本。

下面是具有直接馈通输入的模块的一些示例:

·Math Function

·Gain

·Product

·State-Space,当 D 矩阵系数为非零时

·Sum

·Transfer Fcn,当分子和分母同阶时

·Zero-Pole,当模块的零值与极点一样多时

非直接馈通模块维护一个 State 变量。其中两个示例是 Integrator 和 Unit Delay 模块。

提示

        要确定一个模块是否具有直接馈通,请阅读模块参考页的特性部分。

        下图显示代数环的一个示例。Sum 模块是一个代数变量 xa,该变量必须等于第一个输入 u 减去 xa(例如 xa = u – xa)。

 此简单循环的解为 xa = u/2。

数学解释

        Simulink 包含一套用于对常微分方程 (ODE) 进行仿真的数值求解器,它们是您可以写为以下形式的方程组:

其中 x 是状态向量,t 是时间自变量。       

         某些方程组包含涉及自变量和状态向量,但不涉及状态向量的导数的其他约束。此类方程组称为微分代数方程 (DAE)。

        代数一词是指不涉及任何导数的方程。您可以用半显式格式来表示工程中出现的 DAE

其中:

  • f 和 g 可以是向量函数。

  • 第一个方程是微分方程。

  • 第二个方程是代数方程。

  • 微分变量的向量是 x

  • 代数变量的向量是 xa

        在 Simulink 模型中,代数环是代数约束。具有代数环的模型定义微分代数方程组。在 ODE 求解器的每个步长中,Simulink 以数值方式求解代数方程(代数环)的 xa。

图窗中的模型等同于此方程组的半显式形式:

在 ODE 求解器的每个步长中,代数环求解器必须先求解代数约束的 xa,然后再计算导数 ˙x。

物理解释

代数约束:

  • 在对物理系统建模时发生,通常是守恒定律所致,例如质量与能量守恒

  • 当您为模型选择特定坐标系时发生

  • 对动态系统中的系统响应的设计进行约束

        使用 Simscape™ 将跨越机械、电气、液压和其他物理领域的系统建模为物理网络。Simscape 构造描述模型行为的 DAE。软件将这些方程与模型的其余部分集成,然后直接解算 DAE。Simulink 同时对不同物理领域中的组件变量求解,从而避免代数环问题。

人为代数环

        当原子子系统或 Model 模块导致 Simulink 检测到代数环时,将发生人为代数环,即使该子系统的内容不包含从输入到输出的直接馈通也是如此。当您创建原子子系统时,所有 Inport 模块都将是直接馈通,从而导致代数环。

        以包含的模型为例,该模型表示被控对象的简单比例控制,其描述如下

它可以重写为以下状态空间形式: 

该方程组既没有代数变量也没有直接馈通,因此不包含代数环。

 按照以下步骤中的说明修改模型:

  1. 将 Controller 和 Plant 模块包含在子系统中。

  2. 在子系统对话框中,选择视为原子单元使子系统成为原子子系统。

  3. 在模型配置参数的诊断窗格中,将代数环参数设置为 error

        在对此模型进行仿真时,会出现代数环,因为该子系统是直接馈通,即使原子子系统内的路径不是直接馈通也是如此。仿真停止并出现代数环错误。

代数环求解器的工作原理

        当模型中包含代数环时,Simulink 在每个时间步使用非线性求解器解算代数环。求解器执行迭代以确定代数约束的解(如果存在)。因此,有代数环的模型的运行速度可能比没有代数环的模型的运行速度慢。

        Simulink 使用折线信赖域算法解算代数环。使用的容差小于 ODE 求解器 Reltol 和 Abstol。这是因为 Simulink 使用“显式 ODE 方法”来解算指数为 1 的微分代数方程 (DAE)。

要使代数环求解器发挥作用,

  • 必须存在一个模块,在该模块中,代数环求解器可以中断循环并尝试解算该循环。

  • 模型应该具有双精度实信号。

  • 基础代数约束必须是一个平滑函数。

        例如,假设您的模型中有一个带两个输入的 Sum 模块:一个相加,另一个相减。如果您将 Sum 模块的输出馈送给其中一个输入,则会创建一个代数环,其中的所有模块都包括直接馈通。

        Sum 模块无法在不知道输入的情况下计算输出。Simulink 会检测代数环,代数环求解器将使用迭代循环解算代数环。在 Sum 模块示例中,该软件通过以下方式计算正确的结果:

xa(t) = u(t) /2.(1)

        代数环求解器使用基于梯度的搜索方法,这需要与代数环相对应的代数约束的连续一阶导数。因此,如果代数环包含不连续性,代数环求解器可能会失败。

代数环求解器中的信赖域算法和行搜索算法

        Simulink 代数环求解器使用下面两种算法之一来解算代数环:

  • 信赖域

  • 行搜索

        默认情况下,Simulink 选择最佳代数环求解器,并可能在仿真期间在两种方法之间切换。要为模型显式启用自动代数环求解器选项,请在 MATLAB® 命令行中输入:

set_param(model_name, 'AlgebraicLoopSolver','Auto');

        要切换到信赖域算法,请在 MATLAB 命令行中,输入:

set_param(model_name, 'AlgebraicLoopSolver', 'TrustRegion');

        如果代数环求解器不能解算使用信赖域算法的代数环,请尝试使用行搜索算法对模型进行仿真。

要切换到行搜索算法,请在 MATLAB 命令行中,输入:

set_param(model_name, 'AlgebraicLoopSolver', 'LineSearch');

代数环求解器的限制

        代数环解算是一个迭代过程。仅当代数环收敛到一个明确的答案时,Simulink 代数环求解器才会成功。当代数环无法收敛,或收敛速度太慢时,仿真将退出并显示错误。

        代数环求解器无法解算包含以下任何一项的代数环:

  • 带有离散值输出的模块

  • 带有非双精度或复数输出的模块

  • 不连续点

  • Stateflow® 图

模型中代数环的影响

如果模型包含代数环:

  • 不能为模型生成代码。

  • Simulink 代数环求解器可能无法解算代数环。

  • 由于 Simulink 会尝试解算代数环,因此仿真执行速度可能很缓慢。

    对于大多数模型,代数环求解器的第一个时间步会耗费大量计算资源。Simulink 能够快速解算后续时间步,因为上一个时间步为 xa 提供了良好的起点。

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

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

相关文章

基于C#的无边框窗体阴影绘制方案 - 开源研究系列文章

今天介绍无边框窗体阴影绘制的内容。 上次有介绍使用双窗体的方法来显示阴影,这次介绍使用API函数来进行绘制。这里使用的是Windows API函数,操作系统的窗体也是用的这个来进行的绘制。 1、 项目目录; 下面是项目目录; 2、 函数介…

Nginx搭建本地服务器,无需购买服务器即可测试vue项目打包后的效果

一.前言 本文是在windows环境(Linux环境下其实也大同小异)下基于Nginx实现搭建本地服务器,手把手教你部署vue项目。 二.Nginx入门 1)下载安装 进入Nginx官网下载,选择stable版本下的windows版本下载即可 2)…

【链表OJ】链表中倒数第k个结点 合并两个链表(含哨兵位) 分割链表 链表的回文结构

前言: 💥🎈个人主页:​​​​​​Dream_Chaser~ 🎈💥 ✨✨刷题专栏:http://t.csdn.cn/UlvTc ⛳⛳本篇内容:力扣和牛客上链表OJ题目 目录 一、链表中倒数第k个结点 题目描述: 解题思路: 二.合并两个链表(含哨兵位) …

热点如何用于期刊写作——以chatGPT为例

交叉领域A,B 以自己为例子,A是教育 B是技术,我是教育技术学专业。 经验来源 知网关于GPT的140余篇专业论文的观察 截止至2023年8月14日15:35:45 学习每出现一个热点,如何应用于学术。 实践阅读发现 套路一:谈理论…

Java通过文件流和文件地址下载文件

通过文件流下载文件 如何使用 MultipartFile 进行文件上传、下载到本地,并返回保存路径呢: import org.springframework.web.multipart.MultipartFile;import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOExcep…

发布游戏,进行打包。(Unity)

做到这里,我们的项目基本功能已经完成了,如果你还想使项目功能更加完善,可以自己思考如何补充,充分发挥并进行优化使效果达到更加美好。 首先呢,我们这里是说打包Window电脑游戏,我们直接点击菜单栏文件-&…

数据结构与算法基础(青岛大学-王卓)(7)

差点就脱更了啊,微臣嘴干玩死,忙碌的暑假,还有头痛的new house, 我这junk food 也是吃一大堆,please不要长胖啊。 图的应用 这一章内容也是很多啊,概念真是比牛毛还多。。。看了两遍才缓过来啊 fighting 文章目录 [toc…

DoIP学习笔记系列:(六)满足AES128-CMAC算法的“安全认证”.dll生成实践

文章目录 1. 算法Demo2. 算法实现传送门 DoIP学习笔记系列:导航篇 AES128-CMAC算法在汽车电子控制单元的软件开发中涉及到安全相关的需求经经常用到,具体的算法原理请各位小伙伴自行百度,本篇主要向大家分享该算法如何集成到.dll文件中,在OTA、刷写等场景作为$27服务的安全…

Python实现透明隧道爬虫ip:不影响现有网络结构

作为一名专业爬虫程序员,我们常常需要使用隧道代理来保护个人隐私和访问互联网资源。本文将分享如何使用Python实现透明隧道代理,以便在保护隐私的同时不影响现有网络结构。通过实际操作示例和专业的解析,我们将带您深入了解透明隧道代理的工…

微服务相关面试题

👏作者简介:大家好,我是爱写博客的嗯哼,爱好Java的小菜坤 🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦 📝社区论坛:希望大家能加入社区共同进步…

自动化测试系列 —— UI测试

UI 测试是一种测试类型,也称为用户界面测试,通过该测试,我们检查应用程序的界面是否工作正常或是否存在任何妨碍用户行为且不符合书面规格的 BUG。了解用户将如何在用户和网站之间进行交互以执行 UI 测试至关重要,通过执行 UI 测试…

解决生成式AI落地之困,亚马逊云科技提供完整解决方案

生成式AI技术无疑是当前最大的时代想象力之一。 资本、创业者、普通人都在涌入生成式AI里去一探究竟:“百模大战”连夜打响,融资规模连创新高,各种消费类产品概念不断涌现……根据Bloomberg Intelligence 的报告,2022年生成式AI 市…

[HDLBits] Exams/m2014 q4c

Implement the following circuit: module top_module (input clk,input d, input r, // synchronous resetoutput q);always(posedge clk) beginif(r) q<1b0;elseq<d;end endmodule

万字长文·通俗易懂·一篇包掌握——输入/输出·文件操作(c语言超详细系列)(二)

前言&#xff1a;Hello&#xff0c;大家好&#x1f618;&#xff0c;我是心跳sy&#xff0c;上一节我们主要学习了格式化输入输出的基本内容&#xff0c;这一节我们对格式化进行更加深入的了解&#xff0c;对文件概念进行介绍&#xff0c;并且对输入、输出与文件读写的基本概念…

推断统计(独立样本t检验)

这里我们是采用假设检验中的独立样本t 检验来比较两个独立正态总体均值之间是否存在显著性差异&#xff0c;以比较城市与农村孩子的心理素质是否有显著差异为例 。 这里我们首先是假设城市孩子与农村孩子心理素质无显著差异&#xff0c;但是此时方差是否齐性是未知的&#xff0…

IntelliJ IDEA(简称Idea) 基本常用设置及Maven部署---详细介绍

一&#xff0c;Idea是什么&#xff1f; 前言&#xff1a; 众所周知&#xff0c;现在有许多编译工具&#xff0c;如eclipse&#xff0c;pathon, 今天所要学的Idea编译工具 Idea是JetBrains公司开发的一款强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;主要用于Java…

4.文件保护

第四章 文件管理 4.文件保护 ​   加密保护&#xff1a;可以用“密码”与文件的原始数据依次做异或运算。这样可以把整个文件的数据都进行加密&#xff0c;所以系统中保存的并不是文件的原始数据&#xff0c;而是保存了对文件进行加密之后的数据&#xff0c;所以如果一个用户…

Windows Oracle21C与PLSQL Developer 15配置

1、下载Oracle21c并安装 下载地址&#xff1a;https://www.oracle.com/database/technologies/oracle21c-windows-downloads.html 2、下载PLSQL Developer 15并安装 下载地址&#xff1a;https://www.allroundautomations.com/products/pl-sql-developer/#pricing 3、配置O…

Android Studio瀑布流实现

效果&#xff1a; ImageDetail class package com.example.waterfallflow; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.widget.ImageView;public class ImageDetail extends Activity{Overrideprotected void …

SCAU操作系统知识点之(十一)I/O调度和磁盘调度

1、程序控制I/O&#xff1a;CPU忙等I/O结束&#xff0c;CPU与设备串行工作。 2、中断驱动I/O&#xff1a;各种设备通用&#xff0c;中断次数多。 3、直接存储器访问DMA原理与I/O过程。 列出并简单定义执行I/O的三种技术。 程序控制I/O&#xff1a; 处理器代表进程向I/O模…