簡介

本篇主要說明Simulink模型的搭建、MPC控制器的S-function的編寫

1、Carsim設置

新建一個空白的Simulink模型,或複製Carsim自帶的Simulink模型,存放在如下路徑C:UsersPublicDocumentsCarSim2016.1_DataExtensionsSimulink)

單擊下圖中的紅圈按鈕

如下圖所示,將新建好的Simulink模型添加到進來

單擊Send to Simulink按鈕,如下圖紅圈所示,該操作將打開MATLAB及Simulink

2、Simulink模型搭建

步驟1的操作將自動打開MATLAB的Simulink(需等待幾十秒,MATLAB啟動較慢),並且Simulink Library Browser中將出現Carsim S-Function模塊,之前在Carsim里搭建的汽車模型被封裝成S-Function用以被調用。

搭建如下的Simulink模型

經測算,所選車型的方向盤轉角約為車前輪轉角的17.86

Simulink模型的下載鏈接

xiaoyuyang0901/Simulation-platform?

github.com
圖標

3、S-Function的編寫

一個很好的S-Function教程

https://blog.csdn.net/acelit/article/details/59082349?

blog.csdn.net

新建MPC_Costfunction.m 、MPC_Nonlcon.m 、MPC_S_Function.m 三個.m文件,存放在如下路徑C:UsersPublicDocumentsCarSim2016.1_DataExtensionsSimulink)

雙擊Simulink模型中的MPC_S_Function中模塊,出現如下的窗口,點擊Edit按鈕

單擊Browse按鈕,添加已經建好的MPC_S_Function.m 文件

4、源碼

a. 參考軌跡有兩個可供選擇

y = 0.5 * sin( 0.1 * pi * x )

y = 1

b. 目標函數中的各個懲罰項權重需要進行調參,過多的懲罰項將大大降低實時性

c. 增加預測的周期周期數可以降低調參的壓力,但是會犧牲實時性

MPC_S_Function.m 程序的下載鏈接

xiaoyuyang0901/Simulation-platform?

github.com
圖標

MPC_Costfunction.m 程序的下載鏈接

xiaoyuyang0901/Simulation-platform?

github.com
圖標

MPC_Nonlcon.m 程序的下載鏈接

xiaoyuyang0901/Simulation-platform?

github.com
圖標

Reference

1.龔建偉, 姜岩, 徐威. 無人駕駛車輛模型預測控制[M]. 北京理工大學出版社, 2014.

2.Matlab中S-函數的編寫blog.csdn.net/acelit/ar


推薦閱讀:
相关文章