Kian Khaneghahi's repositories

Flexible-Joint-Manipulator-Observer-In-The-Form-Of-A-Stable-Neural-Network

In this project, an observer in the form of a stable neural network is proposed for any nonlinear MIMO system. As a result of experience, this observer utilizes a nonlinear in parameter neural network (NLPNN) which unlike LPNN, supports systems with higher degree of nonlinearity with no pre-knowledge of its dynamics. The learning rule for this neural network is based on the back-propagation method with a small modification. In addition, in order to guarantee the robustness of the observer, an e-modification term is added. Also, it is noted that there are no hard constraints like SPR on this method. Subsequently, the stability of this neural network observer is guaranteed by Lyapunov's direct method. At the end, the simulation results for a flexible-joint manipulator with this observer is demonstrated.

Language:MATLABStargazers:13Issues:1Issues:0

Underactuated-Manipulator-Robot-Control-via-H2-Hinf-H2Hinf-and-mu-Synthesis-Approaches

This project was done as the final project of my Robust Control university course.

Language:MATLABStargazers:6Issues:1Issues:0

Hinf-and-H2-Robust-Control-Approach-To-a-Typical-Regulation-Problem

In this project, hinf and h2 synthesis controllers are designed for MK standard form of a typical regulation problem. For full closure see the report.

Language:MATLABStargazers:5Issues:1Issues:0

3-Typical-Convex-Optimization-Problems-In-Control-And-How-To-Solve-Them-With-MATLAB

The Project involves 3 typical convex optimization problems in control and the SDP (Semi-definite Programming) form or in other words the LMI (Linear Matrix Inequalities) form of each problem is achieved analytically and then the SDP optimization problems are solved in MATLAB using MATLAB CVX toolbox.

Language:MATLABStargazers:4Issues:1Issues:0

Fault-Estimation-and-FTC-Strategies-Applied-to-VTOL-Aerial-Vehicles

This project is used to estimate, isolate and diagnose faults for a quadcopter and a PVTOL and also use a methods to control the system by tolerating the fault. Both quadcopter and PVTOL systems have nonlinear dynamics. The ways for fault estimation in this project consist of nonlinear AO and linear PIO for the PVTOL and qLPV PIO for the quadcopter. The nominal controller in both systems uses unit quaternions. For soft fault in both vehicles, a fault accommodation method is implemented where the estimated fault is added to the nominal control signal to cancel the additive fault.

Language:MATLABStargazers:4Issues:1Issues:0

Classic-Sliding-Mode-Control-On-a-Third-Degree-System-With-3-Uncertain-Parameters

This project is about implementing the classic sliding mode method for controlling a third degree nonlinear system stated in the report that has 3 uncertain parameters. The first chapter is about designing the sliding mode controller and its parameters. And finally, the second chapter is devoted to simulation and its results. The results show that tracking was done perfectly but with the cost of creating the chattering phenomenon and a big overshoot in the initial moments for the control and error vectors.

Lipschitz-Observer-Design-For-A-Nonlinear-System

In this project a rather brilliant observer called Thau observer or Lipschitz observer is proposed and designed to estimate the states of a special form of nonlinear systems. All the details regarding the observer design and its simulation are given in "Kian Khaneghahi - Fault Midterm - Q4.pdf" report file.

Language:MATLABStargazers:2Issues:1Issues:0

Performance-Measurement-in-Autonomous-Driving-With-Linear-Control-Using-MATLAB

This Project was one of the final projects of my Signals and Systems course in the university. This code contains the performance measurement for a simple linear autonomous driving model which also checks the tracking performace.

Language:MATLABStargazers:2Issues:1Issues:0

Training-a-TSK-fuzzy-interface-system-from-scratch-in-MATLAB

This project was the final project of my fuzzy control university course. This project is a library that trains a TSK fuzzy interface system (fis) from scratch in MATLAB and not using the MATLAB fis tools.

Language:MATLABStargazers:2Issues:1Issues:0

Audio-Transfer-Store-and-Play-in-an-IOT-Environment-Using-Arduino

We use an Arduino Due board and Arduino ESP8266 board to implement a system that uses UART protocol to receive 10 seconds of an 8-KHz, 8-bit depth sampled audio data. (Telephone line quality) and then makes a web server and waits for clients over Wi-Fi, then displays a simple HTML page. Then, it plays audio over DAC for headphones and eventually, stored music won't be wiped after system reset. (Use Flash memory or other storages to store data)

Language:C++Stargazers:0Issues:1Issues:0

Distance-Measure-With-Ultrasonic-Sensors-HC-SR04-using-Arduino

In this project, the circuit of an HC-SR04 ultrasonic sensor is created from scratch shown in the "HC-SR04 Circuit Design" image and then we program the inner microcontroller to Handle the recieve and transmit procedures. Eventually, the sensor is programmed by an outer microcontroller to measure the distance between the sensor and the obstacle. For the inner (Chinese OTP uController) and outer microcontrollers, an Arduino UNO board and an ESP8266 board are used respectively.

Language:C++Stargazers:0Issues:1Issues:0

DTMF-Tone-Detection-Using-MATLAB

This Project was one of the final projects of my Signals and Systems course in the university. A set of Tone Vectors are aligned with each number for them to be heard accurately and without interference. Also, Fourier transforms are used as a reverse model to find numbers based on their tones.

Language:MATLABStargazers:0Issues:1Issues:0

Dynamic-Sliding-Mode-Control-On-A-Second-Degree-System-Compared-With-Classic-SMC

This project is about implementing the dynamic sliding mode method for controlling a second degree nonlinear system stated in the report that has one uncertain parameter. The first chapter is about designing the sliding mode controller and its parameters for both dynamic and classic SMC. And finally, the second chapter is devoted to simulation and its results and comparing DSMC with CSMC. The results show that the dynamic SMC has less chattering in the control input at the cost of increasing the steady-state error.

Stargazers:0Issues:1Issues:0

Three-DOF-Manipulator-Control-In-An-IOT-Environment-Using-Arduino

The aim of this project was to control a 3 degree of freedom (DOF) manipulator from a web user interface and for that 2 arduino boards are needed. The first board is an arduino UNO board that is programmed to control the manipulator servo motors and also get the position(angle) of the motors from their encoders. Additionally, another arduino board is needed that has the hardware needed for connecting to a local wifi network and in this case an ESP8266 board was used. The ESP board should be programmed to first of all connect to a local wifi network by using its username and password and then create a local server and wait for local clients to use the interface and refresh the interface page everytime a client action is made. The interface itself is a simple web gui written in HTML and it has two buttons for each motor (for each direction) and they act as a push button therefore, the motors would stop when we are not pushing their buttons.

Language:C++Stargazers:0Issues:1Issues:0

Two-wheeled-Car-Trajectory-Control-with-Arduino-and-Mouse-Sensor

Controlling a Vehicle With Stepper Motors on a Specific Trajectory: At first, the robotic vehicle was 3D printed using sample files from the thingiverse site. The vehicle was composed of two wheels which included a stepper motor attached to each wheel....

Language:C++Stargazers:0Issues:1Issues:0

Using-an-IOT-GUI-to-Control-a-UGV-Robot-Using-Arduino-and-Rasberry-Pi

There are two boards involved in this project. The first one was a Rasberry Pi 3 board that was used to interfere directly with the UGV robot and the AUT14.c file was runned within the Rasberry Pi 3 board. Although the UGV robot has 4 wheels the interface and the control sequence are written in a way that it works like a joystick with the options forward, backward, turn right and left.

Language:CStargazers:0Issues:1Issues:0