Robust Control of Hard Disk Drive Servo (Part 5)

In this video, Robust Control of Hard Disk Drive Servo, Part 5, we expand the original model found in Part 4. We add the structured uncertainty block Δ that reflects the tolerance of each parameter of the physical model and we include the weights whose reciprocals indicate the desired frequency response of the signals that we […]

Robust Control of Hard Disk Drive Servo (Part 4)

The modeling of the tracking control system for the HDD servo is the main focus of this video. The model is a linear model (except for a saturation feature) and is expressed as a block diagram. All parameters in the model have tolerances, that is, they are not exact and can vary from their nominal […]

Robust Control of Hard Disk Drive Servo (Part 3)

Continuing this series of videos, we explain fundamentals of HDD theory of operation. Main interest lies in how the position error signal is obtained to understand its nonlinear nature and its limitations. The video illustrates the basic components of a hard disk drive: spindle motor, voice coil motor or actuator, disks, arms and read/write heads.  It also […]

Robust Control of Hard Disk Drive Servo (Part 2)

This is the second video in the series on Robust Control applied to hard disk drive servo. This video is about the theory and concepts involved in Robust Control for MIMO systems to set the stage for the actual robust control design of HDD servo. This video approaches the following topics: How to define the […]

Robust Control of Hard Disk Drive Servo (Part 1)

This is the first video of a series on Robust Control applied to hard disk drive (HDD) servo. This video is about the concepts involved in Robust Control for SISO (Single-Input-Single-Output) systems to prepare the terrain for MIMO (Multiple-Input-Multiple-Output) systems in video # 2. Initially I introduce the theory of Robust Control, and I do […]

What does a hairdryer have to do with a PID controller, windup and Matlab?

In this video, I describe the design of a PID controller for the Feedback Process Trainer PT326 (the ‘hairdryer’). Based on an identification of the process using the Matlab System Identification Toolbox, I describe the process of designing a PID controller that satisfies robust stability margins and has noise immunity. I used Simulink to implement […]

Creating a Project with F28377S Launch Pad. Is There a Bug?

In this video I go through the creation and debugging of the blinking-LED project using the TI F28377S Launch Pad and Code Composer Studio. I found an interesting result in which by changing the order of two instructions, I change the outcome unexpectedly. I suspect of some timing issue with the HW, but more debugging […]

Accelerometers and Double Integration Part 2

Why we measure position using an instrument that measures acceleration? Because we don’t have a choice. In larger spaces where the vehicle travels, there are no fixed references that can be followed. And when there is a global fixed reference available, like GPS, it may not be enough to stand alone for the application. It […]

Object-Oriented Programming in Embedded Systems: Up to What Extent?

For embedded systems, the consensus seems to indicate that there are no clear advantages of Object-Oriented Programming (OOP) over procedural programming; especially, if we consider concrete embedded applications. OOP is well equipped for applications that require high levels of abstraction and have high variability. GUIs and desktop applications like the one I’m using now are […]

Accelerometer Dynamical Considerations

In this video, I present some dynamical considerations about accelerometers and the double integration to obtain position. Before even considering the stochastic properties, position measurement using accelerometers has its own challenges because of the intrinsic dynamics of  integrators. I used a simple example to illustrate the problem. This simplicity allowed me to do the comprehensive […]