{"id":22930,"date":"2025-03-13T21:26:37","date_gmt":"2025-03-13T21:26:37","guid":{"rendered":"https:\/\/liquidinstruments.com\/?p=22930"},"modified":"2025-08-29T04:40:53","modified_gmt":"2025-08-29T04:40:53","slug":"how-to-define-and-measure-a-transfer-function-for-a-pid-controller","status":"publish","type":"post","link":"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/","title":{"rendered":"How to define and measure a transfer function for a PID controller","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column]\n    <div data-component='call_to_action' class='vc_row-fluid cta w-full mx-auto cta-outline'>\n      <div class='flex w-full gap-4 flex-col items-center'>\n      \n        <div class='max-w-prose wpb_column vc_column_container vc_col-sm-12'>\n          <div class='vc_column-inner'>\n            \n            <p>In this blog, we will demonstrate how to set up and measure a transfer function for the\u00a0<a href=\"https:\/\/liquidinstruments.com\/products\/integrated-instruments\/pid-controller\/\" rel=\"noopener\">Moku PID Controller<\/a>\u00a0using the\u00a0<a href=\"https:\/\/liquidinstruments.com\/products\/apis\/python-api\/\" rel=\"noopener\">Moku Python API<\/a>. First, we will introduce the standalone PID Controller instrument and walk through the necessary Python commands to configure it, then we will measure the transfer function using the <a href=\"https:\/\/liquidinstruments.com\/products\/integrated-instruments\/frequency-response-analyzer\/\" rel=\"noopener\">Moku Frequency Response Analyzer<\/a>.<\/p>\n\n          <\/div>\n        <\/div>\n        <div class=' flex flex-row gap-4 xs:flex-col'>\n          <a class=\"button relative gap-2 items-center blue filled medium  \" href=\"https:\/\/liquidinstruments.com\/products\/integrated-instruments\/pid-controller\/\" title=\"Explore Moku PID Controller\" target=\"\"><span class=\"flex-1\">Explore Moku PID Controller<\/span><\/a>\n  <a class=\"button relative gap-2 items-center blue filled medium  \" href=\"https:\/\/liquidinstruments.com\/products\/hardware-platforms\/mokupro\/\" title=\"Configure Moku:pro\" target=\"\"><span class=\"flex-1\">Configure Moku:pro<\/span><\/a>\n  \n  \n        <\/div>\n      <\/div>\n    <\/div>[vc_column_text css=&#8221;&#8221;]<\/p>\n<h2><span style=\"font-weight: 400;\">Understanding the PID Controller Block Diagram<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">In electronics applications, PID and <a href=\"https:\/\/liquidinstruments.com\/frequency-domain-control-the-ultimate-guide-to-control-loops\/\">control loops<\/a> are often essential pieces of an automated test setup. For clarity, it is useful to examine the PID controller block diagram using the Moku UI, as seen in Fig. 1. The instrument\u2019s block diagram shows two inputs fed into a control matrix, which allows signals to be added, subtracted, and multiplied. The signal then passes into one of two independent PID controllers, each with its own output, along with DC offsets, limiters, and switches. Additionally, probe points are available for viewing signals at various stages within the measurement chain.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-22931 size-large\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.55.01\u202fAM-1024x631.png\" alt=\"The Moku PID Controller block diagram\" width=\"900\" height=\"555\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.55.01\u202fAM-1024x631.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.55.01\u202fAM-300x185.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.55.01\u202fAM-768x473.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.55.01\u202fAM-600x370.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.55.01\u202fAM.png 1043w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<p style=\"text-align: center;\"><span style=\"font-weight: 400;\">Figure 1. The Moku PID Controller block diagram.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">By selecting the PID block in the Moku UI, users can view the current transfer function in frequency space. The proportional gain and saturation levels are defined in units of dB, while crossover points are specified in Hz. Users can interact with these parameters by clicking and dragging, adjusting the values dynamically and seeing the transfer function update.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Defining the Transfer Function in Python<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">To automate the configuration and measurement of the transfer function, we use a <a href=\"https:\/\/jupyter.org\/\" target=\"_blank\" rel=\"noopener\">Jupyter notebook<\/a>, which is accessible from our <a href=\"https:\/\/github.com\/liquidinstruments\" target=\"_blank\" rel=\"noopener\">Github<\/a>. For those new to Python-based Moku control, detailed written and video tutorials on setting up the Python API are available <a href=\"https:\/\/liquidinstruments.com\/blog\/getting-started-with-the-moku-python-api\/\" target=\"_blank\" rel=\"noopener\">in this blog<\/a>. The processes for connecting to Moku and setting up <a href=\"https:\/\/liquidinstruments.com\/multi-instrument-mode\/\">Multi-Instrument Mode<\/a> are covered in these tutorials, while here we only cover the essential commands for defining the PID function.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">There are three key commands to use when setting the transfer function, with the key difference being the user\u2019s preference for defining the PID parameters either by gain or by crossover frequency. We\u2019ve created two commands to accommodate either of these configurations.\u00a0\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The first is the command <\/span><b>set_by_frequency. <\/b><span style=\"font-weight: 400;\">This command defines the total gain, integrator saturation, and differential saturation parameters in dB, whereas the integrator, differentiator, and double integrator parameters are defined in terms of crossover frequency. As seen in the code snippet below, the command accepts up to seven keyword inputs, the first of which specifies the target channel. Users can add the other six keyword arguments to configure parameters accordingly. There are no default values; leaving a keyword undefined disables that parameter.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">An alternative command, which allows users to set PID parameters using gain values, is <\/span><b>set_by_gain. <\/b><span style=\"font-weight: 400;\">When using this method, the proportional (P), integral (I), and derivative (D) values are specified in dB, while saturation values are expressed in Hz. These settings can also be accessed through the Moku UI; they are found under the &#8220;advanced mode&#8221; menu of the PID controller.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The third command is <\/span><b>summary<\/b><span style=\"font-weight: 400;\">, which retrieves a comprehensive list of instrument settings, including all current PID values. While this is universal to all Moku instruments, it\u2019s particularly useful for the PID Controller, where the visual feedback from the UI is unavailable.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">An example of these three commands, with keyword arguments, can be seen in Fig. 2.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-22932 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.43.36\u202fAM.png\" alt=\"An example of Python code for the PID Controller, showing the multiple ways of configuring the transfer function\" width=\"876\" height=\"881\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.43.36\u202fAM.png 876w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.43.36\u202fAM-298x300.png 298w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.43.36\u202fAM-150x150.png 150w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.43.36\u202fAM-768x772.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.43.36\u202fAM-300x302.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.43.36\u202fAM-600x603.png 600w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.43.36\u202fAM-100x100.png 100w\" sizes=\"(max-width: 876px) 100vw, 876px\" \/><\/p>\n<p style=\"text-align: center;\"><span style=\"font-weight: 400;\">Figure 2. An example of Python code for the PID Controller, showing the multiple ways of configuring the transfer function.\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Measuring the Transfer Function<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">We use the Moku <a href=\"https:\/\/liquidinstruments.com\/products\/integrated-instruments\/frequency-response-analyzer\/\" rel=\"noopener\">Frequency Response Analyzer<\/a> to measure the transfer function, deploying it alongside the PID controller in <a href=\"https:\/\/liquidinstruments.com\/multi-instrument-mode\/\">Multi-Instrument Mode<\/a>. In this setup, the output from the Frequency Response Analyzer is fed into the PID controller. The signal then loops back to the input side, enabling the FRA to measure the difference between the input and output signals. A schematic of the Moku configuration is shown in Fig 3.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-22933 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.53.00\u202fAM.png\" alt=\"Moku PID Controller and Frequency Response Analyzer deployed in Multi-Instrument Mode\" width=\"785\" height=\"547\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.53.00\u202fAM.png 785w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.53.00\u202fAM-300x209.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.53.00\u202fAM-768x535.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.53.00\u202fAM-600x418.png 600w\" sizes=\"(max-width: 785px) 100vw, 785px\" \/><\/p>\n<p style=\"text-align: center;\"><span style=\"font-weight: 400;\">Figure 3. Moku PID Controller and Frequency Response Analyzer deployed in Multi-Instrument Mode.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Continuing from the script introduced earlier, we focus on two essential Python commands. The first, <\/span><b>set_output, <\/b><span style=\"font-weight: 400;\">defines the output parameters of the Frequency Response Analyzer. Since there are two outputs, the command is called twice \u2014 once for each channel. The first argument specifies the channel to be enabled, and the second argument sets the amplitude in volts.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This command <\/span><b>set_sweep<\/b><span style=\"font-weight: 400;\"> configures the key parameters for the Frequency Response Analyzer&#8217;s sweep, and includes many keyword arguments. These keywords include the frequency range of the sweep, how many frequency points to measure, how long the instrument waits before starting data collection, and the duration over which data is averaged for each point. These minimum settling and averaging times can be defined in terms of number of cycles or length of time. For example, a settling time of 1 us and a settling cycle of 1 means that the instrument waits either 1 microsecond or 1 cycle at each sweep point, whichever is longer.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The <\/span><b>start_sweep<\/b><span style=\"font-weight: 400;\"> command initiates the frequency sweep and provides an estimate of the measurement duration. The next command, <\/span><b>get_data, <\/b><span style=\"font-weight: 400;\">retrieves the measured data. Setting the <\/span><em><span style=\"font-weight: 400;\">wait_complete<\/span><\/em><span style=\"font-weight: 400;\"> keyword to <\/span><b>True<\/b><span style=\"font-weight: 400;\"> ensures the data transfer occurs only after the sweep finishes. If necessary, the timeout value can be adjusted to prevent the request from timing out.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">An example of the full set of commands, with keyword arguments, is shown in Fig. 4.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-22934 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.46.07\u202fAM.png\" alt=\"An example of Python code for the Frequency Response Analyzer\" width=\"909\" height=\"634\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.46.07\u202fAM.png 909w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.46.07\u202fAM-300x209.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.46.07\u202fAM-768x536.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.46.07\u202fAM-600x418.png 600w\" sizes=\"(max-width: 909px) 100vw, 909px\" \/><\/p>\n<p style=\"text-align: center;\"><span style=\"font-weight: 400;\">Figure 4. An example of Python code for the Frequency Response Analyzer.\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Viewing and Plotting the Data\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">The data is returned in dictionary format with keys of \u2018Ch1\u2019 and \u2018Ch2.\u2019 It can be divided into two sets, which are also dictionaries, and plotted to display magnitude and phase versus frequency as shown in Fig 3. By comparing this plot with the transfer function shown in the PID controller UI, users can verify that the transfer function is providing the intended response to an input signal. Adjusting the PID controller settings will alter the transfer function, and produce corresponding changes in the plotted data.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-22935 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.39\u202fAM.png\" alt=\"magnitude response data recovered from the Frequency Response Analyzer\" width=\"870\" height=\"307\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.39\u202fAM.png 870w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.39\u202fAM-300x106.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.39\u202fAM-768x271.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.39\u202fAM-600x212.png 600w\" sizes=\"(max-width: 870px) 100vw, 870px\" \/><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-22936 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.57\u202fAM-e1740779979171.png\" alt=\"phase response data recovered from the Frequency Response Analyzer\" width=\"882\" height=\"337\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.57\u202fAM-e1740779979171.png 882w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.57\u202fAM-e1740779979171-300x115.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.57\u202fAM-e1740779979171-768x293.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.57\u202fAM-e1740779979171-600x229.png 600w\" sizes=\"(max-width: 882px) 100vw, 882px\" \/><\/p>\n<p style=\"text-align: center;\"><span style=\"font-weight: 400;\">Figure 5. Magnitude and phase response data recovered from the Frequency Response Analyzer.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This tutorial demonstrated how to define and measure a transfer function using the Moku PID controller and Frequency Response Analyzer through the Moku Python API. By following these steps and utilizing the provided commands, users can accurately configure their instruments and validate transfer functions.<\/span>[\/vc_column_text][\/vc_column][\/vc_row][vc_row background=&#8221;gradient&#8221; layout=&#8221;vertical&#8221; options=&#8221;button&#8221; media_position=&#8221;right&#8221; media_type=&#8221;&#8221; ja_toggle_src=&#8221;&#8221; zh_toggle_src=&#8221;&#8221; kr_toggle_src=&#8221;&#8221; image=&#8221;&#8221; image_size=&#8221;full&#8221; aspect_ratio=&#8221;auto&#8221; max_width=&#8221;&#8221; center=&#8221;&#8221; href=&#8221;url:https%3A%2F%2Fforum.liquidinstruments.com%2F|title:User%20Forum|target:_blank&#8221; style=&#8221;filled&#8221; size=&#8221;medium&#8221; href_secondary_btn=&#8221;&#8221; style-secondary=&#8221;filled&#8221; size-secondary=&#8221;medium&#8221; en_src=&#8221;&#8221; ja_src=&#8221;&#8221; zh_src=&#8221;&#8221; kr_src=&#8221;&#8221;][vc_column][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>[vc_row][vc_column][vc_column_text css=&#8221;&#8221;] Understanding the PID Controller Block Diagram In electronics applications, PID and control loops are often essential pieces of an automated test setup. For clarity, it is useful to examine the PID controller block diagram using the Moku UI, as seen in Fig. 1. The instrument\u2019s block diagram shows two inputs fed into a [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":49,"featured_media":22935,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[3],"tags":[],"class_list":["post-22930","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","site-category-frequency-response-analyzer","site-category-mokupro","site-category-pid-controller"],"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>Measuring the Transfer Function of a PID Controller<\/title>\n<meta name=\"description\" content=\"Learn how to automate PID controller transfer function measurements. This guide covers setup, configuration, and data plotting.\" \/>\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\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to define and measure a transfer function for a PID controller\" \/>\n<meta property=\"og:description\" content=\"Learn how to automate PID controller transfer function measurements. This guide covers setup, configuration, and data plotting.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-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=\"2025-03-13T21:26:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-29T04:40:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.39\u202fAM.png\" \/>\n\t<meta property=\"og:image:width\" content=\"870\" \/>\n\t<meta property=\"og:image:height\" content=\"307\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jason Ball\" \/>\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=\"Jason Ball\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/\"},\"author\":{\"name\":\"Jason Ball\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/person\/9e95fcc52e40f7754fd85152937b68fa\"},\"headline\":\"How to define and measure a transfer function for a PID controller\",\"datePublished\":\"2025-03-13T21:26:37+00:00\",\"dateModified\":\"2025-08-29T04:40:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/\"},\"wordCount\":1186,\"publisher\":{\"@id\":\"https:\/\/liquidinstruments.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.39\u202fAM.png\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/\",\"url\":\"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/\",\"name\":\"Measuring the Transfer Function of a PID Controller\",\"isPartOf\":{\"@id\":\"https:\/\/liquidinstruments.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.39\u202fAM.png\",\"datePublished\":\"2025-03-13T21:26:37+00:00\",\"dateModified\":\"2025-08-29T04:40:53+00:00\",\"description\":\"Learn how to automate PID controller transfer function measurements. This guide covers setup, configuration, and data plotting.\",\"breadcrumb\":{\"@id\":\"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/#primaryimage\",\"url\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.39\u202fAM.png\",\"contentUrl\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.39\u202fAM.png\",\"width\":870,\"height\":307},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/liquidinstruments.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to define and measure a transfer function for a 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\/9e95fcc52e40f7754fd85152937b68fa\",\"name\":\"Jason Ball\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b0e7502ee45ec194baeba408e7aa6836fee5a4bdef40b7b10bd8788a1b32ad6c?s=96&d=wavatar&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b0e7502ee45ec194baeba408e7aa6836fee5a4bdef40b7b10bd8788a1b32ad6c?s=96&d=wavatar&r=g\",\"caption\":\"Jason Ball\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jason-ball-quantum\/\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Measuring the Transfer Function of a PID Controller","description":"Learn how to automate PID controller transfer function measurements. This guide covers setup, configuration, and data plotting.","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\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/","og_locale":"en_US","og_type":"article","og_title":"How to define and measure a transfer function for a PID controller","og_description":"Learn how to automate PID controller transfer function measurements. This guide covers setup, configuration, and data plotting.","og_url":"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/","og_site_name":"Liquid Instruments","article_publisher":"https:\/\/www.facebook.com\/LiquidInstruments\/","article_published_time":"2025-03-13T21:26:37+00:00","article_modified_time":"2025-08-29T04:40:53+00:00","og_image":[{"width":870,"height":307,"url":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.39\u202fAM.png","type":"image\/png"}],"author":"Jason Ball","twitter_card":"summary_large_image","twitter_creator":"@liquidinstrmnts","twitter_site":"@liquidinstrmnts","twitter_misc":{"Written by":"Jason Ball","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/#article","isPartOf":{"@id":"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/"},"author":{"name":"Jason Ball","@id":"https:\/\/liquidinstruments.com\/#\/schema\/person\/9e95fcc52e40f7754fd85152937b68fa"},"headline":"How to define and measure a transfer function for a PID controller","datePublished":"2025-03-13T21:26:37+00:00","dateModified":"2025-08-29T04:40:53+00:00","mainEntityOfPage":{"@id":"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/"},"wordCount":1186,"publisher":{"@id":"https:\/\/liquidinstruments.com\/#organization"},"image":{"@id":"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/#primaryimage"},"thumbnailUrl":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.39\u202fAM.png","articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/","url":"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/","name":"Measuring the Transfer Function of a PID Controller","isPartOf":{"@id":"https:\/\/liquidinstruments.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/#primaryimage"},"image":{"@id":"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/#primaryimage"},"thumbnailUrl":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.39\u202fAM.png","datePublished":"2025-03-13T21:26:37+00:00","dateModified":"2025-08-29T04:40:53+00:00","description":"Learn how to automate PID controller transfer function measurements. This guide covers setup, configuration, and data plotting.","breadcrumb":{"@id":"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/#primaryimage","url":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.39\u202fAM.png","contentUrl":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-25-at-10.49.39\u202fAM.png","width":870,"height":307},{"@type":"BreadcrumbList","@id":"https:\/\/liquidinstruments.com\/blog\/how-to-define-and-measure-a-transfer-function-for-a-pid-controller\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/liquidinstruments.com\/"},{"@type":"ListItem","position":2,"name":"How to define and measure a transfer function for a 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\/9e95fcc52e40f7754fd85152937b68fa","name":"Jason Ball","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/liquidinstruments.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b0e7502ee45ec194baeba408e7aa6836fee5a4bdef40b7b10bd8788a1b32ad6c?s=96&d=wavatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b0e7502ee45ec194baeba408e7aa6836fee5a4bdef40b7b10bd8788a1b32ad6c?s=96&d=wavatar&r=g","caption":"Jason Ball"},"sameAs":["https:\/\/www.linkedin.com\/in\/jason-ball-quantum\/"]}]}},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts\/22930","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\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/comments?post=22930"}],"version-history":[{"count":7,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts\/22930\/revisions"}],"predecessor-version":[{"id":25566,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts\/22930\/revisions\/25566"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/media\/22935"}],"wp:attachment":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/media?parent=22930"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/categories?post=22930"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/tags?post=22930"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}