Simulink模擬基礎 主要內容 Simulink簡介 Simulink模組庫 Simulink的基本操作 S-函數.

Slides:



Advertisements
Similar presentations
1 Lecture 5 Properties of LTI Systems The Solution of LCCDE.
Advertisements

國立成功大學工程科學系 Department of Engineering Science -National Cheng Kung University 控制與訊號處理實驗室 Control & Signal Processing Lab MATLAB/Simulink 教學.
和码汉字字形技术 和码汉字字形学习法 和码汉字字形输入法.
Foundations of Computer Science
WINDOWS98资源管理器教案 一、   教学目标 1、知识目标:掌握资源管理器的结构;通过资源管理器掌握利用左键和右键的拖动完成文件及文件夹的复制和移动这两个操作;能分别使用左键和右键进行这两种操作,且能区分左键和右键的不同。
“走进三国” 读书汇报会 广州市玉岩中学 李玉明( ).
Introduction to Matlab
Matlab教學 Speaker:林昱志 Date:2012/10/18.
1012 MATLAB 教學 彭奕翔 2013/02/27.
教育测验的编制.
《 E D A 技 术》 课 程 教 学 讲授:伍宗富 湖南文理学院电气与信息工程学院 2017年3月22日星期三.
系统仿真软件Matlab及数模混合仿真 2013年4月2日.
第2章 MATLAB仿真 2.1 MATLAB介绍 2.2 MATLAB编程仿真 2.3 Simulink仿真.
华中科技大学电气与电子工程学院应用电子工程系 康勇 李勋 二00一年十一月
CATIA V5 培训教程 工 程 图.
第七讲 matlab的程序设计 —— matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易。
2-1 基本直流分析. 2-1 基本直流分析 新專案(Project)的建立 點選 File/New/Project.
單元一:基頻訊號傳送技術實習 (PCM取樣 量化 編碼部分) 數位通訊實習模擬 單元一.
Active Clamp and Reset Technique 有源钳位电路 完整开关周期工作过程分析 摘自TI资料 庄主 —2.20
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
Introduction to AppInventor 2
第1章 MATLAB概述 1.1 MATLAB 7.x简介 是Matrix Laboratory的缩写,它将计算、可视化和编程功能于一身,是一个开放的基于矩阵的交互式开发系统。主要用于数学计算、系统建模与仿真、数据分析与可视化等。(Mathworks始创于1984) MATLAB的系统结构.
第3章 DSP Builder设计入门 3.1 DSP Builder及其设计流程 3.2 DSP Builder设计向导
Agilent N9010A EXA信号分析仪.
第 6 章 數位邏輯.
第七章 Simulink建模和仿真 在计算机技术飞速发展的今天,许多科学研究、工程设计由于其复杂性越来越高,因此与计算机的接合日趋紧密。也正是计算机技术的介入,改变了许多学科的结构、研究内容和研究方向。例如,计算流体力学、计算物理学、计算声学等新兴学科的兴起,均与计算机技术的发展分不开。控制理论、仿真技术本身与计算机的接合就十分紧密,而随着专业领域的研究深入和计算机软硬件技术的发展,这种联系呈现更加紧密。计算控制论的建立,足以说明这个问题。而这种发展,又以系统仿真技术的发展分不开的。
Chapter 3 行程觀念 (Process Concept)
欢迎参加VHDL培训 VHDL培训教程 浙江大学电子信息技术研究所 电子设计自动化(EDA)培训中心
無線通訊系統模擬 姓名:顏得洋 學號:B
Origin绘图和数据分析 2006年11月.
6.系統設定.
内容: 1. 库模块简介 2.基本建模方法 3.模型举例 4.子系统与模块封装技术 5.函数的编写与应用
Simulink建模与仿真.
EWB 电 路 电 子 分 析 设 计 仿 真 软 件 软件简介   随着电子技术和计算机技术的发展,电子产品已与计算机紧密相连,电子产品的智能化日益完善,电路的集成度越来越高,而产品的更新周期却越来越短。电子设计自动化(EDA)技术,使得电子线路的设计人员能在计算机上完成电路的功能设计、逻辑设计、性能分析、时序测试直至印刷电路板的自动设计。EDA是在计算机辅助设计(CAD)技术的基础上发展起来的计算机设计软件系统。与早期的CAD软件相比,EDA软件的自动化程度更高、功能更完善、运行速度更快,而且操作界面
内容提要:
第14章 其它DSP设计库 14.1 总线控制库 14.2 复数信号库 14.3 Gates库 14.4 状态机函数库
CH5、SIMULINK仿真基础 在工程实际中,控制系统的结构往往很复杂,如果不借助专用的系统建模软件,则很难准确地把一个控制系统的复杂模型输入计算机,对其进行进一步的分析与仿真。 1990年,Math Works软件公司为MATLAB提供了新的控制系统模型图输入与仿真工具,并命名为SIMULAB,该工具很快就在控制工程界获得了广泛的认可,使得仿真软件进入了模型化图形组态阶段。但因其名字与当时比较著名的软件SIMULA类似,所以1992年正式将该软件更名为SIMULINK。
第三章 项目设定.
變數命名 保留字(Reserved Word)
Camtasia教學 數位教學組 黃玉雯 104/05/20.
Master Degree Students Oct, 2006
瞬态油漆混合器 练习 6.
Gaussian Elimination 東海大學物理系‧數值分析 施奇廷.
第9章 DSP集成开发环境CCS 内容提要 CCS是TI公司推出的用于开发DSP芯片的集成开发环境,它采用Windows风格界面,集编辑、编译、链接、软件仿真、硬件调试以及实时跟踪等功能于一体,极大地方便了DSP芯片的开发与设计,是目前使用最为广泛的DSP开发软件之一。 本章对CCS开发软件的使用作了详细地介绍。首先,对CCS开发软件作了简要地说明,并介绍了该软件的安装及配置;其次,介绍了CCS的基本操作,包括:CCS的窗口和工具条、文件的编辑、反汇编窗口、存储器窗口、寄存器窗口、观察窗口
引 言.
第6章 FIR数字滤波器设计 6.1 FIR数字滤波器原理 6.2 使用DSP Builder设计FIR数字滤波器
授課教授:張寶基 助教:梁凱雯 郭千豪 音視訊處理實驗室 2014 / 9 / 30
義守大學電機工程學系 陳慶瀚 第3章 VHDL Concurrent語法 義守大學電機工程學系 陳慶瀚
MATLAB 程序设计语言 任课教师:刘毅 西安电子科技大学 ISN国家重点实验室.
Matlab及其应用 讲座之五 动态系统仿真——Simulink 主讲人:鲍文 在此幻灯片插入公司的徽标 从“插入”菜单 选择图片
第三章 付里叶分析 离散付氏级数的数学解释(The Mathematical Explanation of DFS)
Active Clamp and Reset Technique 有源钳位电路 完整开关周期工作过程分析 摘自TI资料 庄主 —2.20
第二章 闭环控 制的直 流调速 系统及 计算机 仿真.
NS2 (Network Simulator - version 2)
第9章 MATLAB环境下的仿真软件Simulink
9.1 仿真概念和仿真操作步骤 9.2 常用仿真元件与激励源 9.3 仿真器的设置与运行
或閘的特性與符號 所有的輸入均為0,輸出才為0 ▲ 圖 3-1 或閘的邏輯概念 ▲ 圖 3-2 或閘的電路符號.
Matlab及其应用 讲座之五 动态系统仿真——Simulink 主讲人:鲍文 在此幻灯片插入公司的徽标 从“插入”菜单 选择图片
班級:通訊四甲 學號 : B 姓名 : 李忠憲 指導老師 : 余誌民 老師
控制系统计算机辅助设计-MATLAB语言与应用
第一单元 第1课 Matlab概述 1.MATLAB 2.工具箱 3.高效数值计算功能 4.完备的计算结果和编程可视化功能
本講義為使用「訊號與系統,王小川編寫,全華圖書公司出版」之輔助教材
讀人 Auto Play with Music From : TF
MATLAB 实用教程.
本講義為使用「訊號與系統,王小川編寫,全華圖書公司出版」之輔助教材
作者:郭阳宽 王正林 《过程控制系统仿真》 电子工业出版社 出版 作者:郭阳宽 王正林
Lecture #10 State space approach.
Word 2010 文書處理技巧 圖資中心資訊組 李訓榮.
MATLAB 程式設計入門篇 程式除錯 張智星 (Roger Jang)
Simulink National Tsing Hua University
Presentation transcript:

