Mérnöki problémamegoldás MATLAB-ban

A VIK Wikiből
Mérnöki problémamegoldás MATLAB-ban
Tárgykód
VIMIAV23
Általános infók
Kredit
4
Tanszék
MIT
Követelmények
Jelenlét
ajánlott
Minimális munka
közepes
Labor
van
KisZH
nincs
NagyZH
nincs
Házi feladat
projekt házifeladat
Vizsga
szóbeli
Elérhetőségek

A tárgy célja a haladó szintű MATLAB oktatás. Cél továbbá, hogy továbbképezze a hallgatókat a mérnöki problémák számítógéppel segített, hatékony megoldásával illetve, hogy bemutassa a gyors prototípusfejlesztésben használható módszereket, legmodernebb eszközökkel és eljárásokkal. Az elsajátított ismeretanyag birtokában a hallgatók későbbi fejlesztési munkájuk során képesek lesznek az adott igényeket kielégítő, gyorsan adaptálható szoftvermegoldások hatékony elkészítésére.

A tárgy keretében – egy elterjedt mérnöki programozási platform példáit (elsősorban Matlab) végigkövetve – a hallgatók a tématerület elmélyített elméleti ismertetése mellett olyan gyakorlati tapasztalatokat szerezhetnek, amelyeket mérnöki munkájukban a későbbiekben közvetlenül is felhasználhatnak. Az iparban jelenleg is számos helyen alkalmaznak mérnöki programozási platformot, ezek szerepe a jövőben várhatóan tovább nő.

A tantárgy előadásai ismertetik a mérnöki programozási platform eszközkészletét, a laboratóriumi foglalkozás bemutatja az elméletben megismerteket gyakorlati példákra átültetve is. A házi feladatként kiadott projektfeladat célja az előadáson és laboratóriumban elsajátított ismeretanyag elmélyítése és rögzítése. A tárgy célja a programozási alapismeretekre építve segíti a számítás és a algoritmus intenzív programok fejlesztésének elsajátítását villamormérnöki és infromatikai területeken előforduló tipikus problémák megoldásával.

A tárgy a téma átfogó bemutatása mellett nagy hangsúlyt fektet az aktuális félévben elérhető legkorszerűbb eszközök és módszerek bemutatására.

Előadások tematikája

  • 1. hét: MATLAB alapismeretek felfrissítése: alapvető adatműveletek, adatjellemzők meghatározása (statisztika), adatmegjelenítés, adatkinyerés, adatfeldolgozás, 2D és 3D adatmegjelenítés, adatelemző eszközök használata
  • 2. hét: Adat be- és kivitel. Adatlekérés fájlból, adatbázisból, webről, szoftverből, hardvereszközről. Perifériák, mérőműszerek vezérlése.
  • 3. hét: Csoportmunka és projektmunka folyamata és módszerei mérnöki számítási platform használatával, projektfeladatok előkészítése
  • 4. hét: Matlab rendszerobjektumok használata dinamikus rendszerek viselkedésének szimulációjánál és verifikálásnál. Valós idejű feldolgozás, stream alapú feldolgozás, nagy méretű adatfájlok szegmentált feldolgozása.
  • 5. hét: Szoftveresen támogatott haladó algoritmusfejlesztés (Polyspace, Stateflow): futási idő optimalizálás, eseményvezérelt tervezés, modellapú tervezés. Kódverifikáció, statikus kódanalízis, futási idejű hibakeresés. Megfelelés programozási szabványoknak Állapotgráf alapú tervezés. Véges automaták modellezése. Folyamatok ütemezése és vezérlése, végrehajtási és felügyeleti logika, hibakezelés.
  • 6. hét: Nagy számításigényű problémák kezelése: párhuzamos feldolgozás, elosztott számítások, több-szálas program kezelés. Elosztott számítások elvégzésére alkalmazott Matlab szerver.
  • 7. hét: Haladó diszkrét jelfeldolgozás: időtartománybeli megoldások, spektrumbecslési eljárások. Speciális transzformációk alkalmazhatósága a gyakorlatban.
  • 8. hét: Alkalmazásfejlesztés: PC-n futtatható program, grafikus felhasználói felület, szoftverkönyvtár, célhardveren futtatható forráskód, FPGA leíró, beágyazott alkalmazás (C/C++, MEX, VHDL, VERILOG) fejlesztése. Hardverre letölthető kódok generálása.
  • 9. hét: Végeselem-alapú feladatok. Fizikai modellezés alapjai: geometriai formák definiálása, hálógenerálás, fizikai feltételek megadása, probléma megoldás és eredmények megjelenítése.
  • 10. hét: Témaspecifikus alkalmazások áttekintő ismertetése: rádiófrekvenciás adatátviteli, vezeték nélküli, antennatervezési, elektromágneses térszimulációs, radar alkalmazások.
  • 11. hét: Kitekintés a mérnöki számítási platformok legmodernebb képességeire. További mérnöki programozási platformok bemutatása (Octave, Scilab, hasonlóságok és különbségek).
  • 12. hét: Ipari alkalmazások bemutatása.
  • 13. hét: Applikációkészítés, konzultáció.
  • 14. hét: Pótalkalom.

