{"id":47053,"date":"2026-09-14T12:52:15","date_gmt":"2026-09-14T12:52:15","guid":{"rendered":"https:\/\/imperix.com\/doc\/?p=47053"},"modified":"2026-09-14T12:52:16","modified_gmt":"2026-09-14T12:52:16","slug":"system-identification-injector","status":"publish","type":"post","link":"https:\/\/imperix.com\/doc\/software\/system-identification-injector","title":{"rendered":"System Identification Injector"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 ez-toc-wrap-right-text counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/imperix.com\/doc\/software\/system-identification-injector\/#Principles-of-operation\" >Principles of operation<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/imperix.com\/doc\/software\/system-identification-injector\/#Excitation-Injection\" >Excitation Injection<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/imperix.com\/doc\/software\/system-identification-injector\/#Frequency-response-estimation\" >Frequency response estimation<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/imperix.com\/doc\/software\/system-identification-injector\/#Block-parameters\" >Block parameters<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/imperix.com\/doc\/software\/system-identification-injector\/#Injector-parameters\" >Injector parameters<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/imperix.com\/doc\/software\/system-identification-injector\/#Simulation-parameters\" >Simulation parameters<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/imperix.com\/doc\/software\/system-identification-injector\/#Signal-specification\" >Signal specification<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/imperix.com\/doc\/software\/system-identification-injector\/#Mask\" >Mask<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/imperix.com\/doc\/software\/system-identification-injector\/#References\" >References<\/a><\/li><\/ul><\/nav><\/div>\n\n<p class=\"wp-block-paragraph\">The System Identification (Sys. Id.) Injector block allows the user to inject an excitation signal on a user code variable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Together with the <a type=\"link\" href=\"https:\/\/imperix.com\/doc\/help\/system-identification-module\" id=\"https:\/\/imperix.com\/doc\/help\/system-identification-module\">Cockpit Sys. Id. module<\/a>, the block can be used to set up a system identification experiment and estimate the frequency response of a system. In Simulink and PLECS simulations, the block records the identification experiment data and uses it to estimate the system frequency response by itself.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Concrete application examples using the Imperix System Identification Toolbox are given in <a href=\"https:\/\/imperix.com\/doc\/uncategorized\/parametric-system-identification-using-the-imperix-sys-id-toolbox\">PN215<\/a> and <a href=\"https:\/\/imperix.com\/doc\/uncategorized\/control-tuning-in-the-frequency-domain-using-imperix-system-identification-toolbox\" data-type=\"link\" data-id=\"https:\/\/imperix.com\/doc\/uncategorized\/control-tuning-in-the-frequency-domain-using-imperix-system-identification-toolbox\">PN216<\/a>.<\/p>\n\n\n\n<h2 id=\"operation-principles\" class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Principles-of-operation\"><\/span>Principles of operation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The system identification procedure is applied identically in the simulation environment and Imperix Cockpit. It is performed in two steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The excitation is injected into the system and the system response is recorded<\/li>\n\n\n\n<li>The recorded data is used to estimate the system frequency response<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">In Cockpit, the estimated frequency response is displayed in the Sys. Id. module, in the form of a Bode plot. The data can be examined in the module, saved as a snapshot, as well as exported in the form of a CSV or MAT file. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In Simulink and PLECS, once the simulation run is complete, both the recorded and estimated data are saved automatically. In Simulink, the data is saved in a struct variable in the MATLAB base workspace, while in PLECS, the time- and frequency-domain data are saved in separate CSV files in a folder next to the PLECS model file.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Excitation-Injection\"><\/span>Excitation Injection<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Configuring the excitation signal and deciding where and how it should be injected into the system are the two most important parts of designing the identification experiment. <br>To accurately estimate the frequency response of a system, the applied signal should be able to excite the system over the whole frequency range of interest. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once formed, the excitation signal can be injected in two ways:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In <strong>open loop<\/strong> mode, by adding it to the average of the block input signal. This effectively breaks any control loops running through the injector.<\/li>\n\n\n\n<li>In <strong>closed loop<\/strong> mode, by adding the excitation to the block input signal<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">In open loop mode, the block input signal average is estimated from the last 10 milliseconds before the injection starts.<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The excitation injected by the Sys. Id. Injector block is a pseudorandom binary sequence (PRBS).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">PRBS Injection<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">A<a href=\"https:\/\/en.wikipedia.org\/wiki\/Pseudorandom_binary_sequence\" target=\"_blank\" rel=\"noreferrer noopener\">&nbsp;pseudorandom binary sequence (PRBS)<\/a>&nbsp;signal has properties similar to white noise, allowing it to excite the system at a wide range of frequencies upon injection. The signal is also periodic and deterministically generated, making it easy to repeat identification experiments.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The injected PRBS signal consists of the pre-excitation part and the main part. The pre-excitation part is defined in seconds and doesn&#8217;t have to last a full PRBS period. The main part continues the binary sequence started in the pre-excitation part and lasts for 1 or more whole periods.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"937\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/08\/illustration_V1-1024x937.png\" alt=\"\" class=\"wp-image-49320\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/08\/illustration_V1-1024x937.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/08\/illustration_V1-300x274.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/08\/illustration_V1-767x702.png 767w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/08\/illustration_V1.png 1092w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Figure 1: Injected PRBS signal and the closed-loop system response <\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The two signals that are used to estimate the system frequency response are called the <strong>numerator<\/strong> and the <strong>denominator<\/strong>. They are only recorded during the main part of the signal, while the samples corresponding to the pre-excitation part are discarded. <br>This is done because using non-steady state data to estimate the system frequency response significantly degrades the quality of the result. Injecting some PRBS samples before the system response is recorded helps to avoid capturing the transition from the previous steady state to the steady state under a continuous PRBS injection.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Frequency-response-estimation\"><\/span>Frequency response estimation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Once the system response data is recorded, the estimation phase starts. In Cockpit, since the Sys. Id. module uses the&nbsp;<a href=\"https:\/\/imperix.com\/doc\/help\/scope-module\" data-type=\"link\" data-id=\"https:\/\/imperix.com\/doc\/help\/scope-module\">Scope module<\/a>&nbsp;to record the system response, this phase starts once the Scope acquisition finishes. In Simulink and PLECS, estimation begins automatically after the simulation run by the user ends.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Frequency response estimation is done in three steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The recorded numerator and denominator data are divided into intervals corresponding to each period of the injected PRBS<\/li>\n\n\n\n<li>An Empirical Transfer Function Estimate (ETFE) is calculated for every interval. This is done by dividing the Discrete Fourier Transforms (DFT) of the numerator and denominator data.<\/li>\n\n\n\n<li>The final estimate is obtained as the average of the calculated ETFEs<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"947\" height=\"523\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/08\/result-1.png\" alt=\"\" class=\"wp-image-49331\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/08\/result-1.png 947w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/08\/result-1-300x166.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/08\/result-1-768x424.png 768w\" sizes=\"auto, (max-width: 947px) 100vw, 947px\" \/><figcaption class=\"wp-element-caption\">Figure 2: The Bode plot of the frequency response estimated by the Sys. Id. Injector block from the data seen in Figure 1<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Block-parameters\"><\/span>Block parameters<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Injector-parameters\"><\/span>Injector parameters<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Injector name<\/strong>: sets the injector name. This name is used by the Sys. Id. module for active injector selection and to save simulated system identification data.<br>This name must start with a character and must not contain any spaces or special characters except for the \u201c_\u201c character. Also, the maximum number of characters is 21.<\/li>\n\n\n\n<li><strong>Output safety limits<\/strong>: allows the user to configure the upper and lower limit of the block output signal<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Simulation-parameters\"><\/span>Simulation parameters<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The simulation parameters are revealed by activating the <strong>Simulate System Identification<\/strong> option in the <em>Simulation<\/em> parameters tab. When this option is active, the block records the input model data and estimates the frequency response at the end of the simulation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a given <strong>Injector name<\/strong> (e.g. sys_id_injector), Simulink saves the system identification data in a struct variable with that name and a suffix &#8220;_data&#8221; (e.g. sys_id_injector_data) in the MATLAB base workspace. PLECS, on the other hand, saves two CSV files (system_response.csv and etfe_result.csv),\u00a0in a folder with the same name as the injector next to the PLECS model file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The simulation parameters include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Injection mode<\/strong>: allows the user to choose between open loop and closed loop injection modes<\/li>\n\n\n\n<li><strong>Injection start time [s]<\/strong>: tells the block when to start the injection. It is recommended to start the injection once the system under identification reaches a steady state<\/li>\n\n\n\n<li><strong>PRBS Peak-to-peak<\/strong>: configures the difference between the high and low state values of the pseudorandom binary sequence<\/li>\n\n\n\n<li><strong>Advanced PRBS settings:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>PRBS Order<\/strong>: determines the length of one period of the PRBS. For an order \\(N\\), the length of a period is&nbsp;\\(L=2^N-1\\)<\/li>\n\n\n\n<li><strong>Number of PRBS sequence repetitions<\/strong>: configures how many periods of the PRBS will be injected. For \\(R\\) repetitions, \\(R\\) frequency responses are estimated using data recorded during each period. The final estimate displayed in the module is then calculated as the average of these estimates<\/li>\n\n\n\n<li><strong>Pre-excitation time [s]<\/strong>: sets the duration of the PRBS injected before the \\(R\\) full periods. The data recorded over this interval is not used for estimation. Instead, the pre-excitation samples are used to transition the system to the new steady state induced by the injected PRBS input<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">For a pre-excitation time \\(T_{pre}\\) and a control period of \\(T_s\\), the duration of the configured excitation becomes \\(T_{PRBS}= T_{pre}+L\\cdot R\\cdot T_s \\). To get the simulated system identification results, make sure that the configured simulation time is long enough.<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">In PLECS, an additional parameter, <strong>CPU task execution rate [Hz]<\/strong>, needs to be configured for proper system identification. For a CLK0 frequency \\(F_{\\text{CLK0}}\\) and a postscaler value configured in the <a href=\"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration\" data-type=\"post\" data-id=\"1564\">CONFIG<\/a> block this parameter should be set to \\(F_{\\text{CPU}} = F_{\\text{CLK0}}\\) \/ postscaler. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Signal-specification\"><\/span>Signal specification<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n<style>.kb-row-layout-id47053_3d0df7-b8 > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id47053_3d0df7-b8 > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id47053_3d0df7-b8 > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);grid-template-columns:minmax(0, calc(70% - ((var(--global-kb-gap-md, 2rem) * 1 )\/2)))minmax(0, calc(30% - ((var(--global-kb-gap-md, 2rem) * 1 )\/2)));}.kb-row-layout-id47053_3d0df7-b8 > .kt-row-layout-overlay{opacity:0.30;}@media all and (max-width: 1024px){.kb-row-layout-id47053_3d0df7-b8 > .kt-row-column-wrap{grid-template-columns:repeat(2, minmax(0, 1fr));}}@media all and (max-width: 767px){.kb-row-layout-id47053_3d0df7-b8 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id47053_3d0df7-b8 alignnone wp-block-kadence-rowlayout\"><div class=\"kt-row-column-wrap kt-has-2-columns kt-row-layout-equal kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top\">\n<style>.kadence-column47053_c3319f-0b > .kt-inside-inner-col,.kadence-column47053_c3319f-0b > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column47053_c3319f-0b > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column47053_c3319f-0b > .kt-inside-inner-col{flex-direction:column;}.kadence-column47053_c3319f-0b > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column47053_c3319f-0b > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column47053_c3319f-0b{position:relative;}@media all and (max-width: 1024px){.kadence-column47053_c3319f-0b > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column47053_c3319f-0b > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column47053_c3319f-0b\"><div class=\"kt-inside-inner-col\">\n<ul class=\"wp-block-list\">\n<li><strong>in<\/strong> is the block input signal, upon which the PRBS is injected<\/li>\n\n\n\n<li><strong>num<\/strong> and <strong>den<\/strong> inputs record system response data to use in system identification in Simulation mode<\/li>\n\n\n\n<li><strong>out<\/strong> is the block output signal. Its value depends on the injection mode:\n<ul class=\"wp-block-list\">\n<li>PRBS + <strong>in<\/strong>, during injection in the closed loop mode<\/li>\n\n\n\n<li>PRBS + the estimated average of <strong>in<\/strong>, during injection in the open loop mode<\/li>\n\n\n\n<li><strong>in<\/strong>, otherwise<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>The <strong>open<\/strong> signal outputs:\n<ul class=\"wp-block-list\">\n<li>1, during injection in the open loop mode<\/li>\n\n\n\n<li>0, otherwise<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n<style>.kadence-column47053_079ae4-2b > .kt-inside-inner-col,.kadence-column47053_079ae4-2b > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column47053_079ae4-2b > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column47053_079ae4-2b > .kt-inside-inner-col{flex-direction:column;}.kadence-column47053_079ae4-2b > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column47053_079ae4-2b > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column47053_079ae4-2b{position:relative;}@media all and (max-width: 1024px){.kadence-column47053_079ae4-2b > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column47053_079ae4-2b > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column47053_079ae4-2b\"><div class=\"kt-inside-inner-col\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"104\" height=\"151\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/08\/Sys_Id_Injector_block-2.png\" alt=\"\" class=\"wp-image-48654\"\/><\/figure>\n<\/div><\/div><\/div>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\"><strong>num<\/strong> and <strong>den<\/strong> input ports only appear if the <strong>Simulate system identification<\/strong> option is activated.<\/div>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">The <strong>open<\/strong> signal is useful for preventing integral windup in open loop mode as it is designed to be fed into controllers with an integral component to pause error accumulation.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Mask\"><\/span>Mask<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"904\" height=\"647\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/09\/Sys_Id_Injector_dialog.png\" alt=\"\" class=\"wp-image-49695\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/09\/Sys_Id_Injector_dialog.png 904w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/09\/Sys_Id_Injector_dialog-300x215.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/09\/Sys_Id_Injector_dialog-767x549.png 767w\" sizes=\"auto, (max-width: 904px) 100vw, 904px\" \/><figcaption class=\"wp-element-caption\">Simulink block mask dialog<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1009\" height=\"472\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/08\/Sys_Id_Injector_dialog_PLECS.png\" alt=\"\" class=\"wp-image-48699\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/08\/Sys_Id_Injector_dialog_PLECS.png 1009w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/08\/Sys_Id_Injector_dialog_PLECS-300x140.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2026\/08\/Sys_Id_Injector_dialog_PLECS-768x359.png 768w\" sizes=\"auto, (max-width: 1009px) 100vw, 1009px\" \/><figcaption class=\"wp-element-caption\">PLECS block mask dialog<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"References\"><\/span>References<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">[1] Lennart Ljung, \u201cSystem Identification: Theory for the User\u201d, Pearson Education, 1998,<br>ISBN: 978-0-132-44053-0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The System Identification (Sys. Id.) Injector block allows the user to inject an excitation signal on a user code variable. Together with the Cockpit Sys&#8230;.<\/p>\n","protected":false},"author":18,"featured_media":37837,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[16],"tags":[],"software-environments":[103,104],"provided-results":[],"related-products":[50,31,32,92,166,51,110],"guidedreadings":[],"tutorials":[],"user-manuals":[],"coauthors":[93],"class_list":["post-47053","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","software-environments-matlab","software-environments-plecs","related-products-acg-sdk","related-products-b-board-pro","related-products-b-box-rcp","related-products-b-box-micro","related-products-b-box-rcp-3-0","related-products-cpp-sdk","related-products-tpi"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>System Identification Injector - imperix<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/imperix.com\/doc\/software\/system-identification-injector\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"System Identification Injector - imperix\" \/>\n<meta property=\"og:description\" content=\"The System Identification (Sys. Id.) Injector block allows the user to inject an excitation signal on a user code variable. Together with the Cockpit Sys....\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imperix.com\/doc\/software\/system-identification-injector\" \/>\n<meta property=\"og:site_name\" content=\"imperix\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-14T12:52:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-14T12:52:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/integrated_ACGSDK.png\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"482\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Mateja Ili\u0107\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mateja Ili\u0107\" \/>\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:\\\/\\\/imperix.com\\\/doc\\\/software\\\/system-identification-injector#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/system-identification-injector\"},\"author\":{\"name\":\"Mateja Ili\u0107\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/d1ee9a0e69f5f9e0e7a17f73a43c7558\"},\"headline\":\"System Identification Injector\",\"datePublished\":\"2026-09-14T12:52:15+00:00\",\"dateModified\":\"2026-09-14T12:52:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/system-identification-injector\"},\"wordCount\":1333,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/system-identification-injector#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/integrated_ACGSDK.png\",\"articleSection\":[\"Software reference\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/system-identification-injector#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/system-identification-injector\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/system-identification-injector\",\"name\":\"System Identification Injector - imperix\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/system-identification-injector#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/system-identification-injector#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/integrated_ACGSDK.png\",\"datePublished\":\"2026-09-14T12:52:15+00:00\",\"dateModified\":\"2026-09-14T12:52:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/system-identification-injector#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/system-identification-injector\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/system-identification-injector#primaryimage\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/integrated_ACGSDK.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/integrated_ACGSDK.png\",\"width\":720,\"height\":482},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/system-identification-injector#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Knowledge base\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Software reference\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/category\\\/software\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"System Identification Injector\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"name\":\"imperix\",\"description\":\"power electronics\",\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/imperix.com\\\/doc\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\",\"name\":\"imperix\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"width\":350,\"height\":120,\"caption\":\"imperix\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/d1ee9a0e69f5f9e0e7a17f73a43c7558\",\"name\":\"Mateja Ili\u0107\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7936a0da3bab4f34015836e0c69e60b99617dd1982500a0d2e9f3d21837fb50b?s=96&d=mm&r=g5d0e4c6de0072da89ac175b57e90b3f1\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7936a0da3bab4f34015836e0c69e60b99617dd1982500a0d2e9f3d21837fb50b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7936a0da3bab4f34015836e0c69e60b99617dd1982500a0d2e9f3d21837fb50b?s=96&d=mm&r=g\",\"caption\":\"Mateja Ili\u0107\"},\"description\":\"Mateja is a software development engineer at imperix. He is working mainly on the Cockpit monitoring software.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/mateja-ilic-29ba52229\\\/\"],\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/author\\\/ilic\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"System Identification Injector - imperix","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:\/\/imperix.com\/doc\/software\/system-identification-injector","og_locale":"en_US","og_type":"article","og_title":"System Identification Injector - imperix","og_description":"The System Identification (Sys. Id.) Injector block allows the user to inject an excitation signal on a user code variable. Together with the Cockpit Sys....","og_url":"https:\/\/imperix.com\/doc\/software\/system-identification-injector","og_site_name":"imperix","article_published_time":"2026-09-14T12:52:15+00:00","article_modified_time":"2026-09-14T12:52:16+00:00","og_image":[{"width":720,"height":482,"url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/integrated_ACGSDK.png","type":"image\/png"}],"author":"Mateja Ili\u0107","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Mateja Ili\u0107","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imperix.com\/doc\/software\/system-identification-injector#article","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/software\/system-identification-injector"},"author":{"name":"Mateja Ili\u0107","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/d1ee9a0e69f5f9e0e7a17f73a43c7558"},"headline":"System Identification Injector","datePublished":"2026-09-14T12:52:15+00:00","dateModified":"2026-09-14T12:52:16+00:00","mainEntityOfPage":{"@id":"https:\/\/imperix.com\/doc\/software\/system-identification-injector"},"wordCount":1333,"commentCount":0,"publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"image":{"@id":"https:\/\/imperix.com\/doc\/software\/system-identification-injector#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/integrated_ACGSDK.png","articleSection":["Software reference"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imperix.com\/doc\/software\/system-identification-injector#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imperix.com\/doc\/software\/system-identification-injector","url":"https:\/\/imperix.com\/doc\/software\/system-identification-injector","name":"System Identification Injector - imperix","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imperix.com\/doc\/software\/system-identification-injector#primaryimage"},"image":{"@id":"https:\/\/imperix.com\/doc\/software\/system-identification-injector#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/integrated_ACGSDK.png","datePublished":"2026-09-14T12:52:15+00:00","dateModified":"2026-09-14T12:52:16+00:00","breadcrumb":{"@id":"https:\/\/imperix.com\/doc\/software\/system-identification-injector#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imperix.com\/doc\/software\/system-identification-injector"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/software\/system-identification-injector#primaryimage","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/integrated_ACGSDK.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/integrated_ACGSDK.png","width":720,"height":482},{"@type":"BreadcrumbList","@id":"https:\/\/imperix.com\/doc\/software\/system-identification-injector#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Knowledge base","item":"https:\/\/imperix.com\/doc\/"},{"@type":"ListItem","position":2,"name":"Software reference","item":"https:\/\/imperix.com\/doc\/category\/software"},{"@type":"ListItem","position":3,"name":"System Identification Injector"}]},{"@type":"WebSite","@id":"https:\/\/imperix.com\/doc\/#website","url":"https:\/\/imperix.com\/doc\/","name":"imperix","description":"power electronics","publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/imperix.com\/doc\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/imperix.com\/doc\/#organization","name":"imperix","url":"https:\/\/imperix.com\/doc\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","width":350,"height":120,"caption":"imperix"},"image":{"@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/d1ee9a0e69f5f9e0e7a17f73a43c7558","name":"Mateja Ili\u0107","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/7936a0da3bab4f34015836e0c69e60b99617dd1982500a0d2e9f3d21837fb50b?s=96&d=mm&r=g5d0e4c6de0072da89ac175b57e90b3f1","url":"https:\/\/secure.gravatar.com\/avatar\/7936a0da3bab4f34015836e0c69e60b99617dd1982500a0d2e9f3d21837fb50b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7936a0da3bab4f34015836e0c69e60b99617dd1982500a0d2e9f3d21837fb50b?s=96&d=mm&r=g","caption":"Mateja Ili\u0107"},"description":"Mateja is a software development engineer at imperix. He is working mainly on the Cockpit monitoring software.","sameAs":["https:\/\/www.linkedin.com\/in\/mateja-ilic-29ba52229\/"],"url":"https:\/\/imperix.com\/doc\/author\/ilic"}]}},"_links":{"self":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/47053","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/comments?post=47053"}],"version-history":[{"count":143,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/47053\/revisions"}],"predecessor-version":[{"id":49750,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/47053\/revisions\/49750"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media\/37837"}],"wp:attachment":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media?parent=47053"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/categories?post=47053"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tags?post=47053"},{"taxonomy":"software-environments","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/software-environments?post=47053"},{"taxonomy":"provided-results","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/provided-results?post=47053"},{"taxonomy":"related-products","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/related-products?post=47053"},{"taxonomy":"guidedreadings","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/guidedreadings?post=47053"},{"taxonomy":"tutorials","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tutorials?post=47053"},{"taxonomy":"user-manuals","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/user-manuals?post=47053"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/coauthors?post=47053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}