BMS保護包括過充保護、過流保護、高溫保護等等保護類型較多,但是如果用函數封裝的角度去理解,大多數保護類型函數原型是一樣的,只不過傳入函數的參數不同而已,這樣我們就可以用Simulink把這樣一類保護做成通用的模塊然后傳入不同的保護參數再返回報警等級實現業務邏輯功能。
保護分類
按照以上分析把保護類型分為高觸發保護(以下簡稱高保護)和低觸發保護,高觸發保護是采樣值比設定閾值高觸發的告警保護,同理低觸發保護是采樣值比閾值低觸發的保護。 我們先來實現高保護。
第一步:新建空模型文件命名為protect。
其中閾值和采樣值比較邏輯我們采用stateflow實現,
第二步:模型中加入Chart模塊
第三步:寫邏輯
圓圈代表節點,直線是傳輸,{}里面的語句為執行,[]里面的語句為判斷。 先看下下面這條語句,當采樣值大于設定閾值之后,開始計時當計時夠了之后報警標志位置1
接著把邏輯做完
這樣我們就把判斷邏輯做完了下面我們驗證下模型;
第四步:設置輸入、輸出、本地參數類型;
第五步:驗證模型
設置幾個輸入參數,仿真看下結果,輸入給一個變化的正弦輸入,幅值設置為5000,這樣變化的信號可以遍歷工況;
可以看到當輸入大于4000時經過延時告警值置位,當小于3000時經過延時告警值復位,當小于閾值時告警一直為0,符合預期的邏輯;
第六步:封裝模型
模型測試好了再封裝一層
這樣把模型封裝成一個子模塊
第七步:應用。
現在原型函數就做好了可以根據傳入參數完成電壓、電流、溫度的保護告警去應用了
第八步:生成代碼
生成代碼的配置可以去代碼生成 | 安時積分法模型搭建查看;
可以看到生成的代碼邏輯很嚴謹很清晰。
好了,高保護已經做完了,大家可以嘗試搭建下低保護的子模塊。
-
參數
+關注
關注
11文章
1785瀏覽量
32090 -
Simulink
+關注
關注
22文章
522瀏覽量
62307 -
函數
+關注
關注
3文章
4307瀏覽量
62432 -
模型
+關注
關注
1文章
3173瀏覽量
48715 -
bms
+關注
關注
106文章
974瀏覽量
65743
發布評論請先 登錄
相關推薦
評論