{"id":9888,"date":"2022-03-01T22:41:44","date_gmt":"2022-03-01T22:41:44","guid":{"rendered":"https:\/\/liquidinstruments.com\/?p=9888"},"modified":"2025-12-11T22:34:56","modified_gmt":"2025-12-11T22:34:56","slug":"closed-loop-tuning-with-mokugos-pid-controller","status":"publish","type":"post","link":"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/","title":{"rendered":"Closed-loop tuning lab using the Moku:Go PID Controller","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h2>Moku:Go<\/h2>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-6894 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/03\/21-0923_AppNoteBlogPost_01-Image-01.jpg\" alt=\"Moku:Go product photo\" width=\"1360\" height=\"669\" \/><\/p>\n<p>Moku:Go combines 15+ lab instruments in one high-performance device. This application note uses the Moku:Go PID Controller, Oscilloscope, and Programmable Power Supplies to provide a visually engaging way of learning various tuning methods for PID controllers.<\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-8267\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/06\/AppNoteBlogPost_00-UTLogo-00.jpeg\" alt=\"UT Austin School Logo\" width=\"598\" height=\"180\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/06\/AppNoteBlogPost_00-UTLogo-00.jpeg 698w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/06\/AppNoteBlogPost_00-UTLogo-00-300x90.jpeg 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/06\/AppNoteBlogPost_00-UTLogo-00-600x181.jpeg 600w\" sizes=\"(max-width: 598px) 100vw, 598px\" \/><\/p>\n<hr \/>\n<h2>Introduction<\/h2>\n<p>The Proportional-Integral-Derivative (PID) controller is one of the most common forms of feedback control, and&nbsp; is used in a wide variety of applications like the cruise control in your car or motor control in a drone. The purpose of a PID controller is to drive a process to reach a specified output, typically called a setpoint. The feedback of the controller is used to regulate and optimize the control of this process. Moku:Go features a digitally-controlled PID Controller. The graphical user interface dynamically visualizes the gain profiles, giving the user the ability to drag and drop gain values directly onto a frequency response graph which calculates and displays the transfer function of the PID controller in real time. This allows the student to directly see the poles and zeros of the system as they vary the PID gain values and crossover frequencies.<\/p>\n<p>&nbsp;<\/p>\n<p>The purpose of this application is to demonstrate how control theory labs can be updated to better suit the needs of modern undergraduate labs. Typically, control theory is taught through rigorous mathematical modeling with few, if any, physical labs that utilize equipment. This application introduces a modern approach to control theory education by applying a more visual component that helps students more readily connect the theory learned in the classroom to real-life control systems. This is done by controlling the height of a ping-pong ball by using a DC motor fan, an IR distance sensor, and several of the integrated instruments available for Moku:Go. Moku:Go offers 15+ lab instruments, three of which are used for this experiment: the Oscilloscope, PID Controller, and Programmable Power Supplies. Most of these instruments are used simultaneously and can drive the motor control circuitry, take in sensor data, and output a specified signal to control the DC motor\u2019s speed simultaneously. This way, characteristics like the rise time, overshoot, and steady-state height of the ping-pong ball can be controlled and measured from a universal graphical user interface, enabling students to grasp multiple advanced concepts quickly. It also allows real-time tuning through the Moku: app so that students can see how the different PID gains impact the system both mathematically and physically.<\/p>\n<h2>Theory of Operation<\/h2>\n<p>One Moku:Go will be used in this experiment to power the PCB, read sensor data, implement a PID controller, and generate a control signal. The Moku:Go M2 model has a four-channel programmable power supply unit (PPSU) that is very useful in projects like this and allows it to be a one-box solution for many labs. Two PPSU channels are used in this experiment to power the PCB and the DC fan which is the primary system to be controlled. Moku:Go also has two input channels for reading data and two output channels for generating waveforms. In this experiment, both input channels and one output channel are being used for reading data and generating a control signal. See the figure below for how the PID Demo kit and Moku:Go operate together in a closed-loop system.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9908\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-1.jpg\" alt=\"Figure 1: PID demo kit block diagram\" width=\"862\" height=\"291\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-1.jpg 1022w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-1-300x101.jpg 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-1-768x259.jpg 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-1-600x203.jpg 600w\" sizes=\"(max-width: 862px) 100vw, 862px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\"><em>Figure 1: PID demo kit block diagram<\/em><\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9909\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-2-e1644948721252.jpg\" alt=\"Figure 2: Moku:Go PID controller with demo kit block diagram\" width=\"907\" height=\"430\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-2-e1644948721252.jpg 1113w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-2-e1644948721252-300x142.jpg 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-2-e1644948721252-1024x486.jpg 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-2-e1644948721252-768x364.jpg 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-2-e1644948721252-600x285.jpg 600w\" sizes=\"(max-width: 907px) 100vw, 907px\" \/><\/p>\n<p style=\"text-align: center;\"><em>Figure 2: Moku:Go PID controller with demo kit block diagram<\/em><\/p>\n<p>ADC1 will read the setpoint signal which is controlled by a potentiometer. ADC2 will read the IR sensor which is affixed to the top of the tube. These two signals are sent to the PID controller running on Moku:Go while the control signal is generated by the DAC and sent to the PWM driver circuit. This control signal will determine the PWM\u2019s duty cycle, which will directly alter the DC fan and, subsequently, the ball\u2019s height inside the tube.<\/p>\n<p>&nbsp;<\/p>\n<p>The PWM driver operates by using the NE555 timer (U1) to generate a sawtooth waveform which is fed into the inverting input of the comparator (U2). The PID controller\u2019s output from the Moku:Go (Out1 or DAC1) is fed into the non-inverting input of the comparator, which generates a PWM signal. This signal is sent to a MOSFET (Q2) that controls the power consumed by the 5 V fan. The amount of power the fan sees directly translates to the height that the ping-pong ball will levitate.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"alignnone wp-image-9910\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-3.png\" alt=\"Figure 3: PID controller demo schematic\" width=\"696\" height=\"466\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-3.png 532w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-3-300x201.png 300w\" sizes=\"(max-width: 696px) 100vw, 696px\" \/><\/p>\n<p style=\"text-align: center;\"><em>Figure 3: PID controller demo schematic<\/em><\/p>\n<p>The other part of this lab setup is the mechanical system used to levitate the ball. It consists of a 5 V DC fan, 3D printed parts (tube, fan connector, and sensor connector), an IR sensor, and a ping-pong ball. The tube has a \u00bc inch width slit in the side that acts as variable resistance to the system. There are smaller perpendicular slits marking every 20 mm. The markings should be used to measure from the top of the ball, because this is what the IR sensor sees first. This is important for tuning the PID controller later.<\/p>\n<p>&nbsp;<\/p>\n<h2>Experimental Setup<\/h2>\n<h4>Components List<\/h4>\n<ul>\n<li>Moku:Go<\/li>\n<li>PID Controller Demo PCB<\/li>\n<li>PID Controller Demo 3D printed parts<\/li>\n<\/ul>\n<p><strong><em>&nbsp;<\/em><\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\"><em><img decoding=\"async\" class=\"alignnone wp-image-9912 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-5.jpg\" alt=\"Figure 4: PID controller demo kit\" width=\"421\" height=\"633\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-5.jpg 421w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-5-200x300.jpg 200w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-5-300x451.jpg 300w\" sizes=\"(max-width: 421px) 100vw, 421px\" \/><\/em><\/p>\n<p style=\"text-align: center;\"><em>Figure 4: PID controller demo kit<\/em><\/p>\n<h2>&nbsp;<\/h2>\n<h2>Tuning the PID Controller<\/h2>\n<h4>Moku:Go PID Controller Setup<\/h4>\n<p>The setup for this demo on the PCB can be seen in Figure 5 below. The cables required are two oscilloscope probes, one BNC-to-alligator cable (or BNC-to-mini), and three banana-to-alligator cables. All of these cables (excluding the BNC-to-alligator) are included with Moku:Go.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9981\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-5.2.jpg\" alt=\"Figure 5: PCB cable setup\" width=\"586\" height=\"530\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-5.2.jpg 363w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-5.2-300x271.jpg 300w\" sizes=\"(max-width: 586px) 100vw, 586px\" \/><\/p>\n<p style=\"text-align: center;\"><em>Figure 5: PCB cable setup<\/em><\/p>\n<p>Setting up the software for the PID controller is very straightforward thanks to the block diagram style interface that allows students to seamlessly apply control systems theory to real-world practice. Once connected to Moku:Go, open the PID Controller instrument. Set the first row of the control matrix to [1 -0.2]. The control matrix allows for feedback from the physical system by enabling data from Input 2 to be scaled and subtracted from Input 1 (Setpoint). This is very similar to the summation block used in Figure 1. The reason -0.2 is chosen as the scalar is because the dynamic range of the IR sensor must match the dynamic range of the sawtooth generator. Next, set the input offset to -1 V and the output offset to 2 V. The reason for the input offset is because the IR sensor has about a 1 V offset for this system due to the starting position of the ball (about 200 mm away from the IR sensor). The output offset is set to 2 V because the offset of the sawtooth generator is 2 V. Note that you may need to change the input offset based on the average offset of your IR sensor; however, 1 V is a fair starting point.<\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9927\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-7-1.png\" alt=\"Figure 6: Closed-loop controller setup\" width=\"578\" height=\"251\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-7-1.png 490w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-7-1-300x130.png 300w\" sizes=\"(max-width: 578px) 100vw, 578px\" \/><\/p>\n<p style=\"text-align: center;\"><em>Figure 6: Closed-loop controller setup<\/em><\/p>\n<p>The PID controller demo hardware and Moku:Go PID software are now set up for closed-loop tuning.<\/p>\n<p>&nbsp;<\/p>\n<h4>Open-loop response<\/h4>\n<p>Before jumping into the closed-loop tuning method, it may be a good idea to test the system and get an understanding of how it operates and how to control it. The open-loop response of a system is a very common and straightforward measurement to make that involves sending a step input to the system under test and measuring its response. This can be done by setting the PID Controller\u2019s control matrix to [1 0], the input and output offsets to 0 V, and enabling the proportional gain to 0 dB. This setup allows the output to track the input, which is the voltage being read by Input 1 from the setpoint potentiometer.<\/p>\n<p style=\"text-align: center;\"><em><img decoding=\"async\" class=\"alignnone wp-image-9915\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-8.png\" alt=\"Figure 7: Open-loop controller setup\" width=\"502\" height=\"220\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-8.png 438w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-8-300x132.png 300w\" sizes=\"(max-width: 502px) 100vw, 502px\" \/><\/em><\/p>\n<p style=\"text-align: center;\"><em>Figure 7: Open-loop controller setup<\/em><\/p>\n<p>Vary the setpoint potentiometer and you\u2019ll notice the ball height change. To view the setpoint potentiometer signal, enable a probe point after Input 1 (click the red probe point icon) and enable a tracking cursor to more readily see the setpoint voltage as the potentiometer is varied.<\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9916\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-9.png\" alt=\"Figure 8: Setpoint potentiometer signal\" width=\"657\" height=\"372\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-9.png 533w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-9-300x170.png 300w\" sizes=\"(max-width: 657px) 100vw, 657px\" \/><\/p>\n<p style=\"text-align: center;\"><em>Figure 8: Setpoint potentiometer signal<\/em><\/p>\n<p>To take the open-loop step response measurement, enable a probe point at Input 2 (IR sensor), set the trigger mode to Normal, and the trigger channel to Probe B. Choose a suitable height for the ball using the setpoint potentiometer and then disable the output by clicking Out 1. By choosing a suitable trigger level based on the ball height chosen, once the controller output is enabled again the ball will rise to its previous position and resemble a graph like the one in Figure 9 below.<\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9917\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-10.png\" alt=\"Figure 9: Open-loop step response\" width=\"648\" height=\"364\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-10.png 546w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-10-300x169.png 300w\" sizes=\"(max-width: 648px) 100vw, 648px\" \/><\/p>\n<p style=\"text-align: center;\"><em>Figure 9: Open-loop step response<\/em><\/p>\n<p>The embedded oscilloscope also has cursors and automatic measurements that allow quick characterization of the open loop response signal.<\/p>\n<p>&nbsp;<\/p>\n<h4>Closed-loop PID Controller tuning<\/h4>\n<p>There are a couple of well-known manual tuning methods for PID controllers, one of which is known as the Ziegler-Nichols method that uses the open loop response of the system to determine the PID gains, and is done in another application note found <a href=\"https:\/\/liquidinstruments.com\/blog\/2021\/06\/21\/mokugos-pid-controller-lab\/\">here<\/a>. This application will use a closed loop method that gives reasonably stable results. Before starting the closed loop tuning make sure to reset the controller settings to resemble those of Figure 6.<\/p>\n<p>&nbsp;<\/p>\n<blockquote><p><strong>a. <\/strong>Open the PID Controller instrument, turn on only the proportional gain and set it to 0 dB. Adjust the setpoint potentiometer until the ball is at the desired height for tuning. The PID controller parameters will have different values than those below if the starting height is different. This application starts the ball at 60 mm, or V<sub>setpoint<\/sub> = 2.1 V (60 mm to the top of the ball since this is what the IR sensor sees).<\/p><\/blockquote>\n<p style=\"text-align: center;\"><em><img decoding=\"async\" class=\"aligncenter wp-image-9918\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-11.png\" alt=\"Figure 10: Proportional gain setting\" width=\"522\" height=\"280\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-11.png 376w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-11-300x161.png 300w\" sizes=\"(max-width: 522px) 100vw, 522px\" \/><\/em><\/p>\n<p style=\"text-align: center;\"><em>Figure 10: Proportional gain setting<\/em><\/p>\n<blockquote><p><strong>b. <\/strong>Increase the proportional gain until the ball starts to oscillate. Remember that you can use the mouse to drag the gain and adjust it directly on the graph. There is also the option to use the mouse wheel to scroll over the numbers to adjust it, or type in the value manually.<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9919\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-12.png\" alt=\"Figure 11: System oscillation graph\" width=\"595\" height=\"334\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-12.png 502w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-12-300x169.png 300w\" sizes=\"(max-width: 595px) 100vw, 595px\" \/><\/p>\n<p style=\"text-align: center;\"><em>Figure 11: System oscillation graph<\/em><\/p>\n<blockquote><p><strong>c. <\/strong>Enable the differentiator gain to its highest crossover frequency and decrease the differentiator crossover frequency until the oscillations stop (or are greatly reduced as the ball will usually have some small movement in the tube due to the sensor noise).<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9920\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-13.png\" alt=\"Figure 12: PD controller values and system response\" width=\"601\" height=\"339\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-13.png 495w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-13-300x169.png 300w\" sizes=\"(max-width: 601px) 100vw, 601px\" \/><\/p>\n<p style=\"text-align: center;\"><em>Figure 12: PD controller values and system response<\/em><\/p>\n<blockquote><p><strong>d.&nbsp;<\/strong>Enable the integrator gain at its lowest crossover frequency. This will cause the controller to saturate, so enable the integrator saturation level as well. This will limit the integrator crossover frequency so the system does not saturate either. The ball will have increased in height after enabling these two parameters so before tuning any further, decrease the proportional gain until the ball is at the same height as when the tuning was started in step a (in this case around 60 mm).<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9921\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-14.png\" alt=\"Figure 13: PID controller values and system response\" width=\"599\" height=\"337\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-14.png 489w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-14-300x169.png 300w\" sizes=\"(max-width: 599px) 100vw, 599px\" \/><\/p>\n<p style=\"text-align: center;\"><em>Figure 13: PID controller values and system response<\/em><\/p>\n<blockquote><p>If the ball starts oscillating at a magnitude similar to step b then adjust the integrator crossover frequency and differentiator crossover frequency until the IR sensor output is similar to Figure 13 above.<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<blockquote><p><strong>e.&nbsp;<\/strong>Now that the initial PID gains have been found, further tuning of the system can be done by trial-and-error using the table below as a guide for adjusting each gain based on the closed loop response to a step input. It is important to vary the setpoint between the minimum and maximum points while tuning for optimal gain values.<\/p>\n<p>&nbsp;<\/p><\/blockquote>\n<p style=\"text-align: center;\"><em>Table 1: PID gains tuning guide<\/em><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9929 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Table-1-min.jpg\" alt=\"Table 1: PID gains tuning guide\" width=\"583\" height=\"108\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Table-1-min.jpg 583w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Table-1-min-300x56.jpg 300w\" sizes=\"(max-width: 583px) 100vw, 583px\" \/><\/p>\n<blockquote><p>Keep in mind that when increasing KP, the setpoint will need to be decreased to maintain the same ball height. Feel free to drag the P, I, or D gain values around directly on the transfer function graph to see how each gain value changes different aspects of the system. Do the assumptions in the table above match how the system responds to changes of the associated gain values in the PID controller?<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<blockquote><p><strong>f.&nbsp;<\/strong>Use the built-in oscilloscope within the PID Controller to obtain measurements for characterizing the system by placing a probe point inside the PID controller signal chain. The IR sensor feedback should be on Input 2. There is also a digital switch before and after the PID controller block which is helpful for stimulating the system with a step input without the need for a physical switch or unplugging cables constantly.<\/p>\n<p>Below is a well-tuned response for a step increase to the desired 60 mm ball height.<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9922\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-15.png\" alt=\"Figure 14: Tuned PID controller gains and system response\" width=\"951\" height=\"535\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-15.png 1139w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-15-300x169.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-15-1024x576.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-15-768x432.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2022\/02\/Figure-15-600x338.png 600w\" sizes=\"(max-width: 951px) 100vw, 951px\" \/><\/p>\n<p style=\"text-align: center;\"><em>Figure 14: Tuned PID controller gains and system response<\/em><\/p>\n<p>This step response is from the low level 40 mm input to the high level 160 mm input using the setpoint potentiometer. It is interesting to note the still relatively high overshoot of the graph despite the ball barely going above the desired setpoint. This can be explained by the IR sensor\u2019s datasheet where there is a non-linearity in the sensor output voltage as an object gets within 40 \u2013 50 mm of the sensor which results in a seemingly large overshoot in our system.<\/p>\n<p>&nbsp;<\/p>\n<h2>Conclusion<\/h2>\n<p>This application note showed how to tune a closed-loop control system using the Moku:Go PID Controller to improve common system characteristics like rise time, overshoot, and steady-state error. Alongside the PID Controller, this note also used the integrated Oscilloscope, Waveform Generator, and Programmable Power Supplies that powered and controlled the circuit drivers and DC fan. The visualization of how a PID controller functions by use of a floating ping-pong ball alongside the interactive transfer function graph benefits students and professors looking to add depth to their control theory course through a hands-on, highly visual example. The Moku:Go PID Controller can help students connect theory to real-world implementation through this experiment.<\/p>\n<hr style=\"margin: 50px 0 50px 0 !important;\" \/>\n<h2>Benefits of Moku:Go<\/h2>\n<p>&nbsp;<\/p>\n<h3>For the educator &amp; lab assistants<\/h3>\n<p>Efficient use of lab space and time<\/p>\n<p>Ease of consistent instrument configuration<\/p>\n<p>Focus on the electronics not the instrument setup<\/p>\n<p>Maximize lab teaching assistant time<\/p>\n<p>Individual labs, individual learning<\/p>\n<p>Simplified evaluation and grading via screenshots<\/p>\n<h3>For the student<\/h3>\n<p>Individual labs at their own pace enhance the understanding and retention<\/p>\n<p>Portable, choose pace, place and time for lab work be it home, on campus lab or even collaborate remotely<\/p>\n<p>Familiar Windows or macOS laptop environment, yet with professional grade instruments<\/p>\n<hr style=\"margin: 50px 0 50px 0 !important;\" \/>\n<h2>Moku:Go Demo mode<\/h2>\n<p>You can download the Moku:Go app for macOS and Windows at the Liquid Instruments website. The demo mode operates without need for any hardware and provides a great overview of using Moku:Go.<\/p>\n<hr style=\"margin: 50px 0 50px 0 !important;\" \/>\n<h2>Acknowledgements<\/h2>\n<p>We would like to thank Dr. Vivek Telang for his time and help in designing this project to be used for further Control Systems education. If you would like to get in touch with Dr. Telang for questions regarding this application note, please contact him at <a href=\"mailto:vivek.telang@utexas.edu\"><u>vivek.telang@utexas.edu<\/u><\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Moku:Go Moku:Go combines 15+ lab instruments in one high-performance device. This application note uses the Moku:Go PID Controller, Oscilloscope, and Programmable Power Supplies to provide a visually engaging way of learning various tuning methods for PID controllers. &nbsp; Introduction The Proportional-Integral-Derivative (PID) controller is one of the most common forms of feedback control, and&nbsp; is [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":26,"featured_media":5943,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[5,84],"tags":[],"class_list":["post-9888","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-notes","category-coursework","site-category-control-systems","site-category-education","site-category-mokugo","site-category-oscilloscpe","site-category-pid-controller","site-category-windows-app"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.0 (Yoast SEO v27.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Closed-loop with a PID Controller<\/title>\n<meta name=\"description\" content=\"Learn how to use a PID (Proportional \u2013 Integral \u2013 Derivative) Controller to tune and characterize a closed-loop system.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Closed-loop tuning lab using the Moku:Go PID Controller\" \/>\n<meta property=\"og:description\" content=\"Learn how to use a PID (Proportional \u2013 Integral \u2013 Derivative) Controller to tune and characterize a closed-loop system.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/\" \/>\n<meta property=\"og:site_name\" content=\"Liquid Instruments\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/LiquidInstruments\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-03-01T22:41:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-11T22:34:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/03\/mokugo-fra-intuitive-software-for-windows-and-mac.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1410\" \/>\n\t<meta property=\"og:image:height\" content=\"1433\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"sspeece\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@liquidinstrmnts\" \/>\n<meta name=\"twitter:site\" content=\"@liquidinstrmnts\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"sspeece\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/\"},\"author\":{\"name\":\"sspeece\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/person\/fcb30312dc1d23247c12c96e1050bfb5\"},\"headline\":\"Closed-loop tuning lab using the Moku:Go PID Controller\",\"datePublished\":\"2022-03-01T22:41:44+00:00\",\"dateModified\":\"2025-12-11T22:34:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/\"},\"wordCount\":2420,\"publisher\":{\"@id\":\"https:\/\/liquidinstruments.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/03\/mokugo-fra-intuitive-software-for-windows-and-mac.jpg\",\"articleSection\":[\"Application notes\",\"Coursework\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/\",\"url\":\"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/\",\"name\":\"Closed-loop with a PID Controller\",\"isPartOf\":{\"@id\":\"https:\/\/liquidinstruments.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/03\/mokugo-fra-intuitive-software-for-windows-and-mac.jpg\",\"datePublished\":\"2022-03-01T22:41:44+00:00\",\"dateModified\":\"2025-12-11T22:34:56+00:00\",\"description\":\"Learn how to use a PID (Proportional \u2013 Integral \u2013 Derivative) Controller to tune and characterize a closed-loop system.\",\"breadcrumb\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/#primaryimage\",\"url\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/03\/mokugo-fra-intuitive-software-for-windows-and-mac.jpg\",\"contentUrl\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/03\/mokugo-fra-intuitive-software-for-windows-and-mac.jpg\",\"width\":1410,\"height\":1433,\"caption\":\"mokugo-fra-intuitive-software\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/liquidinstruments.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Closed-loop tuning lab using the Moku:Go PID Controller\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/liquidinstruments.com\/#website\",\"url\":\"https:\/\/liquidinstruments.com\/\",\"name\":\"Liquid Instruments\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/liquidinstruments.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/liquidinstruments.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/liquidinstruments.com\/#organization\",\"name\":\"Liquid Instruments\",\"url\":\"https:\/\/liquidinstruments.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/i0.wp.com\/liquidinstruments.com\/wp-content\/uploads\/2020\/10\/BrandMark-Preferred-RGB-Color.png?fit=1000%2C924&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/liquidinstruments.com\/wp-content\/uploads\/2020\/10\/BrandMark-Preferred-RGB-Color.png?fit=1000%2C924&ssl=1\",\"width\":1000,\"height\":924,\"caption\":\"Liquid Instruments\"},\"image\":{\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/LiquidInstruments\/\",\"https:\/\/x.com\/liquidinstrmnts\",\"https:\/\/www.instagram.com\/liquidinstruments\/\",\"https:\/\/www.linkedin.com\/company\/liquidinstruments\/\",\"https:\/\/www.youtube.com\/c\/LiquidInstruments\",\"https:\/\/vimeo.com\/liquidinstruments\"],\"hasMerchantReturnPolicy\":{\"@type\":\"MerchantReturnPolicy\",\"merchantReturnLink\":\"https:\/\/liquidinstruments.com\/support\/warranty-repairs-and-service\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/person\/fcb30312dc1d23247c12c96e1050bfb5\",\"name\":\"sspeece\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ee4d3071fc19b113c3ceb39edeca09cfd32b82737e640b09b75fc753402fd900?s=96&d=wavatar&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ee4d3071fc19b113c3ceb39edeca09cfd32b82737e640b09b75fc753402fd900?s=96&d=wavatar&r=g\",\"caption\":\"sspeece\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Closed-loop with a PID Controller","description":"Learn how to use a PID (Proportional \u2013 Integral \u2013 Derivative) Controller to tune and characterize a closed-loop system.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/","og_locale":"en_US","og_type":"article","og_title":"Closed-loop tuning lab using the Moku:Go PID Controller","og_description":"Learn how to use a PID (Proportional \u2013 Integral \u2013 Derivative) Controller to tune and characterize a closed-loop system.","og_url":"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/","og_site_name":"Liquid Instruments","article_publisher":"https:\/\/www.facebook.com\/LiquidInstruments\/","article_published_time":"2022-03-01T22:41:44+00:00","article_modified_time":"2025-12-11T22:34:56+00:00","og_image":[{"width":1410,"height":1433,"url":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/03\/mokugo-fra-intuitive-software-for-windows-and-mac.jpg","type":"image\/jpeg"}],"author":"sspeece","twitter_card":"summary_large_image","twitter_creator":"@liquidinstrmnts","twitter_site":"@liquidinstrmnts","twitter_misc":{"Written by":"sspeece","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/#article","isPartOf":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/"},"author":{"name":"sspeece","@id":"https:\/\/liquidinstruments.com\/#\/schema\/person\/fcb30312dc1d23247c12c96e1050bfb5"},"headline":"Closed-loop tuning lab using the Moku:Go PID Controller","datePublished":"2022-03-01T22:41:44+00:00","dateModified":"2025-12-11T22:34:56+00:00","mainEntityOfPage":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/"},"wordCount":2420,"publisher":{"@id":"https:\/\/liquidinstruments.com\/#organization"},"image":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/#primaryimage"},"thumbnailUrl":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/03\/mokugo-fra-intuitive-software-for-windows-and-mac.jpg","articleSection":["Application notes","Coursework"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/","url":"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/","name":"Closed-loop with a PID Controller","isPartOf":{"@id":"https:\/\/liquidinstruments.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/#primaryimage"},"image":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/#primaryimage"},"thumbnailUrl":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/03\/mokugo-fra-intuitive-software-for-windows-and-mac.jpg","datePublished":"2022-03-01T22:41:44+00:00","dateModified":"2025-12-11T22:34:56+00:00","description":"Learn how to use a PID (Proportional \u2013 Integral \u2013 Derivative) Controller to tune and characterize a closed-loop system.","breadcrumb":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/#primaryimage","url":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/03\/mokugo-fra-intuitive-software-for-windows-and-mac.jpg","contentUrl":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/03\/mokugo-fra-intuitive-software-for-windows-and-mac.jpg","width":1410,"height":1433,"caption":"mokugo-fra-intuitive-software"},{"@type":"BreadcrumbList","@id":"https:\/\/liquidinstruments.com\/application-notes\/closed-loop-tuning-with-mokugos-pid-controller\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/liquidinstruments.com\/"},{"@type":"ListItem","position":2,"name":"Closed-loop tuning lab using the Moku:Go PID Controller"}]},{"@type":"WebSite","@id":"https:\/\/liquidinstruments.com\/#website","url":"https:\/\/liquidinstruments.com\/","name":"Liquid Instruments","description":"","publisher":{"@id":"https:\/\/liquidinstruments.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/liquidinstruments.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/liquidinstruments.com\/#organization","name":"Liquid Instruments","url":"https:\/\/liquidinstruments.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/liquidinstruments.com\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/liquidinstruments.com\/wp-content\/uploads\/2020\/10\/BrandMark-Preferred-RGB-Color.png?fit=1000%2C924&ssl=1","contentUrl":"https:\/\/i0.wp.com\/liquidinstruments.com\/wp-content\/uploads\/2020\/10\/BrandMark-Preferred-RGB-Color.png?fit=1000%2C924&ssl=1","width":1000,"height":924,"caption":"Liquid Instruments"},"image":{"@id":"https:\/\/liquidinstruments.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/LiquidInstruments\/","https:\/\/x.com\/liquidinstrmnts","https:\/\/www.instagram.com\/liquidinstruments\/","https:\/\/www.linkedin.com\/company\/liquidinstruments\/","https:\/\/www.youtube.com\/c\/LiquidInstruments","https:\/\/vimeo.com\/liquidinstruments"],"hasMerchantReturnPolicy":{"@type":"MerchantReturnPolicy","merchantReturnLink":"https:\/\/liquidinstruments.com\/support\/warranty-repairs-and-service\/"}},{"@type":"Person","@id":"https:\/\/liquidinstruments.com\/#\/schema\/person\/fcb30312dc1d23247c12c96e1050bfb5","name":"sspeece","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/liquidinstruments.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ee4d3071fc19b113c3ceb39edeca09cfd32b82737e640b09b75fc753402fd900?s=96&d=wavatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ee4d3071fc19b113c3ceb39edeca09cfd32b82737e640b09b75fc753402fd900?s=96&d=wavatar&r=g","caption":"sspeece"}}]}},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts\/9888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/comments?post=9888"}],"version-history":[{"count":4,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts\/9888\/revisions"}],"predecessor-version":[{"id":26850,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts\/9888\/revisions\/26850"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/media\/5943"}],"wp:attachment":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/media?parent=9888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/categories?post=9888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/tags?post=9888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}