Laborgyakorlatok tematikája

  • 1. hét: MATLAB alapismeretek felfrissítése: Editor, Debugger, Profiler, Fájl típusok, függvények, m és mat fájlok.
  • 2. hét: Adatfájlok beolvasása és kezelése: .dat, xls, wav, képfájlok. Külső perifériáról érkező adatok (TCPIP / Serial) kezelése
  • 3. hét: Dokumentáció készítés: playshow, publish, live script. GUI tervezése - guide, appdesigner. Verziókövetés.
  • 4. hét: Valós idejű hangmanipuláció stream objektumokon keresztül, spektrumanalizátor, saját osztály/objektum írása.
  • 5. hét: Polyspace BugFinder és Codeprover, Stateflow programok megismerése gyakorlati példákon keresztül. Kódelemzés, szabvány-megfelelés, jellegzetes hibák javítása. Állapotgráf-alapú tervezés specifikáció alapján.
  • 6. hét: MATLAB párhuzamos programozás, CUDA programozás szintaxisa. Elosztott számítások MATLAB szerveren és felhőalapú számítási környezetben. Futtatási idő összevetése helyi, többszálú és szerveroldali számítás esetén.
  • 7. hét: FFT különféle implementációja. Szűrőtervezés és alkalmazás fdatool és sptool segítségével, adott speficikáció alapján. Szűrőegyütthatók meghatározása, szűrő exportálása.
  • 8. hét: Alkalmazásfejlesztés: PC-n futtatható program. Rasberry Pi illetve Arduino board programozása MATLAB-ból. Futtatható kód generálása SIMULINK modellből.
  • 9. hét: Végeselem-alapú feladatok definálása, fizikai paraméterek figyelembe vétele, szimulációs eredmények értelmezése és feldolgozása. Elektromágneses végeselem-feladat megoldása.
  • 10. hét: Antenna toolbox, RF toolbox, LTE toolbox, WIFI toolbox bemutatása, tervezési feladat megoldása: WiFi rendszer szimulációja.
  • 11. hét: Octave, Scilab áttekintés, MATLAB kódok átírása. Elkészített programok átvitele más környezetbe.
  • 12. hét: MATLAB-ban elkészített, ipari környezetben használt alkalmazások – alkalmazásfejlesztési feladat ipari követelmények alapján; esettanulmány megismerése, a projektfeladathoz kapcsolódó kérdések megválaszolása.
  • 13. hét: Projektfeladatok bemutatása és értékelése.
  • 14. hét: Pótalkalom

Oktatók

Vélemények

2018/19 ősz

  • 1. vélemény

Az egyik legjobb tantárgyam volt a képzés alatt. Nagyon tetszett, hogy a tematika második felét a hallgatói igényekhez igazították, így tényleg olyat tanulhattunk ami érdekel/amire szükségünk van. Jó volt a projekt szemléletű oktatás, és az ennek megfelelő számonkérés, jó betekintést adott abba, hogy az iparban milyen munkakörülmények vannak.Tetszett, hogy olyan előadók tartották az órákat, akik az egyes témákban otthon vannak.

  • 2. vélemény

Kiváló tárgy, nagyszerűen megtanítja a MATLAB használatát. A mintaterv részévé kellene tenni. Az átadott tudás hasznos lett volna korábbi tárgyak során. (Jelek és Rendszerek 1-2, Szabályozástechnika )

2020/21 ősz

  • Már az első félévben találkoztam a MATLAB-bal, valamint jelekből is többször használtuk egy rövid gyorstalpaló után. Úgy gondoltam, hogy jobb lenne többet tudni róla, mint hogy ha ezt belököm ide, akkor kiköpi ezt, mivel jelekből csak ennyit mutattak meg. Végül a tanár ajánlására vettem fel a tárgyat, ami nagyon jó döntés volt. Tematikusan be lett vezetve a MATLAB programozása a félév első részében, az utolsó hetekben meg vendégelőadók muattak be gyakolrati alkalmazásokat. Összességében ez egy nagyon jó programnyelv, sokkal könnyebb vele dolgozni, mint C-ben, vagy C++-ban, és szinte minden felmerülő feladatra már vannak benne előre megírt függvények, úgyhogy nagy elméleti részre nem kell számítani. Erről a programnyelvről is azt érzem, hogy az órai anyag csak egy kezdő löketet ad, és a tényleges munkákkal lehet igazán belejönni a használatba. A számonkérés ehhez igazodik is, mivel egy tetszőleges házi feladatot kell elkészíteni és bemutatni, így nincs mögötte fölösleges szivatás és lehet kreatívnak lenni. Az órákra jó bejárni, de félévközi követelmények nincsenek.