Simulink模擬基礎 主要內容 Simulink簡介 Simulink模組庫 Simulink的基本操作 S-函數

Simulink模擬基礎 背景:在工程實際中,控制系統的結構往往很複雜,如果不借助專用的系統建模軟體,則很難準確地把一個控制系統的複雜模型輸入電腦,對其進行進一步的分析與模擬。 產生與命名:1990年,Math Works軟體公司為MATLAB提供了新的控制系統模型圖輸入與模擬工具,並命名為SIMULAB,該工具很快就在控制工程界獲得了廣泛的認可,使得模擬軟體進入了模型化圖形組態階段。但因其名字與當時比較著名的軟體SIMULA類似,所以1992年正式將該軟體更名為SIMULINK。 SIMULINK的出現,給控制系統分析與設計帶來了很大的便利。顧名思義,該軟體的名稱表明了該系統的兩個主要功能:Simu(模擬)+Link(連接),即該軟體可以利用滑鼠在模型視窗上繪製出所需要的控制系統模型,然後利用SIMULINK提供的功能來對系統進行模擬和分析。

第一節 SIMULINK簡介 一、什麼是SIMULINK SIMULINK是MATLAB軟體的擴展,它是實現動態系統建模和模擬的一個套裝軟體,它與MATLAB語言的主要區別在於,其與使用者交互介面是基於Windows的模型化圖形輸入,其結果是使得用戶可以把更多的精力投入到系統模型的構建,而非語言的程式設計上。 所謂模型化圖形輸入是指SIMULINK提供了一些按功能分類的基本的系統模組,用戶只需要知道這些模塊的輸入輸出及模組的功能,而不必考察模組內部是如何實現的,通過對這些基本模組的調用,再將它們連接起來就可以構成所需要的系統模型(以.mdl檔進行存取),進而進行模擬與分析。

