MATLAB-Programming for Engineers
VIMIAV23 | Szabadon választható | Credit: 4
Objectives, learning outcomes and obtained knowledge
The purpose of the course is advanced MATLAB education. Furthermore, the aim is to further train students in computer-aided, efficient solutions to engineering problems and to demonstrate methods that can be used in rapid prototyping with state-of-the-art tools and procedures. With the acquired knowledge, students can efficiently create quickly adaptable software solutions that meet the given needs during their later development work.
Within the framework of the course - following the examples of a common engineering programming platform (primarily MATLAB) - students can gain practical experience in addition to a deeper theoretical description of the topic area, which they can later use directly in their engineering work. Engineering programming platforms are already used in many places in the industry, and their role is expected to grow further in the future.
The lectures of the course introduce the toolkit of the engineering programming platform, the laboratory session presents what is learned in theory and is translated into practical examples. The aim of the homework project assignment is to deepen and record the knowledge acquired at the lecture and in the laboratory. The aim of the course is to build on the basic knowledge of programming to help you learn to develop computational and algorithm-intensive programs by solving typical problems in the fields of electrical engineering and information technology.
In addition to the comprehensive presentation of the topic, the subject places great emphasis on presenting the most up-to-date tools and methods available in the current semester.
Zsolt Kollár
habilitated associate professor
Course coordinator
Synopsis
Topics of lectures:
Week 1: Refreshing MATLAB fundamentals: basic data operations, definition of data characteristics (statistics), data visualization, data extraction, data processing, 2D and 3D data visualization, use of data analysis tools
Week 2: Data entry and export. Data retrieval from files, databases, webs, software, and hardware devices. Control peripherals and measuring instruments.
Week 3: Process and methods of teamwork and project work using engineering computing platform, preparation of project tasks.
Week 4: Using MATLAB system objects to simulate and verify dynamic system behavior. Real-time processing, stream-based processing, and segmented processing of large data files.
Week 5: Software-supported advanced algorithm development (Polyspace, Stateflow): run-time optimization, event-driven planning, model-oriented design. Code verification, static code analysis, and run-time debugging. Compliance with programming standards State graph-based design. Modeling finite automata. Process scheduling and control, execution and management logic, error handling.
Week 6: Handling compute-intensive problems: parallel processing, distributed computing, multi-threaded program management. MATLAB server is used to perform distributed calculations.
Week 7: Advanced discrete signal processing: time-domain solutions, spectrum estimation methods. Applicability of special transformations in practice.
Week 8: Application development: PC executable program, graphical user interface, software library, source code executable on target hardware, FPGA descriptor, embedded application (C/C++, MEX, VHDL, VERILOG). Generate codes that can be downloaded for hardware.
Week 9: Finite element tasks. Basics of physical modeling: defining geometric shapes, grid generation, specifying physical conditions, problem-solving, and displaying results.
Week 10: Overview of topic-specific applications: radio frequency data transmission, wireless, antenna design, electromagnetic field simulation, radar applications.
Week 11: An overview of the capabilities of engineering computing platforms. Introduction of additional engineering programming platforms (Octave, Scilab, similarities and differences).
Week 12: Introduction to industrial applications.
Week 13: Application development, consultation.
Week 14: Extra session.
Computer laboratory topics:
Week 1: Refreshing MATLAB basics: Editor, Debugger, Profiler, File types, functions, m and mat files.
Week 2: Get and manage data files: .dat, xls, wav, and image files. Manage data from external peripherals (TCPIP / Serial)
Week 3: Documentation: Playshow, publish, and live script. GUI design - guide, appdesigner. Version control.
Week 4: Real-time voice manipulation through stream objects, spectrum analyzer, and writing your own class/object.
Week 5: Learning Polyspace BugFinder and Codeprover, Stateflow programs through practical examples. Code analysis, standard compliance, and correction of characteristic errors. State-graph-based design based on specification.
Week 6: MATLAB parallel programming, CUDA programming syntax. Distributed computing on a MATLAB server and cloud computing environment. Run time comparison for local, multithreaded, and server-side computing.
Week 7: Various implementations of FFT. Filter design and application using fdatool and sptool, based on specific speculation. Define filter coefficients and export filter.
Week 8: Application development: A program that can be run on a PC. Programming Rasberry Pi and Arduino boards from MATLAB. Generate executable code from a SIMULINK model.
Week 9: Definition of finite element-based tasks, consideration of physical parameters, interpretation and processing of simulation results. Solving an electromagnetic finite element problem.
Week 10: Antenna toolbox, RF toolbox, LTE toolbox, WIFI toolbox presentation, solution of the design task: WiFi system simulation.
Week 11: Octave, Scilab review, transcription of MATLAB codes. Transfer prepared programs to another environment.
Week 12: Applications prepared in MATLAB for industrial environment - application development task based on industrial requirements; getting to know the case study, answering questions related to the project task.
Week 13: Presentation and evaluation of project tasks.
Week 14: Extra session
BME-MIT