編輯推薦
《Simulink仿真及代碼生成技術入門到精通》由MATLAB中文論壇的版主hyowinner(孫忠瀟)寫成。與其說這是一本關於Simulink/MATLAB的書,不如說這是一本作者的成長手冊——從入門,到進階,先夯實瞭基礎,再來攻剋代碼生成的難題,作者前進的腳步一直踏踏實實穩穩當當的。作者憑藉這些能成功,你學完這些也不會差!
全書所有知識點的講解通俗易懂,數以韆計的小例子助讀者全麵學習並應用Simulink/MATLAB知識。作者本人的Simulink功力深厚,跟著本書,相信讀者很快就能感受到Simulink的博大精深和無窮魅力。
海報:
內容簡介
《Simulink仿真及代碼生成技術入門到精通》圍繞Simulink軟件的仿真和代碼生成技術,從原理上展開闡述,把握整體,注重細節,讓讀者深刻認識Simulink的運行原理。結構化的章節安排和豐富多彩的案例展示瞭Simulink在模型建立、工業流程仿真及嵌入式控製等方麵的應用技巧和方法。本書不拘泥於界麵操作,而結閤MATLAB腳本語言展示其自動控製模型仿真、代碼生成過程的強大功能,帶領讀者把握宏觀架構,攻剋細節問題。
全書共19章,分為入門篇、進階篇和高級篇3個篇章。入門篇介紹Simulink軟件及其基本操作和構成要素;進階篇講解Simulink的運行機製和原理、自定義模塊及模塊封裝、自定義模塊庫的建立和Simulink環境的編輯等功能,並講解如何使用M語言為模塊發布help文檔,以及通過工業實例展示綜閤應用GUI控製Simulink進行仿真的方法及代碼生成的應用方法;高級篇重點介紹“基於模型設計”的開發流程、嵌入式C代碼生成技術原理及TLC語言編寫方法,並展示如何在嵌入式應用中使用TSP。
本書可作為高等院校計算機、電子、自動化類專業計算機仿真及嵌入式課程的教學用書,也可供嵌入式係統研發工程師、軟件公司研發工程師及其他有關專業科研人員參考。
作者簡介
孫忠瀟(hyowinner),南京富士通南大軟件技術有限公司(FNST)主任工程師,主要負責ARM芯片的Hardware Support Package開發團隊以及電源控製軟件開發團隊的管理工作,有5年的MATLAB/Simulink應用經驗。
孫忠瀟已獲得MathWorks MATLAB Associate資格認證,並任MATLAB中文論壇Simulink基礎”“Simulink代碼生成”版塊的版主。在MATLAB中文論壇的佳答案超過1000個,長期穩居論壇會員排行榜的第2名。
內頁插圖
目錄
入門篇
第1章Simulink界麵介紹
1.1Simulink是什麼
1.2Simulink啓動及Simulink Library Browser介紹
1.3模型的建立
1.4打開既存模型
1.5嚮模型中添加模塊
第2章Simulink模塊
2.1Simulink模塊的組成要素
2.1.1模塊概述
2.1.2Simulink模塊的構成
2.1.3Simulink模塊的朝嚮
2.1.4Simulink模塊的屬性及參數
2.1.5Simulink模塊的注解
2.1.6Simulink模塊的虛擬性
2.2Simulink常用模塊庫
2.2.1輸入/輸齣模塊
2.2.2常數模塊
2.2.3波形顯示模塊
2.2.4四則運算模塊
2.2.5延時模塊
2.2.6關係操作模塊
2.2.7邏輯運算模塊
2.2.8Switch模塊
2.2.9積分模塊
2.2.10限幅模塊
2.2.11接地模塊
2.2.12終止模塊
2.2.13信號閤並與分解模塊
2.2.14總綫創建與總綫選擇模塊
2.2.15嚮量連接模塊
2.2.16數據類型轉換模塊
2.2.17子係統模塊
2.3Commonly Used Blocks以外的常用模塊
2.3.1信號源模塊
2.3.2信號接收模塊
2.3.3查錶模塊
2.3.4其他常用模塊
2.3.5用戶自定義模塊
第3章Simulink信號
3.1Simulink信號概述
3.2Simulink信號的操作
3.3Simulink信號的分類
3.3.1Scalar信號
3.3.2Vector信號
3.3.3Matrix信號
3.3.4Bus信號
3.3.5Function�瞔all信號
3.3.6尺寸可變信號
3.3.7未連接信號
3.4Simulink信號的屬性
第4章Simulink子係統
4.1Simulink子係統詳解
4.1.1子係統概述
4.1.2Simulink模型的運行順序
4.1.3各種子係統的特點與功能
4.2Simulink子係統實例
4.2.1虛擬和非虛擬(原子)子係統
4.2.2觸發使能子係統
4.2.3函數調用子係統(條件子係統)
4.2.4While子係統(動作子係統)
4.2.5可變子係統(選擇子係統)
4.2.6可配置子係統(選擇子係統)
第5章Simulink模型的仿真
5.1模型的配置仿真
5.1.1解算器
5.1.2參數的配置
5.2模型仿真數據記錄
5.3仿真過程的調試
5.3.1Debugger的啓動
5.3.2Debugger的單步方法
5.3.3Debugger的斷點設置方法
5.4仿真的加速
第6章Simulink模型保存為圖片
6.1截圖保存方式
6.2拷貝視圖方式
6.3使用saveas函數保存
6.4使用print函數保存
進階篇
第7章Simulink的迴調函數
7.1什麼是迴調函數
7.2迴調跟蹤
7.3模型迴調函數
7.4模塊迴調函數
7.5端口迴調函數
7.6參數迴調函數的使用
7.7迴調函數使用例程
7.7.1打開模型時自動加載變量
7.7.2雙擊模塊執行MATLAB腳本
7.7.3開始仿真前執行命令
7.7.4提示模塊端口的連綫情況
7.7.5統計模型中所有模塊信息
第8章M語言對Simulink模型的自動化操作及配置
8.1M語言控製模型的仿真
8.1.1sim控製模型仿真及參數配置
8.1.2set_param控製模型仿真過程
8.2M語言修改模塊屬性
8.3M語言自動建立模型
8.3.1模型的建立及打開
8.3.2模塊的添加、刪除及替換
8.3.3信號綫的添加及刪除
8.3.4M語言自動創建模型
第9章Simulink的流控製
9.1Simulink 流控製分類
9.2While 流控製
9.3For 循環控製
9.4If else控製
9.5Switch Case控製
第10章S函數
10.1S函數概述
10.2S函數的類型
10.3S函數的要素
10.4S函數的組成及執行順序
10.5使用不同語言編寫S函數
10.5.1Level 1 M S函數
10.5.2Level 2 M S函數
10.5.3C Mex S函數
第11章模塊的封裝
11.1Mask Editor封裝模塊
11.1.1封裝模塊構成的子係統
11.1.2封裝S函數編寫的模塊
11.2編程自動封裝模塊
11.2.1模塊的屬性
11.2.2使用set_param和get_param封裝模塊
11.2.3使用Simulink.Mask類封裝模塊
11.3使用GUIDE封裝模塊
第12章Publish發布M文件
12.1M文件的注釋
12.2Cell模式
12.3注釋的Publish
12.3.1正文
12.3.2字體控製
12.3.3小標題
12.3.4插入超鏈接
12.3.5插入可執行代碼
12.4注釋發布功能的應用場景
第13章Simulink創建自定義庫
第14章Simulink自定義環境
14.1Simulink 環境自定義功能
14.2Simulink 工具欄菜單自定義
14.3Simulink Library Browser菜單欄自定義
14.4Simulink目標硬件自定義
14.5Simulink參數對話框控製
第15章Simulink在流程工業中的仿真應用
15.1工業乙醇生産與計算機仿真
15.2工業乙醇發酵流程
15.3乙醇發酵動力學方程
15.4發酵動力學方程組的MATLAB求解
15.5發酵動力學方程組的Simulink求解
15.6乙醇連續發酵流程的Simulink仿真
15.7乙醇連續發酵的仿真軟件設計
15.7.1GUIDE介紹
15.7.2乙醇連續發酵程序仿真軟件界麵
15.7.3Simulink動態仿真控製器製作
15.7.4基於代碼生成的模型仿真加速
15.8總結
高級篇
第16章Simulink基於模型設計的工業應用概述
16.1Simulink用途概述
16.2Simulink的工業應用
16.2.1Airbus使用基於模型的設計為 A380 開發齣燃油管理係統
16.2.2馬自達加快開發下一代應用創馳藍天技術(SKYACTIV TECHNOLOGY)的
發動機
16.2.3特斯拉電動跑車Roadster
16.2.4羅斯鬍爾曼理工學院使用Simulink和SimDriveline設計混閤動力汽車動力
總成係統
16.2.5三星(英國)利用Simulink開發齣4G無綫係統
16.3總結
第17章Simulink代碼生成技術詳解
17.1基於模型的設計
17.1.1需求文檔
17.1.2根據需求進行設計
17.1.3需求與設計的掛接
17.1.4模型的仿真
17.1.5模型的性能分析及修正
17.1.6模型效率分析與優化
17.1.7模型的代碼生成
17.1.8模型生成代碼的優化
17.1.9代碼的有效性驗證
17.1.10其他驗證方法
17.2Simulink代碼生成流程及技巧
17.2.1代碼生成時的模型配置方法
17.2.2代碼生成的流程
17.2.3代碼生成方法與技巧
第18章TLC語言
18.1TLC的作用
18.2TLC的語法
18.2.1基本語法
18.2.2常用指令
18.2.3變量類型
18.2.4操作符和錶達式
18.2.5TLC內建函數
18.2.6TLC命令行
18.2.7TLC調試方法
18.2.8TLC文件的覆蓋度
18.2.9TLC Profiler
18.3為S函數編寫TLC文件
18.3.1支持代碼生成的S函數
18.3.2模塊TLC文件的構成
18.3.3模塊TLC函數實例
第19章基於TSP的直流電機控製設計
19.1TSP是什麼
19.1.1PSL的構成與使用
19.1.2工具鏈自動化流程
19.2直流電機控製原理
19.3係統的構成
19.4模型的建立
19.4.1PWM波形的産生
19.4.2電機轉速計算模塊
19.4.3電機調速模塊
19.5總結
參考文獻
前言/序言
在2015年人大和政協會議的政府工作報告中,李剋強總理針對産業發展提到瞭一個新概念:要實施“中國製造2025”,堅持創新驅動、智能轉型、強化基礎、綠色發展,加快從製造大國轉嚮製造強國。
工信部部長苗圩在兩會期間接受記者采訪時指齣,“中國製造2025的切入點就是智能製造”。
我認為,智能製造首先是實現智能工廠。通過推行自律係統的開發及智能監控係統,讓工廠內外的事物都通過物聯網(The Internet of Things,IoT)連接到互聯網,以激發管理模式和商業模式的創新,同時也賦予産品新的價值。
産生這樣的連鎖效應的前提是工廠生産的所有關聯信息要互聯互通,統一管理。通過信息物理係統(Cyber Physical Systems,CPS),將CRM(Customer Relationship Management,客戶關係管理)、PDM(Product Data Management,産品數據管理)、PLM (Product Lifecycle Management,産品生命周期管理)、CAD(Computer Aided Design,計算機輔助設計)等各種信息進行集成,統一管理。
這裏麵的關鍵技術就是信息通信技術(Information Communication Technology,ICT)。具體說就是通過互聯網相互連接的信息設備之間自律的協調工作M2M(Machine to Machine),通過分析從互聯網得到的各個終端的大數據得到信息,再與開發/銷售/ERP(Enterprise Resource Management)/PLM/SCM(Supply Chain Management)等業務係統進行連攜等類似的應用。
在這個大係統中,工程師們會更加關注與産品開發環節相關的PLM係統。幾乎所有的工業製造會用到MATLAB/Simulink,來讓開發內容可視化,通過數學模型及控製模型的計算仿真,可以快速地驗證創新設計的效果,並以此提高開發品質,降低開發成本,縮短開發周期。MATLAB/Simulink在汽車和工業控製領域取得的成功案例已經不勝枚舉。此外,通信領域、金融領域、半導體及電力電子領域也都在使用MATLAB/Simulink加速數據分析、設計和仿真。
不積跬步無以至韆裏。要實現“中國製造2025”的戰略目標,必須在各個環節引入先進的方法和工具,培養相關的人纔。
此書旨在讓更多的研發工程師和在校大學生認識和瞭解MATLAB/Simulink,為迎接智能製造的挑戰做好知識儲備。
陳錦程2015年4月20日
《精通Matlab高級應用與實戰》 前言 在當今技術飛速發展的時代,工程計算、數據分析和算法開發已成為各行各業不可或缺的核心能力。Matlab作為一款強大的工程計算與科學研究平颱,憑藉其在數值計算、數據可視化、算法實現以及原型開發等方麵的卓越性能,贏得瞭全球無數工程師、科學傢和研究人員的青睞。然而,許多用戶在掌握瞭Matlab的基礎操作後,往往會麵臨進階的瓶頸,難以充分挖掘其潛力,也無法高效地解決復雜的工程問題。 本書《精通Matlab高級應用與實戰》正是為瞭滿足這一需求而生。它不僅僅是一本關於Matlab語法的參考手冊,更是一本引導讀者深入理解Matlab精髓、掌握高級技巧、解決實際工程挑戰的實戰指南。我們旨在帶領讀者走齣“知其然”的層麵,邁嚮“知其所以然”,最終達到“融會貫通,瞭然於胸”的境界。 本書的內容涵蓋瞭Matlab的方方麵麵,從深入的數值計算方法到高效的程序設計藝術,從強大的數據處理能力到精美的圖形可視化技術,再到與C/C++等外部語言的交互集成,以及在特定領域的應用拓展。我們力求在每一個章節都提供詳實的概念講解、精妙的技巧演示、富有啓發性的代碼示例以及貼近實際的工程案例。 本書的寫作理念是“理論與實踐並行,深度與廣度兼顧”。我們不會止步於介紹某個函數或工具箱的功能,而是會深入剖析其背後的數學原理、算法邏輯以及適用場景。同時,我們也關注Matlab在不同工程領域的實際應用,通過大量的實戰案例,幫助讀者將所學知識融會貫通,解決真實世界的復雜問題。 本書的目標讀者是已經具備Matlab基礎知識,希望進一步提升技能,掌握Matlab高級特性的工程師、科研人員、高等院校學生以及對Matlab有深入學習需求的自學者。無論您是從事信號處理、控製係統設計、圖像處理、機器學習、金融建模,還是其他任何需要大量數值計算和算法實現的領域,本書都將為您提供寶貴的指導和豐富的實踐經驗。 本書的結構設計力求邏輯清晰,循序漸進。我們從Matlab的核心數值計算能力入手,逐步深入到函數式編程、麵嚮對象編程、性能優化等更抽象但更強大的編程範式。數據可視化部分將介紹如何創建各種復雜且富有錶現力的圖形,以清晰地傳達信息。文件I/O和數據管理將幫助您高效地處理海量數據。最後,本書還將觸及Matlab與其他編程語言的集成,以及在嵌入式係統開發中的一些高級概念,為您的技能擴展打下基礎。 我們相信,通過認真研讀本書,您不僅能夠熟練掌握Matlab的高級特性,更能夠培養齣解決復雜工程問題的獨立思考能力和創新實踐能力。Matlab的強大之處在於其靈活的編程環境和豐富的工具箱,而本書正是解鎖這些強大功能的鑰匙。 目錄 第一部分:Matlab數值計算的深度探索 第一章:高級數值算法與優化 1.1 綫性代數精要:稀疏矩陣、特徵值分析的深入應用 1.2 非綫性方程組求解:Newton-Raphson方法及其Matlab實現 1.3 最優化理論與算法:無約束和約束優化方法詳解 1.4 數值積分與微分:自適應方法和高精度求解器 1.5 特徵值問題的高級處理:廣義特徵值問題,迭代法 1.6 奇異值分解(SVD)在數據降維和去噪中的應用 1.7 稀疏矩陣在大型係統求解中的效率優勢與應用場景 1.8 迭代求解器(GMRES, BiCGSTAB等)的原理及參數調優 第二章:傅裏葉分析與信號處理高級技術 2.1 離散傅裏葉變換(DFT)的原理及快速傅裏葉變換(FFT)的優化 2.2 周期信號與非周期信號的FFT處理技巧 2.3 功率譜密度(PSD)估計:Welch方法、Bartlett方法 2.4 短時傅裏葉變換(STFT)與時頻分析 2.5 濾波器設計:IIR和FIR濾波器的理論與Butterworth, Chebyshev, Elliptic等類型 2.6 濾波器組設計與應用:多速率信號處理 2.7 窗函數技術的深入理解與應用:Rectangular, Hamming, Hanning, Blackman等 2.8 信號重構與插值算法:Savitzky-Golay濾波器,樣條插值 第二部分:Matlab程序設計的高級藝術 第三章:函數式編程與匿名函數 3.1 函數句柄的創建與傳遞 3.2 匿名函數的簡潔與高效 3.3 `arrayfun`, `cellfun`, `structfun`等函數式編程工具的使用 3.4 函數嚮量化與性能提升 3.5 遞歸函數的設計與優化 第四章:麵嚮對象編程(OOP)在Matlab中的實踐 4.1 類和對象的概念:屬性、方法、構造函數 4.2 繼承與多態:構建靈活的類體係 4.3 訪問控製與屬性設置器 4.4 事件和監聽器:實現動態交互 4.5 泛型編程(Generic Programming)在Matlab OOP中的體現 4.6 類的元編程(Metaprogramming)與高級技巧 4.7 OOP在仿真模型構建中的優勢 第五章:Matlab性能優化與並行計算 5.1 Matlab性能分析工具:`tic`, `toc`, `profile` 5.2 嚮量化編程的原則與實踐 5.3 循環展開與分支預測的優化 5.4 預分配內存與數據類型選擇 5.5 JIT(Just-In-Time)編譯器的工作原理 5.6 並行計算工具箱:多核處理器的利用 5.7 `parfor`與`spmd`語句詳解 5.8 GPU加速計算:`gpuArray`的使用 第三部分:Matlab數據可視化與交互式應用 第六章:高級圖形繪製與定製 6.1 3D圖形繪製:麯麵、等值綫、散點圖的高級定製 6.2 交互式圖形:圖軸的動態調整、數據點的選取與標注 6.3 子圖與圖組的靈活布局 6.4 圖形對象模型:Axes, Figure, Plot等對象的深入操作 6.5 自定義顔色圖、綫型和標記 6.6 動畫製作:連續幀的生成與播放 6.7 圖形導齣與發布:高質量圖片格式的生成 第七章:數據處理與管理 7.1 錶格(Table)和時間錶(Timetable)的高級應用 7.2 結構體(Struct)和單元格數組(Cell Array)的靈活操作 7.3 數據導入與導齣:Excel, CSV, HDF5, NetCDF等格式 7.4 缺失值處理與異常值檢測 7.5 數據分組與聚閤 7.6 文本數據的高效處理 第八章:用戶界麵(UI)設計與交互 8.1 App Designer:現代化的GUI開發環境 8.2 組件布局與響應式設計 8.3 事件處理與迴調函數 8.4 數據綁定與動態更新 8.5 部署Matlab App:打包與分享 8.6 基於Web的Matlab應用開發簡介 第四部分:Matlab在特定領域的應用拓展 第九章:算法開發與模型驗證 9.1 算法的模塊化設計與重用 9.2 單元測試與集成測試 9.3 仿真結果的可視化與分析 9.4 模型參數辨識與靈敏度分析 9.5 模糊邏輯和神經網絡在建模中的應用 第十章:Matlab與C/C++及其他語言的交互 10.1 MEX文件:加速Matlab代碼 10.2 C/C++代碼的編寫與編譯 10.3 數據類型轉換與內存管理 10.4 外部函數接口(Foreign Function Interface, FFI) 10.5 與Python的交互:`py.module.function` 10.6 COM對象的使用 第十一章:工程應用案例分析 11.1 控製係統設計與仿真 11.2 數字信號處理實例:語音識彆基礎 11.3 圖像處理與計算機視覺應用 11.4 金融建模與量化分析 11.5 機器學習模型開發與部署 附錄 A. Matlab常用函數速查錶 B. Matlab開發環境配置與技巧 C. 參考文獻與進一步學習資源 結語 本書的編寫曆時數月,傾注瞭作者在Matlab領域多年的學習、實踐與思考。我們深知,精通一項技術並非一日之功,而在於持續的鑽研與不懈的實踐。希望本書能夠成為您在Matlab學習道路上的一盞明燈,助您突破瓶頸,攀登高峰。 在閱讀過程中,如果您遇到任何問題或有任何建議,都歡迎通過[聯係方式/郵箱]與我們交流。您的反饋將是我們不斷進步的動力。 願本書能夠助您在Matlab的世界裏,發現無限可能,實現技術精進!