MATLAB中的代數環概念

????????在 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.pswp.cn/news/41766.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41766.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41766.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【【verilog典型電路設計之流水線結構】】

verilog典型電路設計之流水線結構 下圖是一個4位的乘法器結構,用verilog HDL 設計一個兩級流水線加法器樹4位乘法器 對于流水線結構 其實需要做的是在每級之間增加一個暫存的數據用來存儲 我們得到的東西 我們一般來說會通過在每一級之間插入D觸發器來保證數據的聯…

Oracle 數據庫備份

1、使用管理員賬號創建對應的directory目錄 登錄數據庫 sqlplus / as sysdba 創建directory create or replace directory dumpdir as F:\container; 2、給用戶賦予使用該目錄的權限 grant read,write on directory dumpdir to Scott; 查看創建的目錄位置 select * fro…

OpenCV-Python中的圖像處理-圖像特征

OpenCV-Python中的圖像處理-圖像特征 圖像特征Harris角點檢測亞像素級精度的角點檢測Shi-Tomasi角點檢測SIFT(Scale-Invariant Feature Transfrom)SURF(Speeded-Up Robust Features)FAST算法BRIEF(Binary Robust Independent Elementary Features)算法ORB (Oriented FAST and R…

JavaScript判空設默認值的幾種寫法

前端面試題庫 (面試必備) 推薦:★★★★★ 地址:前端面試題庫 實踐中需要給某個變量賦值時,若數據來源不可控,通常會給它設置一個默認值(就像空對象模式一樣)。JavaScri…

python編程中有哪些方便的調試方法

大家好,給大家分享一下一個有趣的事情,很多人還不知道這一點。下面詳細解釋一下。現在讓我們來看看! 對于每個程序開發者來說,調試幾乎是必備技能。常用Pycharm編輯器里的方法有Print大法、log大法,但缺少類似Matlab的…

敏感掛載binfmt_misc容器逃逸復現和分析

前言 對于/proc下有很多掛載會導致容器逃逸,其中binfmt_misc就是一種可以利用的逃逸掛載 binfmt_mics 實驗 touch test_fmt_intp echo aaa > test_fmt echo #!/bin/sh > test_fmt_intp echo >> test_fmt_intp chmod x test_fmt_intp echo :test_fmt…

怎么開通Tik Tok海外娛樂公會呢?

TikTok作為全球知名的社交媒體平臺,吸引了數億用戶的關注和參與。許多公司和個人渴望通過開通TikTok直播公會進入這一領域,以展示自己的創造力和吸引更多粉絲。然而,成為TikTok直播公會并非易事,需要滿足一定的門檻和申請找cmxyci…

【日常積累】Linux之init系統學習

init系統簡介: Linux 操作系統的啟動首先從 BIOS 開始,接下來進入 boot loader,由 bootloader 載入內核,進行內核初始化。內核初始化的最后一步就是啟動 pid 為 1 的 init 進程,這個進程是系統的第一個進程,它負責產生…

銀河麒麟服務器v10 sp1 .Net6.0 上傳文件錯誤

上一篇:銀河麒麟服務器v10 sp1 部署.Net6.0 http https_csdn_aspnet的博客-CSDN博客 .NET 6之前,在Linux服務器上安裝 libgdiplus 即可解決,libgdiplus是System.Drawing.Common原生端跨平臺實現的主要提供者,是開源mono項目。地址…

封裝form表單

目錄 1. 源碼 2. 其他頁面引用 ps&#xff1a;請看完看明白再復用 1. 源碼 <template><div style"width: 100%; height: 100%" class"form-condition"><!-- 普通表單 --><el-card shadow"hover" class"cardheigh…

AQS的原理及應用

文章目錄 AQS引言AQS 的原理AQS 應用舉例1:Semaphore舉例2:ReentrantLockAQS 的案例分析問題背景解決方案AQS 引言 在我們的日常生活和工作中,往往需要協調各個線程之間的執行順序和資源使用,而AQS(AbstractQueuedSynchronizer)即為 Java 并發包中提供的一種解決辦法。…

ubuntu 部署 ChatGLM-6B 完整流程 模型量化 Nvidia

ubuntu 部署 ChatGLM-6B 完整流程 模型量化 Nvidia 初環境與設備環境準備克隆模型代碼部署 ChatGLM-6B完整代碼 ChatGLM-6B 是一個開源的、支持中英雙語的對話語言模型&#xff0c;基于 General Language Model (GLM) 架構&#xff0c;具有 62 億參數。結合模型量化技術&#x…

力扣 322. 零錢兌換

題目來源&#xff1a;https://leetcode.cn/problems/coin-change/description/ C題解&#xff08;來源代碼隨想錄&#xff09;&#xff1a;題目中說每種硬幣的數量是無限的&#xff0c;可以看出是典型的完全背包問題。動規五部曲分析如下&#xff1a; 確定dp數組以及下標的含義…

深入理解設計模式-創建型之建造者模式(與工廠區別)

什么是建造者設計模式&#xff1f;和工廠設計模式有什么區別 建造者設計模式&#xff08;Builder Design Pattern&#xff09;和工廠設計模式&#xff08;Factory Design Pattern&#xff09;都是面向對象設計中的創建型模式&#xff0c;但它們解決的問題和應用場景有所不同。…

原碼、反碼、補碼,進制轉換,有符號數和無符號數轉換

計算機底層存儲數據時&#xff0c;存儲的是數據對應的二進制數字。對于整型數據&#xff0c;其二進制表示形式有三種&#xff0c;分別是&#xff1a;原碼、反碼、補碼&#xff0c;而實際存儲的是整型數據的補碼。 原碼、反碼以及補碼都是有符號的&#xff0c;其中最高位存放符…

帶你掌握Stable Diffution商業級玩法

課程介紹 學習地址 《Stable Diffusion商業級玩法》通過詳細講解AI繪畫技巧、實操演示和個性化指導&#xff0c;幫助您從零基礎成為繪畫高手&#xff0c;幫助您有效推廣產品或服務&#xff0c;提升市場份額。教您掌握穩定擴散繪畫技巧&#xff0c;開啟藝術創作新篇章。

Opencv 之ORB特征提取與匹配API簡介及使用例程

Opencv 之ORB特征提取與匹配API簡介及使用例程 ORB因其速度較快常被用于視覺SLAM中的位姿估計、視覺里程、圖像處理中的特征提取與匹配及圖像拼接等領域本文將詳細給出使用例程及實現效果展示 1. API 簡介 創建 static Ptr<ORB> cv::ORB::create (int nfeatures 500…

無涯教程-Perl - use函數

描述 此函數將MODULE導出的所有功能(或僅LIST引用的功能)導入當前包的名稱空間。有效等效于- BEGIN { require "Module.pm"; Module->import(); }也用于在當前腳本上強加編譯器指令(編譯指示),盡管從本質上講它們只是模塊。 請注意,use語句在編譯時進行判斷。在…

springcloud3 hystrix實現服務熔斷的案例配置3

一 hystrix的熔斷原理 1.1 hystrix的熔斷原理 在springcloud的框架里&#xff0c;熔斷機制是通過hystrix實現&#xff0c;hystrix會監控服務之間的調用。當失敗調用達到一定的閾值&#xff0c;默認是5s內失敗20次&#xff0c;就會啟用hystrix的熔斷機制&#xff0c;使用命Hy…

神經網絡基礎-神經網絡補充概念-44-minibatch梯度下降法

概念 小批量梯度下降法&#xff08;Mini-Batch Gradient Descent&#xff09;是梯度下降法的一種變體&#xff0c;它結合了批量梯度下降&#xff08;Batch Gradient Descent&#xff09;和隨機梯度下降&#xff08;Stochastic Gradient Descent&#xff09;的優點。在小批量梯…