呂德乾 李自成 李 奧 郝文杰 王國晶
(成都理工大學(xué)工程技術(shù)學(xué)院,四川 成都 614000)
汽車上坡受力分析具體如圖1 所示。
圖1 汽車上坡受力分析
1.根據(jù)牛頓第二定律,汽車受力公式為:
2.m 假定為汽車質(zhì)量,我們?nèi)?00。
3.Fi 為引擎動(dòng)力,最大驅(qū)動(dòng)力是2000,最大制動(dòng)力是-3000,如下:
4.Fb 為空氣阻力,它與汽車運(yùn)動(dòng)時(shí)的速度成正比,可得如下表達(dá)式:
“30sin(0.02a)”估算可能為“陣風(fēng)”引起的,v 為汽車在水平路上的正常速度。
5.Fy 為重力向下分力,可得表達(dá)式:
表達(dá)式中的正弦項(xiàng)是因?yàn)槠潞退铰分g有夾角α 變化所以引入的。
根據(jù)上述數(shù)學(xué)模型,我們可以建立汽車上坡時(shí)的Simulink 模型,如圖2,圖中參數(shù)模塊的配置解釋如下:
1.Int 模塊:汽車驅(qū)動(dòng)力Fx 的輸入端口。
2.Snout 模塊:汽車真實(shí)速度Sn 的輸出端口。
3.Min模塊:驅(qū)動(dòng)力最小值,Constant value欄填:-3000。
4.LowLm 模塊(MinMax 模塊):在其參數(shù)設(shè)置中,在Function 欄填:max(缺省設(shè)置),Number of input ports欄填:2(缺省設(shè)置),這樣的話,模塊輸出欄就是兩個(gè)輸入模塊中的最大值,模塊的圖標(biāo)可以命名為:max。
5.Max 模塊:驅(qū)動(dòng)力最大值,Constant value 欄填:2000。
6.UpLm 模塊:在其參數(shù)設(shè)置中,在Function 欄填:min,這樣,輸出模塊就是兩個(gè)輸入模塊中的最小值,模塊圖標(biāo)命名為:min。
7.ClockInt 模塊:仿真時(shí)間a 的輸入端口。
8.Fy 模塊(Fcn 模塊):在其參數(shù)設(shè)置中,完成重力向下的分量Fy,公式(1)-(4),這個(gè)模塊的位移標(biāo)量x,輸出是重力分力:Fy,在Expression 欄中填:
40*sin(0.0002*u)
9.Fb 模塊:完成空氣的阻力Fb,公式(1)-(3)。這個(gè)模塊的輸入是由[v,a]構(gòu)成的向量,因?yàn)镕cn 模塊必須要遵循第一個(gè)原則,在參數(shù)設(shè)置中Expression 欄中填:
0.002*(u(1)+30*sin(0.02*u(2)))^2
比例控制器的工作原理:利用假設(shè)速度和真實(shí)速度的差值作為“指令”驅(qū)動(dòng)力Fx,可以構(gòu)建數(shù)學(xué)模型:
K 是比例系數(shù),可取K=60,v1 是汽車的假設(shè)速度,v 是汽車的真實(shí)速度。“指令”驅(qū)動(dòng)力Fx 和真實(shí)驅(qū)動(dòng)力K 的區(qū)別就是,第一個(gè)只是理論上的驅(qū)動(dòng)力,第二個(gè)則是經(jīng)過物理限制后才能使用的力。
根據(jù)公式(1)-(5),我們可以得出下面的Simu link 模型,如圖3:
SnInt-是假設(shè)速度的輸入端口,SnInt+是真實(shí)速度的輸入端口。FnOut 是驅(qū)動(dòng)力Fx 的輸出端口模塊。
將圖2 和圖3 組合連接放在一個(gè)新的模型窗口中,就能得到圖4 汽車上坡的完整模型,模型命名為Mod el_1.del。
圖2 汽車上坡的Simulink 模型
圖3 汽車速度的比例控制器Simulink 模型
在圖4 中,SG 模塊的功能可以完成我們想要的假設(shè)速度,打開它的操作窗口,調(diào)整里面的數(shù)據(jù)。Low(下限)填0。High(上限)填200,滑動(dòng)鍵代表可以調(diào)整的增益值(圖中是:70,即:假設(shè)中汽車的速度)。這個(gè)模塊還需要“恒值”輸入信號(hào)Ct 的激勵(lì)。
因?yàn)槲覀冃枰玫赜^察和比較,所以速度量需要被送到Dp(數(shù)值顯示器)和Sc。這樣,在仿真過程中我們就能在數(shù)值顯示器上看到汽車的真實(shí)速度。
將圖4 模型窗口的仿真結(jié)束時(shí)間設(shè)置為8000,在仿真前先分別打開SG 操作窗口和示波器窗口,開始仿真,仿真結(jié)果如圖5,在仿真過程中,凡是在SG 操作窗口移動(dòng)滑鍵,我們都能在SG 上看到相對(duì)應(yīng)假設(shè)的速度。根據(jù)圖形,我們能知道Dp 上的真實(shí)速度正在不斷向假設(shè)的速度靠近[4]。
圖4 汽車上坡的完整Simulink 模型
圖5 仿真結(jié)果
打開Model_1.del 模型,在模型窗口中用鼠標(biāo)左鍵選中整個(gè)汽車上坡仿真,然后鼠標(biāo)右鍵選擇“Create Subsystem”,將選中部分包裝在一個(gè)名為Subsystem 的模塊中,改名為Sub1,采用類似的操作,將比例控制器整理后改名為:Sub2,打開Sub2 子系統(tǒng)模塊的模型窗口,將其兩個(gè)輸入端模塊和一個(gè)輸出端模塊的缺省名改為In-,In+和Out,然后仿照更改Sub1 子系統(tǒng)輸入模塊和輸出模塊的缺省名分別為In,ClockIn1 和Out。
最后整理一下圖中的信號(hào)線和圖形,得到圖6 生成子系統(tǒng)的完整仿真模型。
圖6 生成子系統(tǒng)的完整仿真圖
1.打開Sub1 子系統(tǒng)模塊的模型窗口。
2.打開Max 模塊參數(shù)設(shè)置對(duì)話框,在Constant value欄填Fmax(驅(qū)動(dòng)力上限)。
3.打開Max Brake 模塊參數(shù)對(duì)話框,在Constant 欄填Fmin(制動(dòng)力下限)。
4.打開FB 模塊參數(shù)對(duì)話框,在Expression 欄填:
0.02*(u(1)+wn*sin(0.02*u(2)))^2
wn 是“陣風(fēng)”系數(shù)。
5.打開FY 模塊參數(shù)對(duì)話框,在Expression 欄填:
fn*(0.0002*u)
fn 是路面起伏系數(shù)。
打開Sub1 模塊,用鼠標(biāo)左鍵單擊Parameters 中的Spinbox,然后在Dialog parameters 區(qū)域依次增加4 個(gè)設(shè)計(jì)提示和設(shè)置的變量,參數(shù)更改如下:分別在它們的4 個(gè)Prompt 欄中填:largest driving force;largest braking force;road rough coefficient;flurry intensity coefficient。在所有Variable 欄中分別填相關(guān)聯(lián)變量名:Fmax;Fmin;wn;fn。Type 欄中全部選取缺省:edit 類型,以方便使Fmax,F(xiàn)min,wn,fn4 個(gè)變量分別通過編輯框輸入;最后選中Evaluate 和Tunable 欄。然后就完成了我們需要的設(shè)計(jì)提示和變量設(shè)置。如果想解開封裝操作,就先選中該模塊,鼠標(biāo)左鍵雙擊選中“Mask...”,然后單擊“Unmask”就行。
3.4.1 汽車封裝子系統(tǒng)的參數(shù)設(shè)置對(duì)話框及其賦值
打開Sub1 子系統(tǒng)模塊參數(shù)設(shè)置對(duì)話框,在Param eter 區(qū)域中按照下面參數(shù)所示完成賦值。
largest driving force 欄:填2000;
largest braking force 欄:填-3000;
road rough coefficient 欄:填40;
flurry intensity coefficient 欄:填30;
3.4.2 參數(shù)傳播途徑
MATLAB 命令窗口中的已經(jīng)賦值好了的變量或直接給定的數(shù)值經(jīng)過參數(shù)設(shè)置對(duì)話框直接傳遞給封裝子系統(tǒng),然后通過子系統(tǒng)中各模塊的對(duì)話窗口傳遞給各個(gè)模塊,在這里,封裝子系統(tǒng)參數(shù)設(shè)置對(duì)話框是該系統(tǒng)從外界獲得參數(shù)的唯一途徑。
采用封裝子系統(tǒng),可以把Simulink 子系統(tǒng)封裝成一個(gè)模塊,這樣便于我們清晰的觀看到系統(tǒng)中每一個(gè)子系統(tǒng)模塊的功能,這樣很方便我們直接輸入想要的數(shù)據(jù),而系統(tǒng)也能夠?qū)⒔Y(jié)果以圖形的形式給我們以更直觀和簡(jiǎn)潔的形式表達(dá)出來。