二、SIMULINK的啟動 1、在MATLAB命令視窗中輸入simulink 結果是在桌面上出現一個稱為Simulink Library Browser的視窗,在這個視窗中列出了按功能分類的各種模組的名稱。 當然用戶也可以通過MATLAB主視窗的快捷按鈕來打開Simulink Library Browser窗口。 2、在MATLAB命令視窗中輸入simulink3 結果是在桌面上出現一個用圖示形式顯示的Library :simulink3的Simulink模組庫視窗。 兩種模組庫視窗介面只是不同的顯示形式,使用者可以根據各人喜好進行選用,一般說來第二種視窗直觀、形象,易於初學者,但使用時會打開太多的子視窗。

三、SIMULINK的模組庫介紹 SIMILINK模組庫按功能進行分類,包括了以下子庫: Continuous(連續模組) Discrete(離散模組) Function&Tables(函數和平臺模組) Math(數學模組) Nonlinear(非線性模組) Signals&Systems(信號和系統模組) Sinks(接收器模組) Sources(輸入源模組) Note:matlab版本不同,其庫的構成也有不同。

1、連續模組(Continuous) Integrator:輸入信號積分 Derivative:輸入信號微分 State-Space:線性狀態空間系統模型 Transfer-Fcn:線性傳遞函數模型 Zero-Pole:以零極點表示的傳遞函數模型 Memory:存儲上一時刻的狀態值 Transport Delay:輸入信號延時一個固定時間再輸出 Variable Transport Delay:輸入信號延時一個可變時間再輸出

2、離散模組(Discrete) Discrete State-Space:離散狀態空間系統模型 Discrete Transfer-Fcn:離散傳遞函數模型 Discrete Zero-Pole:以零極點表示的離散傳遞函數模型 First-Order Hold:一階採樣和保持器 Discrete-time Integrator:離散時間積分器 Discrete Filter:IIR與FIR濾波器 Zero-Order Hold:零階採樣和保持器 Unit Delay:一個採樣週期的延時

