導讀:本期文章主要介紹一種C集成的Simulink類型的MATLAB仿真,這種仿真類似于半實物仿真,更好的貼合硬件實物。以SVPWM模塊的C集成實現,來簡單介紹一下C MEX工作原理。
一、C MEX S_Function模塊介紹
S-Function(系統函數)為擴展Simulink的性能提供了一個有力的工具。S-Function 可以使用MATLAB,C,C++,Ada,或Fortran 語言來編寫。使用MEX 實用工具,將C,C++,Ada,和Fortran 語言的S-Function 編譯成MEX-文件,在需要的時候,它們可與其它的MEX-文件一起動態地連接到MATLAB 中。
S-Function 使用一種特殊的調用格式讓你可以與Simulink 方程求解器相互作用,這與發生在求解器和內置Simulink 塊之間的相互作用非常相似。S-Function 的形式是非常通用的,且適用于連續、離散和混合系統。
1.1在模型中使用S-Function
為了將一個 S-function 組合到一個Simulink 模型中,首先從Simulink 用戶定義的函數塊庫中拖出一個S-Function 塊,然后在S-Function 塊對話框中的S-Function name 區域指定明確的S-Function 的名字。如下圖所示:
圖1-1S-function 塊、對話框、及決定塊功能的源文件之間的關系
1.2 S-Function的工作原理
要創建 S-function,你必須了解S-function 是如何工作的。要了解S-function 如何工作,則需要了解Simulink 是如何進行模型仿真的,那么又需要了解塊的數學公式。因此,本節首先從一個塊的輸入、狀態和輸出之間的數學關系開始介紹。
1.2.1 Simulink塊的數學關系
Simulink 塊包含一組輸入、一組狀態和一組輸出。其中,輸出是采樣時間、輸入和塊狀態的函數。
u:S-Function模塊的輸入;y:S-Function模塊的輸出;x:就是S-Function要實現什么功能所對應的函數。
1.2.2 C MEX S-Function的一般格式
二、SVPWM模塊C MEX實現
圖2-1 C集成SVPVM仿真系統
圖2-2基于C MEX建模方法的仿真結果
表2-1 N與扇區的對應關系
為了驗證C MEX模型的正確性,圖2-2給出了SVPWM模塊的仿真結果。由圖2-2的第一通道可知,扇區N的值為3à1à5à4à6à2且交替變換,與表2-1所示的結果相同;由圖2-2的第二通道可知,由SVPWM模塊得到的調制波呈馬鞍波,這樣有利于提高直流電壓的利用率,有效抑制諧波;由圖2-2的第三通道可以看出,得到的相電壓為6拍階梯波,與實際理論相符。因此以上的仿真結果驗證了C MEX SVPWM模塊的正確性和可行性。
-
matlab
+關注
關注
179文章
2946瀏覽量
229455 -
仿真
+關注
關注
50文章
3971瀏覽量
132949 -
模型
+關注
關注
1文章
3031瀏覽量
48346
原文標題:C集成的MATLAB/Simulink類型仿真學習總結
文章出處:【微信號:淺談電機控制,微信公眾號:淺談電機控制】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論