日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab cuda的.cu文件应该放在那里_无人机基于Matlab/Simulink的模型开发(连载一)

發(fā)布時間:2023/12/10 循环神经网络 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab cuda的.cu文件应该放在那里_无人机基于Matlab/Simulink的模型开发(连载一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

“一切可以被控制的對象,都需要被數(shù)學量化”

這是筆者從事多年研發(fā)工作得出的道理,無論是車輛控制,機器人控制,飛機控制,還是無人機控制,所有和機械運動相關(guān)的控制,如果不能被很好的數(shù)學量化,那么將不會被很好的控制。

因為工作需要,筆者曾拜訪過很多無人機研發(fā)公司,高校和研究所。發(fā)現(xiàn)大多數(shù)無人機研發(fā)公司的研發(fā)手段,相較于國外,還很初級。基本都是嵌入式開發(fā)居多,側(cè)重于驅(qū)動的修改,飛行邏輯的修改。我認為這算不上是嚴格的無人機開發(fā)。因為大多數(shù)公司,都沒有給被控對象(無人機),建立完整的數(shù)學模型。只是利用開源的框架,調(diào)整控制參數(shù),沒有完整的測試流程和測試指標。這樣研發(fā)出來的飛機一致性很差,每一架飛機的飛行狀態(tài)都不統(tǒng)一,完全不能滿足于工業(yè)應(yīng)用的場景。2018/2019年倒閉的無人機公司,大多數(shù)都是存在這種情況。

不乏有些原本從事互聯(lián)網(wǎng)軟件開發(fā)的公司,轉(zhuǎn)行從事無人機開發(fā)。在運動控制領(lǐng)域,和互聯(lián)網(wǎng)軟件開發(fā)的不同。有的時候互聯(lián)網(wǎng)軟件開發(fā),不需要建立被控對象的數(shù)學模型。秉承設(shè)計模式,軟件架構(gòu)設(shè)計,協(xié)作編程,大規(guī)模軟件集中測試,上線。在無人系統(tǒng)開發(fā)中,軟件構(gòu)架設(shè)計也是必不可少的,但是在測試的環(huán)節(jié),如果沒有建立數(shù)學模型,測試無從談起,因為一般的真機測試,代價,效率和測試密集程度遠遠達不到要求。因為一個BUG會導致飛機墜毀,而任何一個新系統(tǒng),往往存在大量的BUG。

而在已經(jīng)成熟工業(yè)界,比如汽車,飛機制造,電力電子,航天等領(lǐng)域大量采用了基于Matlab基于Simulink的模型開發(fā)手段。

我們阿木實驗室提供如下的課程體系和打包工具:

課程將全面,細致地講解如何基于模型(Simulink)的方法設(shè)計一套功能強大的飛控系統(tǒng)。本課程由多位一線資深飛控工程師設(shè)計,結(jié)合多年的基于模型的飛控開發(fā)經(jīng)驗,給大家提供最先進,最前沿的飛控開發(fā)體驗。

概述

基于模型的開發(fā)將省去繁瑣的代碼編寫步驟,只需要拖動幾個模塊,就像搭積木一般,輕松搭建您自己的飛控算法。飛控開發(fā)人員可以將更多的精力放在算法本身,而不需要過多關(guān)注代碼實現(xiàn)的細節(jié),這樣將大大加快開發(fā)的效率,減少在代碼編寫過程中產(chǎn)生的錯誤。同時,基于模型的開發(fā)具有優(yōu)秀的代碼復(fù)用性。也就是說,已經(jīng)設(shè)計好的功能模塊,只需要簡單的復(fù)制粘貼,就能輕松地應(yīng)用到其它任何地方,免去了代碼移植過程的繁瑣。

基于模型的開發(fā)另外一個強大的優(yōu)勢即在于“一次試驗,多次仿真”的目的。結(jié)合Simulink強大的開環(huán)和閉環(huán)仿真系統(tǒng),只需采集一次數(shù)據(jù),便可通過仿真再現(xiàn)在真實世界中的實際表現(xiàn)。通過修改模型算法或參數(shù),可以進行在線的數(shù)據(jù)仿真和調(diào)試,大大簡化調(diào)試的難度。

系統(tǒng)接口與總線設(shè)計

在我們設(shè)計控制系統(tǒng)之前,首先要做的就是定義系統(tǒng)的輸入/輸出接口。在Simulink中,接口一般都是以總線的方式進行定義??梢詫⒖偩€理解為C語言中的結(jié)構(gòu)體,當把Simulink模型自動生成C代碼后,也可以看到總線最終是用結(jié)構(gòu)體來進行實現(xiàn)的。

對于內(nèi)環(huán)的姿態(tài)環(huán)控制器來說,輸入總線設(shè)計如下:

Command_Bus

Element

Type

Unit

Meaning

reset

uint8

[0,1]

為1復(fù)位控制器

mode

uint8

[0,1]

0:角度控制,1:角速度控制

base_th

int16

0~1000

姿態(tài)環(huán)基礎(chǔ)油門

Reference_Bus

Element

Type

Unit

Meaning

phirefrad

single

rad

目標roll

thetarefrad

single

rad

目標pitch

psirefrad

single

rad

目標yaw

prefradDs

single

rad/s

目標roll角速度

qrefradDs

single

rad/s

目標pitch角速度

rrefradDs

single

rad/s

目標yaw角速度

States_Bus

Element

Type

Unit

Meaning

phirad

single

rad

roll當前值

thetarad

single

rad

pitch當前值

psirad

single

rad

yaw當前值

pradDs

single

rad/s

roll角速度當前值

qradDs

single

rad/s

pitch角速度當前值

rradDs

single

rad/s

yaw角速度當前值

輸入接口總共有三個總線,分別是CommandBus,ReferenceBus和StatesBus。其中CommandBus是控制總線,用來對控制系統(tǒng)進行一些設(shè)置,如模式設(shè)置,復(fù)位等。ReferenceBus和StatesBus是目標信號總線和狀態(tài)信號總線,可以理解為控制器的目標值和當前值??刂破鞯哪康木褪峭ㄟ^控制來使得當前值盡可能收斂到目標值。

輸入接口設(shè)計完了,接下來是輸出接口。輸出接口相比輸入要簡單很多,無非就是多路pwm指令輸出。這里我們預(yù)留6個pwm輸出接口,即最多可以支持6軸的控制,當面,也可以根據(jù)自己的需要,來進行修改。

ControlOutBus

Element

Type

Unit

Meaning

pwm1

uin16

1000~2000

電機1 pwm信號

pwm2

uin16

1000~2000

電機2 pwm信號

pwm3

uin16

1000~2000

電機3 pwm信號

pwm4

uin16

1000~2000

電機4 pwm信號

pwm5

uin16

1000~2000

電機5 pwm信號

pwm6

uin16

1000~2000

電機6 pwm信號

好了,現(xiàn)在接口都定義好了,那么下一步的問題就是如何在Simulink里面來實現(xiàn)這些接口定義了。

其實,在Simulink中實現(xiàn)這些接口定義很簡單。Simulink提供了一個Bus Editor的工具,只需要進行簡單配置就可以定義任何你需要的接口或者總線了。

下面一步一步地講解一下總線的定義方法:

  • 首先打開控制模型,點擊Edit->Bus Editor
  • 這里我之前已經(jīng)配置過了,所以能看到我已經(jīng)定義過的總線。但是如果是自己第一次進行設(shè)計的話,這里應(yīng)該是空的??梢渣c擊如紅色圈圈所示的add bus來添加Bus信號,這里我們總共需要添加4個Bus。三個輸入總線和一個輸出總線。Bus添加好后,在最右邊的Property,修改Bus的名稱。添加好Bus之后,我們下面就需要往Bus里面添加Element,即總線的元素。首先選定一個Bus,然后點擊藍色圈圈圈出的add element選項,即可添加元素。
  • 然后需要對Element進行配置。如圖所示,我們一般只需要對Name,Data Type和Dimension三個選項進行配置即可。Dimension為變量的維度,如果我們的element需要配置為向量或者矩陣,那么就需要對Dimension進行配置。
  • 配置完成后,需要點擊File->Export to File來將Bus的配置保存成.m還活著.mat文件。因為Bus的定義都是保存在工作空間的。當你下次打開matlab的時候,工作空間都是會被清除的,所以我們需要將我們的Bus定義保存成文件,這樣,當下次打開matlab的時候,只需要load一下我們的.mat/.m文件,就能將我們定義的Bus再load進工作空間。
微信公眾號關(guān)注《阿木實驗室》獲取更多無人機開發(fā)測評信息,
關(guān)注《阿木社區(qū)》獲取更多學習課程信息。
社區(qū)論壇地址:http://bbs.amovauto.com參與討論。

如有興趣,聯(lián)系微信:jiayue199506

其他時間,微信不定時在線,有事請留言。

總結(jié)

以上是生活随笔為你收集整理的matlab cuda的.cu文件应该放在那里_无人机基于Matlab/Simulink的模型开发(连载一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。