3、 Math(數學模組) Sum:加減運算 Product:乘運算 Dot Product:點乘運算 Gain:比例運算 Abs:取絕對值 Sign:符號函數 Math Function:包括指數函數、對數函數、求平方、開根號等常用數學函數 Trigonometric Function:三角函數,包括正弦、餘弦、正切等 MinMax:極值運算

Logical Operator:邏輯運算 Relational Operator:關係運算 Complex to Magnitude-Angle:由複數輸入轉為幅值和相角輸出 Magnitude-Angle to Complex:由幅值和相角輸入合成複數輸出 Complex to Real-Imag:由複數輸入轉為實部和虛部輸出 Real-Imag to Complex:由實部和虛部輸入合成複數輸出

4、 Function&Tables(函數和平臺模組) Fcn:用自訂的函數(運算式)進行運算 MATLAB Fcn:利用matlab的現有函數進行運算 S-Function:調用自編的S函數的程式進行運算 Look-Up Table:建立輸入信號的查詢表(線性峰值匹配) Look-Up Table(2-D):建立兩個輸入信號的查詢表(線性峰值匹配) Note:1)有時候一些數值運算還是寫一個函數比較方便,所以有函數模組。 2)在某些新版本中,分解為table+funciton2個模組

5、 Nonlinear(非線性模組) Saturation:飽和輸出,讓輸出超過某一值時能夠飽和。 Relay:滯環比較器,限制輸出值在某一範圍內變化。 Switch:開關選擇,當第二個輸入端大於臨界值時,輸出由第一個輸入端而來,否則輸出由第三個輸入端而來。 Manual Switch:手動選擇開關

6、Signal&Systems(信號和系統模組) Mux:將多個單一輸入轉化為一個複合輸出。 Demux:將一個複合輸入轉化為多個單一輸出。 In1:輸入端(在創建子系統的時候用到)。 Out1:輸出端(在創建子系統的時候用到)。 Ground:連接到沒有連接到的輸入端。 Terminator:連接到沒有連接到的輸出端。 SubSystem:建立新的封裝(Mask)功能模組

7、Sinks(接收器模組) Scope:示波器(圖形的方式顯示信號)。 To Workspace:將輸出寫入MATLAB的工作空間。 XY Graph:顯示二維圖形。 To File(.mat):將輸出寫入資料檔案。

8、Sources(輸入源模組) Sine Wave:正弦波信號。 Step:階躍波信號。 Constant:常數信號。 Clock:時鐘信號。 From Workspace:來自MATLAB的工作空間。 From File(.mat):來自資料檔案。 Pulse Generator:脈衝發生器。 Repeating Sequence:重複信號。 Signal Generator:信號發生器,可以產生正弦、方波、鋸齒波及隨意波。

四、SIMULINK簡單模型的建立-例子 1、簡單模型的建立 (1)如何建立模型視窗? (2)需要哪些模組? 控制物件+控制器:傳遞函數(連續系統) 輸入:單位階躍(source) 輸出:示波器+to workspace(sinks) 回饋:信號的加減(math) (3)如何連接模組? (4)模擬時間的設置 (5)模擬演算法的設置 (exp5_1.mdl)

P7-5 MATLAB視窗程式設計 第7章 Simulink

MATLAB視窗程式設計 第7章 Simulink

第二節 SIMULINK功能模組的處理 功能模組的基本操作,包括模組的移動、複製、刪除、轉向、改變大小、模組命名、顏色設定、參數設定、屬性設定、模組輸入輸出信號等。 模組庫中的模組可以直接用滑鼠進行拖曳(選中模組,按住滑鼠左鍵不放)而放到模型視窗中進行處理。 在模型視窗中,選中模組,則其4個角會出現黑色標記。此時可以對模組進行以下的基本操作。 1)移動:2)複製:3)刪除:

轉向:為了能夠順序連接功能模組的輸入和輸出端,功能模組有時需要轉向。在菜單Format中選擇Flip Block旋轉180度,選擇Rotate Block順時針旋轉90度。或者直接按Ctrl+F鍵執行Flip Block,按Ctrl+R鍵執行Rotate Block。 改變大小: 模組命名: 顏色設定: Format菜單中的Foreground Color可以改變模組的前景顏色,Background Color可以改變模組的背景顏色;而模型視窗的顏色可以通過Screen Color來改變。

