This tutorial introduces the concept of Time-varying Optimal Control and introduces the Linear Quadratic Regulator (LQR). The basic approach is to poise the control problem in an optimization framework. The motivation is that optimization methods provide a convenient method to select the placement of closed loop poles using intuitive trade-offs between state error and […]
I’m deviating from my normal topics and am showing a design note that derives the method for matching the impedance of an RF source to a complex load. I give an example using a Smith chart and LTspice to show the results. The link to the Smith chart program is here: http://ae6ty.com/Smith_Charts.html […]
This tutorial shows the use of an FPGA development board (Diligent Basys 3) to implement a pseudo-random generator and display the results on the 7-segment display. The additions in this project were to add a UART, Fifo, and a couple of FSM RTL modules to display the output on a Putty terminal. This project used […]
This tutorial shows the use of an FPGA development board (Diligent Basys 3) to implement a pseudo-random generator and display the results on the 7-segment display. The approach used in this project shows the use and advantages of using Vivado Block Design. The end result is the same but the work-flow used was different than […]
This tutorial shows the use of an FPGA development board (Diligent Basys 3) to implement a pseudo-random generator and display the results on the 7-segment display. The approach used in this project is primarily RTL with the addition of an MMCM clock IP RTL module. Links to examples in a Bitbucket repository are here: GitHub […]
Revised 8/28/2022 In my eventual goal of creating a simulation model of a BLDC PMSM motor using Field Oriented Control this is Part I & II. In Part II I add the overall system block diagram, discuss how Space Vector Modulation (SVM) works and walk through the Clarke, Park and Reverse Park Transforms. This document […]
This blog describes a novel method of nonlinear feedback control of a MEMS mirror. The idea presented here is covered in my patent that expires the end of 2022, link. The technique employs a method of input linearization. Introduction The equation of motion of a 1D Micro-electro-mechanical (MEMS) mirror is derived from first principles. The […]
This blog is Part II of a two part series showing how to implelement system identification on an embedded MCU. Part I is here. The specific example shown here identifies the velocity loop of a BLDC motor control that uses Field Oriented Control (FOC). The MCU used is a STM32G431 Cortex. Block Diagram A block […]
This blog introduces the concept of System Identification and does so as applied to a BLDC Motor. One purpose of identification is to identify the transfer function dynamics of the system. The systems can have various amounts of information known; ranging from full information (White Box), partial information (Grey Box) or no information (Black Box). […]
This blog shows C code and Python code for a pseudo random binary sequence (PRBS). The applications for a PRBS will be discussed in later blogs. A good general reference for a PRBS is wikipedia. In hardware, FPGA or software a PRBS can be implemented as a linear feedback shift register (LFSR). This is shown […]