參數設定:按兩下進入。 屬性設定:選中模組,打開Edit菜單的Block Properties可以對模組進行屬性設定。其中Open function屬性是一個很有用的屬性,通過它指定一個函數名,則當該模組被按兩下之後,Simulink就會調用該函數執行,這種函數在MATLAB中稱為回呼函數。 模組的輸入輸出信號:模組處理的信號包括標量信號和向量信號;標量信號是一種單一信號,而向量信號為一種複合信號,是多個信號的集合,它對應著系統中幾條連線的合成。缺省情況下,大多數模組的輸出都為標量信號,對於輸入信號,模組都具有一種“智慧”的識別功能,能自動進行匹配。某些模組通過對參數的設定,可以使模組輸出向量信號。

第三節 SIMULINK線的處理 改變粗細:線所以有粗細是因為線引出的信號可以是標量信號或向量信號,當選中Format菜單下的Wide Vector Lines時,線的粗細會根據線所引出的信號是標量還是向量而改變,如果信號為標量則為細線,若為向量則為粗線。選中Vector Line Widths則可以顯示出向量引出線的寬度,即向量信號由多少個單一信號合成。 設定標籤:按兩下即可。 線的折彎:按住Shift鍵,再用滑鼠在要折彎的線處按一下一下,就會出現圓圈,表示折點,利用折點就可以改變線的形狀。 線的分支:按住滑鼠右鍵,在需要分支的地方拉出即可以。或者按住Ctrl鍵,並在要建立分支的地方用滑鼠拉出即可。

第四節 SIMULINK自訂功能模組 1) 背景:針對複雜的系統,將其中同屬於一個功能子系統的模組封裝為一個單獨的子系統。(類似於程式設計中的函數的概念。) 2)方法:自訂功能模組有兩種方法: a)採用Signal&Systems 模組庫中的Subsystem功能模組,利用其編輯區設計組合新的功能模組; b)另一種方法是將現有的多個功能模組組合起來,形成新的功能模組。對於很大的SIMULINK模型,通過自訂功能模組可以簡化圖形,減少功能模組的個數,有利於模型的分層構建。

第四節 SIMULINK自訂功能模組 自訂功能模組的封裝 1) 如果要命名該自訂功能模組、對功能模組進行說明、選定模組外觀、設定輸入資料視窗,則需要對其進行封裝處理。 2)步驟:首先選中Subsystem功能模組,再打開Edit功能表中的Mask Subsystem進入mask的編輯視窗,可以看出有3個標籤頁: a)Icon:設定功能模組的外觀。 b)Initialization:設定輸入資料視窗(Prompt List)。 c)Documentation:設計該功能模組的文字說明。

第五節 SIMULINK模擬的運行 構建好一個系統的模型之後,接下來的事情就是運行模型,得出模擬結果。運行一個模擬的完整過程分成三個步驟:設置模擬參數,啟動模擬和模擬結果分析。 一、設置模擬參數和選擇解法器 設置模擬參數和選擇解法器,選擇Simulation菜單下的Parameters命令,就會彈出一個模擬參數對話方塊,它主要用三個頁面來管理模擬的參數。 Solver頁,它允許用戶設置模擬的開始和結束時間,選擇解法器,說明解法器參數及選擇一些輸出選項。 Workspace I/O頁,作用是管理模型從MATLAB工作空間的輸入和對它的輸出。 Diagnostics頁,允許用戶選擇Simulink在模擬中顯示的警告資訊的等級。

1、Solver頁 此頁可以進行的設置有:1) 選擇模擬開始和結束的時間;2) 選擇解法器,並設定它的參數;3)選擇輸出項。 仿真時間:注意這裡的時間概念與真實的時間並不一樣,只是電腦模擬中對時間的一種表示,比如10秒的模擬時間,如果採樣步長定為0.1,則需要執行100步,若把步長減小,則採樣點數增加,那麼實際的執行時間就會增加。一般模擬開始時間設為0,而結束時間視不同的因素而選擇。總的說來,執行一次模擬要耗費的時間依賴於很多因素,包括模型的複雜程度、解法器及其步長的選擇、電腦時鐘的速度等等。 仿真步長模式:用戶在Type後面的第一個下拉選項框中指定模擬的步長選取方式,可供選擇的有Variable-step(變步長)和Fixed-step(固定步長)方式。變步長模式可以在模擬的過程中改變步長,提供誤差控制和過零檢測。固定步長模式在模擬過程中提供固定的步長,不提供誤差控制和過零檢測。使用者還可以在第二個下拉選項框中選擇對應模式下模擬所採用的演算法。

變步長模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。 ode45:缺省值,四/五階龍格-庫塔法,適用於大多數連續或離散系統,但不適用於剛性(stiff)系統。它是單步解法器,也就是,在計算y(tn)時,它僅需要最近處理時刻的結果y(tn-1)。一般來說,面對一個模擬問題最好是首先試試ode45。 ode23:二/三階龍格-庫塔法,它在誤差限要求不高和求解的問題不太難的情況下,可能會比ode45更有效。也是一個單步解法器。 ode113:是一種階數可變的解法器,它在誤差容許要求嚴格的情況下通常比ode45有效。ode113是一種多步解法器,也就是在計算當前時刻輸出時,它需要以前多個時刻的解。 ode15s:是一種基於數位微分公式的解法器(NDFs)。也是一種多步解法器。適用於剛性系統,當使用者估計要解決的問題是比較困難的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s。

固定步長模式解法器有:ode5,ode4,ode3,ode2,ode1和discrete。

步長參數:對於變步長模式,使用者可以設置最大的和推薦的初始步長參數,缺省情況下,步長自動地確定,它由值auto表示。 a)Maximum step size(最大步長參數):它決定瞭解法器能夠使用的最大時間步長,它的缺省值為“模擬時間/50”,即整個模擬過程中至少取50個取樣點,但這樣的取法對於模擬時間較長的系統則可能帶來取樣點過於稀疏,而使模擬結果失真。一般建議對於模擬時間不超過15s的採用預設值即可,對於超過15s的每秒至少保證5個採樣點,對於超過100s的,每秒至少保證3個採樣點。 b) Initial step size(初始步長參數):一般建議使用“auto”預設值即可。

模擬精度的定義(對於變步長模式) a)Relative tolerance(相對誤差):它是指誤差相對於狀態的值,是一個百分比,缺省值為1e-3,表示狀態的計算值要精確到0.1%。 b)Absolute tolerance(絕對誤差):表示誤差值的門限,或者是說在狀態值為零的情況下,可以接受的誤差。如果它被設成了auto,那麼simulink為每一個狀態設置初始絕對誤差為1e-6。

2、Workspace I/O頁 此頁主要用來設置SIMULINK與MATLAB工作空間交換數值的有關選項。 Load from workspace:選中前面的核取方塊即可從MATLAB工作空間獲取時間和輸入變數,一般時間變數定義為t,輸入變數定義為u。 Initial state用來定義從MATLAB工作空間獲得的狀態初始值的變數名。 Save to workspace:用來設置存往MATLAB工作空間的變數類型和變數名,選中變數類型前的核取方塊使相應的變數有效。一般存往工作空間的變數包括輸出時間向量(Time)、狀態向量(States)和輸出變數(Output)。 Final state用來定義將系統穩態值存往工作空間所使用的變數名。 Save option:用來設置存往工作空間的有關選項。Limit rows to last用來設定SIMULINK模擬結果最終可存往MATLAB工作空間的變數的規模,對於向量而言即其維數,對於矩陣而言即其秩;Decimation設定了一個亞採樣因數,它的缺省值為1,也就是對每一個模擬時間點產生值都保存,而若為2,則是每隔一個模擬時刻才保存一個值。Format用來說明返回資料的格式,包括矩陣matrix、結構struct及帶時間的結構struct with time。

二、啟動模擬 設置模擬參數和選擇解法器之後,就可以啟動模擬而運行。 選擇Simulink菜單下的start選項來啟動仿真,如果模型中有些參數沒有定義,則會出現錯誤資訊提示框。如果一切設置無誤,則開始模擬運行,結束時系統會發出一鳴叫聲。 除了直接在SIMULINK環境下啟動模擬外,還可以在MATLAB命令視窗中通過函數進行,格式如下: [t,x,y]=sim(‘模型檔案名’,[to tf],simset(‘參數1’,參數值1,‘參數2’,參數值2, …)) 其中to為模擬起始時間,tf為模擬終止時間。[t,x,y]為返回值,t為返回的時間向量值,x為返回的狀態值,y為返回的輸出向量值。simset定義了模擬參數,包括以下一些主要參數: AbsTol:預設值為1e-6設定絕對誤差範圍。 Decimation:預設值為1,決定隔多少個點返回狀態和輸出值。 Solver:解法器的選擇。

MaxRows:預設值為0,表示不限制。若為大於零的值,則表示限制輸 出和狀態的規模,使其最大行數等於該數值。 InitialState:一個向量值,用於設定初始狀態。 FixedStep:用一個正數表示步階的大小,僅用於固定步長模式。 MaxStep:預設值為auto。用於變步長模式,表示最大的步階大小。 如果知道模型檔案名稱,可以用以下命令得到該模型的模擬參數: simget(‘模型檔案名’)

第五節 SIMULINK模擬的運行 小結:模擬運行要點 1)設置參數 a)模擬時間: 注意能夠觀察到我們需要的資訊即可。 b)模擬演算法:定(非定)步長模式,時間間隔、容許誤差等; 注意時間間隔不要太長。 2)模擬啟動

常用方塊元件 P7-14

AND:若所有輸入為真(True),則輸出真(True)。 OR:若輸入至少有一為真(True),則輸出真(True)。 NAND:若輸入至少有一為偽(False),則輸出真(True)。 NOR:若輸入沒有為真(True),則輸出真(True)。 XOR:若奇數輸入為真(True),則輸出真(True)。 NOT:若輸入為真( 偽),則輸出偽( 真)。

P7-21

連續元件

P7-25

P7-29

數學運算元件

P7-55

P7-58

第六節 SIMULINK s-function的設計 背景: Simulink為使用者提供了許多內置的基本庫模組,通過這些模組進行連接而構成系統的模型。對於那些經常使用的模組進行組合並封裝可以構建出重複使用的新模組,但它依然是基於Simulink原來提供的內置模組。而Simulink s-function是一種強大的對模塊庫進行擴展的新工具。 Note: 1)類似的手段:子系統、自己定義的函數 2)s函數與上述手段有何不同呢?

第六節 SIMULINK s-function的設計 s-function是一個動態系統的電腦語言描述,在MATLAB裡,用戶可以選擇用m檔編寫,也可以用c或mex檔編寫。 S-function提供了擴展Simulink模組庫的有力工具,它採用一種特定的調用語法,使函數和Simulink解法器進行交互。 S-function最廣泛的用途是定制用戶自己的Simulink模組。它的形式十分通用,能夠支援連續系統、離散系統和混合系統。

二、建立m文件s-function 1、使用範本檔:sfuntmp1. m 該範本檔位於MATLAB根目錄下toolbox/simulink/blocks目錄下。 主函數結構(sfuntmp1_main):根據傳入的flag,調用不同的函數。

note: 1)模擬過程:多次的反覆運算,每次的反覆運算中間又分作了不同的過程。 2)模擬是通過simulink解法器來完成的;s-函數是提供給simulink解法器調用的; 3)s函數與simulink解法器是如何協作的? simulink解法器在反覆運算過程中調用s函數,s函數負責執行相關的指令。s函數與simulink解法器的交互通過輸入參數來完成。 其中t(時間),x(狀態參量),u(輸出參量)。 flag:表徵反覆運算具體進展到哪個階段。

二、建立m文件s-function 1、使用範本檔: 範本檔使用switch語句來完成這種指定,當然這種結構並不唯一,使用者也可以使用if語句來完成同樣的功能。而且在實際運用時,可以根據實際需要來去掉某些值,因為並不是每個模組都需要經過所有的子函式呼叫。 範本文件只是Simulink為方便用戶而提供的一種參考格式,並不是編寫s-function的語法要求,使用者完全可以改變子函數的名稱,或者直接把代碼寫在主函數裡,但使用範本檔的好處是,比較方便,而且條理清晰。

使用範本編寫s-function,用戶只需把s-函數名換成期望的函數名稱,如果需要額外的輸入參量,還需在輸入參數列表的後面增加這些參數,因為前面的4個參數是simulink調用s-function時自動傳入的。對於輸出參數,最好不做修改。接下去的工作就是根據所編s-function要完成的任務,用相應的代碼去替代範本裡各個子函數的代碼即可。 Simulink在每個模擬階段都會對s-function進行調用,在調用時,Simulink會根據所處的模擬階段為flag傳入不同的值,而且還會為sys這個返回參數指定不同的角色,也就是說儘管是相同的sys變數,但在不同的模擬階段其意義卻不相同,這種變化由simulink自動完成。

m文件s-function可用的子函數說明如下: mdlInitializeSizes:定義s-function模組的基本特性,包括採樣時間、連續或者離散狀態的初始條件和sizes陣列。 mdlDerivatives:計算連續狀態變數的微分方程。 mdlUpdate:更新離散狀態、採樣時間和主時間步的要求。 mdlOutputs:計算s-function的輸出。 mdlGetTimeOfNextVarHit:計算下一個採樣點的絕對時間,這個方法僅僅是在用戶在mdlInitializeSizes 裡說明了一個可變的離散採樣時間。 mdlTerminate:實現模擬任務必須的結束。

概括說來,建立s-function可以分成兩個分離的任務: 初始化模組特性包括輸入輸出信號的寬度,離散連續狀態的初始條件和採樣時間。 將算法放到合適的s-function子函數中去。

2、定義s-function的初始信息 為了讓Simulink識別出一個m文件s-function,用戶必須在s-函數裡提供有關s-函數的說明資訊,包括採樣時間、連續或者離散狀態個數等初始條件。這一部分主要是在mdlInitializeSizes子函數裡完成。 Sizes陣列是s-function函數資訊的載體,它內部的欄位意義為: NumContStates:連續狀態的個數(狀態向量連續部分的寬度) NumDiscStates:離散狀態的個數(狀態向量離散部分的寬度) NumOutputs: 輸出變數的個數(輸出向量的寬度) NumInputs:輸入變數的個數(輸入向量的寬度) DirFeedthrough:有無直接饋入 NumSampleTimes:採樣時間的個數

3、輸入和輸出參量說明 S-function默認的4個輸入參數為t、x、u和flag,它們的次序不能變動,代表的意義分別為: t:代表當前的模擬時間,這個輸入參數通常用於決定下一個採樣時刻,或者在多採樣速率系統中,用來區分不同的採樣時刻點,並據此進行不同的處理。 x: 表示狀態向量,這個參數是必須的,甚至在系統中不存在狀態時也是如此。它具有很靈活的運用。 u:表示輸入向量。 flag:是一個控制在每一個模擬階段調用哪一個子函數的參數,由Simulink在調用時自動取值。

S-function默認的4個返回參數為sys、x0、str和ts,它們的次序不能變動,代表的意義分別為: sys:是一個通用的返回參數,它所返回值的意義取決於flag的值。 x0: 是初始的狀態值(沒有狀態時是一個空矩陣[]),這個返回參數只在flag值為0時才有效,其他時候都會被忽略。 str:這個參數沒有什麼意義,是MathWorks公司為將來的應用保留的,m文件s-function必須把它設為空矩陣。 ts:是一個m×2的矩陣,它的兩列分別表示採樣時間間隔和偏移。

第六節 SIMULINK s-function的設計 小結:一個基本的框架 1)對於一個連續系統 a. 系統初始化 b.計算微分環節 c.計算系統輸出 2)對於一個離散系統 b. 計算系統的更新環節 c. 計算系統輸出

例1 csfunc.m(連續狀態s-function) note: 修改了函數的調用形式,添加了A、B、C、D這些參數; sfun_exam_csfun.mdl 例2 dsfunc.m(離散狀態s-function)

本章小結 SIMULINK是MATLAB的一個擴展軟體,它是基於模型化圖型輸入的模擬環境。 S-FUNCTION是擴展MATLAB函式程式庫的一個實用方法,要求掌握它的編寫及用法。 使用SIMULINK進行模擬分析的關鍵是熟練地運用各功能子模組構建出需要的正確的系統模型並合理地設置解法器以使模擬得以正常運行。