<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3-mathml3.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.3" xml:lang="EN">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Mar. Sci.</journal-id>
<journal-title-group>
<journal-title>Frontiers in Marine Science</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Mar. Sci.</abbrev-journal-title>
</journal-title-group>
<issn pub-type="epub">2296-7745</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fmars.2025.1671083</article-id>
<article-version article-version-type="Version of Record" vocab="NISO-RP-8-2008"/>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Technology and Code</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Enhancing sensor accuracy in mobile multi-sensor systems for atmospheric monitoring using disturbance observer and sensor estimators</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Kim</surname><given-names>Shinhyung</given-names></name>
<uri xlink:href="https://loop.frontiersin.org/people/3141596/overview"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="conceptualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/conceptualization/">Conceptualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing &#x2013; original draft</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
</contrib>
<contrib contrib-type="author">
<name><surname>Tullu</surname><given-names>Abera</given-names></name>
<uri xlink:href="https://loop.frontiersin.org/people/3241149/overview"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>Jung</surname><given-names>Sunghun</given-names></name>
<xref ref-type="corresp" rid="c001"><sup>*</sup></xref>
<uri xlink:href="https://loop.frontiersin.org/people/3211667/overview"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Funding acquisition" vocab-term-identifier="https://credit.niso.org/contributor-roles/funding-acquisition/">Funding acquisition</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="supervision" vocab-term-identifier="https://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &amp; editing</role>
</contrib>
</contrib-group>
<aff id="aff1"><institution>Department of Smart Vehicle System Engineering, Chosun University</institution>, <city>Gwangju</city>,&#xa0;<country country="check-value">Republic of Korea</country></aff>
<author-notes>
<corresp id="c001"><label>*</label>Correspondence: Sunghun Jung, <email xlink:href="mailto:jungx148@chosun.ac.kr">jungx148@chosun.ac.kr</email></corresp>
</author-notes>
<pub-date publication-format="electronic" date-type="pub" iso-8601-date="2025-10-23">
<day>23</day>
<month>10</month>
<year>2025</year>
</pub-date>
<pub-date publication-format="electronic" date-type="collection">
<year>2025</year>
</pub-date>
<volume>12</volume>
<elocation-id>1671083</elocation-id>
<history>
<date date-type="received">
<day>22</day>
<month>07</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>03</day>
<month>10</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2025 Kim, Tullu and Jung.</copyright-statement>
<copyright-year>2025</copyright-year>
<copyright-holder>Kim, Tullu and Jung</copyright-holder>
<license>
<ali:license_ref start_date="2025-10-23">https://creativecommons.org/licenses/by/4.0/</ali:license_ref>
<license-p>This is an open-access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution License (CC BY)</ext-link>. The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</license-p>
</license>
</permissions>
<abstract>
<p>Recent progress in marine environmental monitoring has underscored the importance of equally rigorous atmospheric observations, and it has consequently focused on developing mobile sensors that improve data collection accuracy and operational flexibility. unmanned aerial vehicles (UAVs) are attractive carriers owing to their low cost and operational agility; however, the stringent size&#x2013;and&#x2013;weight constraints imposed on onboard sensors often translate into poor accuracy, especially under rapidly fluctuating ambient temperatures. This paper introduces a compact, lightweight composite sensor payload &#x2013; readily integrable with UAVs &#x2013; that preserves measurement precision down to &#x2212;40&#xb0;C by embedding a disturbance observer (DOB)&#x2013;based compensation algorithm directly in the sensor micro&#x2013;controller, using externally sensed air temperature (via an insulated probe) as baseline data for onboard correction. The DOB continuously estimates and cancels temperature&#x2013;induced bias and electromagnetic interference in real time, without hardware redundancy or external calibration during operation. High&#x2013;altitude test&#x2013;chamber experiments show that the proposed system lowers the temperature RMSE from 28.67&#xb0;C to 15.74&#xb0;C and raises the coefficient of determination (<italic>R</italic><sup>2</sup>) from 0.02 to 0.76. These results confirm that DOB&#x2013;assisted correction substantially enhances the robustness and reliability of lightweight UAV&#x2013;compatible sensors, paving the way for high&#x2013;resolution coastal&#x2013;and&#x2013;open&#x2013;ocean ground&#x2013;to&#x2013;stratosphere profiling that supports coupled air&#x2013;sea flux assessments for marine exploration.</p>
</abstract>
<kwd-group>
<kwd>unmanned aerial vehicle</kwd>
<kwd>mobile multi-sensor payload</kwd>
<kwd>upper-air profiling</kwd>
<kwd>temperature compensation</kwd>
<kwd>air-sea flux</kwd>
<kwd>marine environmental monitoring</kwd>
<kwd>stratospheric observation</kwd>
<kwd>disturbance observer</kwd>
</kwd-group>
<funding-group>
<award-group id="gs1">
<funding-source id="sp1">
<institution-wrap>
<institution>Korea Institute for Advancement of Technology</institution>
<institution-id institution-id-type="doi" vocab="open-funder-registry" vocab-identifier="10.13039/open_funder_registry">10.13039/501100003661</institution-id>
</institution-wrap>
</funding-source>
<award-id rid="sp1">P0024180</award-id>
</award-group>
<funding-statement>The author(s) declare financial support was received for the research and/or publication of this article. This work was supported by Korea Institute for Advancement of Technology (KIAT) grant funded by the Korea Government (MOTIE) (P0024180, Development of RIC (Regional Innovation Cluster)).</funding-statement>
</funding-group>
<counts>
<fig-count count="9"/>
<table-count count="6"/>
<equation-count count="24"/>
<ref-count count="28"/>
<page-count count="15"/>
<word-count count="7331"/>
</counts>
<custom-meta-group>
<custom-meta>
<meta-name>section-in-acceptance</meta-name>
<meta-value>Ocean Observation</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<sec id="s1" sec-type="intro">
<label>1</label>
<title>Introduction</title>
<p>Recent advancements in atmospheric environmental monitoring have focused on the development of small mobile sensors to improve data-collection accuracy and operational flexibility. Equally important, a growing body of marine-climatology literature shows that atmospheric processes directly regulate upper-ocean heat content. Notably, <xref ref-type="bibr" rid="B9">G&#xfc;nther et&#xa0;al. (2024)</xref> demonstrate that stratospheric aerosol forcing can cool the western Pacific warm pool on sub-seasonal timescales, underscoring the need for <italic>in-situ</italic> observations that capture atmospheric and oceanic states concurrently.</p>
<p>Fixed-point observatories&#x2014;land stations, moored buoys, and shipborne packages&#x2014;struggle to sample these tightly coupled air-sea processes with adequate spatial and vertical resolution. Because conventional sensors are configured for fixed sites, synoptic three-dimensional observations remain essential for constraining pollution sources and energy-flux pathways across both land and sea.</p>
<p>Mobile platforms therefore constitute a practical means of extending the reach of environmental sensors. Small unmanned aerial vehicles UAVs have emerged as flexible observational platforms. <xref ref-type="bibr" rid="B7">Fekih et&#xa0;al. (2021)</xref> developed and evaluated a mobile participatory system for monitoring air-quality and urban-heat-island conditions with cost-effective miniature sensors, emphasizing data validation and energy efficiency through comparisons with reference instruments. <xref ref-type="bibr" rid="B4">Chen et&#xa0;al. (2021)</xref> compiled a high-resolution, vision-based air quality dataset using UAVs to capture wide-swath imagery paired with ground sensors, thereby improving the spatial interpolation of air-quality fields.</p>
<p><xref ref-type="bibr" rid="B5">Concas et&#xa0;al. (2021)</xref> catalog state-of-the-art machine-learning calibration methods for inexpensive air-quality sensors; however, they note that these approaches depend on large labeled datasets and remain largely unvalidated in the steep temperature and pressure gradients encountered during rapid UAV profiling sorties. Recent assessments further document bias and drift of low-cost sensors under changing <italic>T</italic>/<italic>p</italic>/RH, reinforcing the need for calibration schemes that remain valid off the training envelope (<xref ref-type="bibr" rid="B22">Siddiqui et&#xa0;al., 2025</xref>; <xref ref-type="bibr" rid="B10">Hayward et&#xa0;al., 2024</xref>).</p>
<p><xref ref-type="bibr" rid="B27">Zappa et&#xa0;al. (2020)</xref> demonstrated ship-launched VTOL UAVs equipped with multispectral imagers and microbuoys, capable of resolving centimeter-scale sea-surface variability while simultaneously profiling the marine atmospheric boundary layer.</p>
<p>Yet sensor miniaturization amplifies measurement errors from thermal drift, aging, and dynamic pressure, especially during rapid ascent and descent across sharp tropospheric and lower-stratospheric gradients. Although prior work has improved low-cost sensors via statistical calibration, machine-learning correction, or hardware compensation, these approaches typically require large labeled datasets, quasi-stationary conditions, or redundant reference hardware, and they degrade when temperature/pressure/humidity depart from the training envelope (<xref ref-type="bibr" rid="B28">Zou et&#xa0;al., 2021</xref>; <xref ref-type="bibr" rid="B14">Liang, 2021</xref>; <xref ref-type="bibr" rid="B24">Wei et&#xa0;al., 2018</xref>). Complementary physics-informed techniques mitigate bias (e.g., feed-forward thermal compensation and enclosure design), yet enclosure radiation and airflow still distort ambient readings, indicating that disturbance terms should be estimated rather than merely filtered (<xref ref-type="bibr" rid="B15">Liu et&#xa0;al., 2023</xref>; <xref ref-type="bibr" rid="B16">Lundstrom and Mattsson, 2020</xref>).</p>
<p>Disturbance observers (DOBs) provide a model-based route to real-time error mitigation when system dynamics are reasonably known (<xref ref-type="bibr" rid="B11">Iwata et&#xa0;al., 2020</xref>; <xref ref-type="bibr" rid="B21">Santina et&#xa0;al., 2020</xref>). They are used in battery state estimation and industrial temperature control (<xref ref-type="bibr" rid="B17">Messier et&#xa0;al., 2020</xref>; <xref ref-type="bibr" rid="B23">Tang and Xu, 2023</xref>), but have rarely been embedded in compact multi-sensor payloads exposed to steep and fast environmental transients. This gap motivates our approach: we embed a lightweight DOB in the sensor microcontroller to estimate and cancel disturbance-induced bias on board without auxiliary calibration hardware, and we evaluate the resulting payload under rapidly varying temperature and pressure using a thermal-vacuum chamber (methods in Section 4, results in Section 5).</p>
<sec id="s1_1">
<label>1.1</label>
<title>Literature review on sensor accuracy</title>
<p>Sensor accuracy is pivotal for reliable environmental assessment, yet maintaining data fidelity is particularly challenging for cost-effective miniature sensors deployed on mobile platforms. <xref ref-type="bibr" rid="B28">Zou et&#xa0;al. (2021)</xref> showed that particulate-matter sensors suffer from pronounced temperature- and humidity-induced bias, underscoring the need for climate-adaptive calibration. <xref ref-type="bibr" rid="B14">Liang (2021)</xref> compared statistical and machine-learning calibration frameworks and found that multivariate models incorporating relative humidity, temperature, and pressure markedly outperformed simple regressions. These data-driven approaches, however, depend on extensive labeled datasets and frequent retraining, which limits their utility for sensors that traverse steep vertical gradients aboard UAVs.</p>
<p><xref ref-type="bibr" rid="B2">Allka et&#xa0;al. (2023)</xref> enhanced the accuracy of internet of things (IoT) temperature nodes through temporal-pattern denoising, but their validation was restricted to quasi-stationary conditions and did not address the rapid ambient changes typical of UAV missions. Complementary physics-informed techniques have also been pursued: <xref ref-type="bibr" rid="B15">Liu et&#xa0;al. (2023)</xref> applied feed-forward thermal compensation to micro-accelerometers, stabilizing bias across wide temperature excursions, and <xref ref-type="bibr" rid="B16">Lundstrom and Mattsson (2020)</xref> demonstrated that enclosure radiation and airflow can distort ambient readings, indicating that disturbance terms should be estimated rather than merely filtered. <xref ref-type="bibr" rid="B8">Gu et&#xa0;al. (2020)</xref> extended these ideas to aerial IoT networks, using neural networks to correct multi-sensor drift during maneuvering flight.</p>
<p>The accuracy of sensor data becomes particularly critical when sensors are deployed on moving platforms, where rapid variations in temperature, pressure, and airflow can degrade measurement fidelity compared with stationary observatories. This distinction is also essential in the context of the present work, which specifically targets the development of ultra-miniaturized, lightweight, and low-cost instrumentation for airborne vehicles. In such scenarios, accuracy can be quantitatively expressed by the coefficient of determination (<italic>R</italic><sup>2</sup>) relative to reference sensors, as reported in (<xref ref-type="bibr" rid="B1">Ali et&#xa0;al., 2021</xref>; <xref ref-type="bibr" rid="B26">Zafra-Perez et&#xa0;al., 2023</xref>; <xref ref-type="bibr" rid="B25">Yeom, 2021</xref>; <xref ref-type="bibr" rid="B20">Saha et&#xa0;al., 2021</xref>; <xref ref-type="bibr" rid="B19">Pohorsky et&#xa0;al., 2024</xref>; <xref ref-type="bibr" rid="B18">Nadzir et&#xa0;al., 2025</xref>). The consolidated results are summarized in <xref ref-type="table" rid="T1"><bold>Table&#xa0;1</bold></xref>, providing a basis for comparing the estimated performance levels of the proposed system.</p>
<table-wrap id="T1" position="float">
<label>Table&#xa0;1</label>
<caption>
<p>Summary of <italic>R</italic><sup>2</sup> values from related studies on mobile sensor systems.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="left">Reference</th>
<th valign="middle" align="left">Platform</th>
<th valign="middle" align="left">Measured parameter(s)</th>
<th valign="middle" align="left"><italic>R</italic><sup>2</sup></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="left"><xref ref-type="bibr" rid="B1">Ali et&#xa0;al. (2021)</xref></td>
<td valign="middle" align="left">Various types</td>
<td valign="middle" align="left">Gases (CO, NO<sub>2</sub>), particulate matter (PM)</td>
<td valign="middle" align="left">0.78</td>
</tr>
<tr>
<td valign="middle" align="left"><xref ref-type="bibr" rid="B26">Zafra-Perez et&#xa0;al. (2023)</xref></td>
<td valign="middle" align="left">Car</td>
<td valign="middle" align="left">PM</td>
<td valign="middle" align="left">0.83</td>
</tr>
<tr>
<td valign="middle" align="left"><xref ref-type="bibr" rid="B25">Yeom (2021)</xref></td>
<td valign="middle" align="left">Car</td>
<td valign="middle" align="left">Gases, PM, temperature, humidity</td>
<td valign="middle" align="left">0.79</td>
</tr>
<tr>
<td valign="middle" align="left"><xref ref-type="bibr" rid="B18">Nadzir et&#xa0;al. (2025)</xref></td>
<td valign="middle" align="left">UAV</td>
<td valign="middle" align="left">PM</td>
<td valign="middle" align="left">0.73</td>
</tr>
<tr>
<td valign="middle" align="left"><xref ref-type="bibr" rid="B20">Saha et&#xa0;al. (2021)</xref></td>
<td valign="middle" align="left">Car + station</td>
<td valign="middle" align="left">PM</td>
<td valign="middle" align="left">0.77<xref ref-type="table-fn" rid="fnT1_1"><sup>a</sup></xref></td>
</tr>
<tr>
<td valign="middle" align="left"><xref ref-type="bibr" rid="B19">Pohorsky et&#xa0;al. (2024)</xref></td>
<td valign="middle" align="left">UAV</td>
<td valign="middle" align="left">PM, pressure, temperature, humidity</td>
<td valign="middle" align="left">0.99<xref ref-type="table-fn" rid="fnT1_2"><sup>b</sup></xref></td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="fnT1_1"><label>a</label>
<p>Prediction model based on data collected with a moving car and a fixed station.</p></fn>
<fn id="fnT1_2"><label>b</label>
<p>Reference sensor colocated within the same vehicle.</p></fn>
</table-wrap-foot>
</table-wrap>
<p>DOBs offer a model-based route to real-time error mitigation when the system dynamics are reasonably known (<xref ref-type="bibr" rid="B11">Iwata et&#xa0;al., 2020</xref>; <xref ref-type="bibr" rid="B21">Santina et&#xa0;al., 2020</xref>; <xref ref-type="bibr" rid="B6">Daoud et&#xa0;al., 2020</xref>). They have been applied to battery state estimation (<xref ref-type="bibr" rid="B17">Messier et&#xa0;al., 2020</xref>) and industrial temperature control (<xref ref-type="bibr" rid="B23">Tang and Xu, 2023</xref>), yet their use with multi-sensor payloads undergoing rapid thermal excursions remains limited. To address this gap, the present study embeds a DOB-based error-mitigation scheme in a compact sensor suite and evaluates its efficacy during a rocket-assisted UAV mission in which the payload encounters abrupt tropospheric and lower-stratospheric temperature transients (<xref ref-type="fig" rid="f1"><bold>Figure&#xa0;1</bold></xref>).</p>
<fig id="f1" position="float">
<label>Figure&#xa0;1</label>
<caption>
<p>Overview of a UAV-attached multi-sensor mission.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-12-1671083-g001.tif">
<alt-text content-type="machine-generated">Diagram illustrating a multi-phase flight mission involving a rocket and a UAV. Phases include launch, ballistic flight, separation, transition to winged flight, and return. A multi-sensor device is highlighted. Labels specify distances such as 10 km, 20 km, and 30 km, along with mission areas and landing zones. The UAV transitions to winged flight and returns to the launch platform after completing its mission.</alt-text>
</graphic>
</fig>
<p>Embedding a disturbance observer in the sensor MCU allows the payload to infer the thermal and electrical states of both peer sensors and the sensor itself without additional reference hardware. This enables anomaly-aware fusion by withholding inconsistent sensors and supports on-board bias correction of calibration-relevant states, while keeping the system minimal.</p>
</sec>
<sec id="s1_2">
<label>1.2</label>
<title>Contributions</title>
<p>The main contributions of this study are as follows.</p>
<list list-type="bullet">
<list-item>
<p>We propose a disturbance-aware compensation architecture by embedding a DOB on the sensor MCU. It infers calibration-relevant internal states from existing measurements and compensates them on board, avoiding additional hardware installation for sensor calibration.</p></list-item>
<list-item>
<p>We validate the approach in a thermal-vacuum chamber that reproduces a rapid ground-to-stratosphere ascent and show that corrected measurements remain stable during steep temperature and pressure transients.</p></list-item>
<list-item>
<p>We lay the groundwork for redundancy-aware cross-estimation among co-located identical sensors to identify and exclude inconsistent readings during rapid ambient transients without additional hardware.</p></list-item>
<list-item>
<p>These advances improve the measurement reliability of lightweight, miniaturized sensors on mobile platforms and enable reliable upper-air profiling beyond the reach of fixed stations.</p></list-item>
</list>
</sec>
<sec id="s1_3">
<label>1.3</label>
<title>Organization</title>
<p>The remainder of this paper is organized as follows. Section 2 presents the mathematical models, control architecture, implementation of the DOB, and the sensor-compensation strategy. Section 3 describes the system-identification procedure and parameter estimation, validating the theoretical model with the proposed multi-sensor design. Section 4 outlines the simulation and chamber-test setup, including scenarios and protocols used to evaluate the system under controlled conditions. Section 5 reports the experimental observations, with a linear-regression analysis comparing the estimated temperature against reference measurements. Finally, Section 6 summarizes the conclusions and outlines future research directions.</p>
</sec>
</sec>
<sec id="s2">
<label>2</label>
<title>Mathematical modeling</title>
<p>The multi-sensor system was designed to measure environmental and positional information transmitted to the server. This includes devices such as electrochemical gas sensors, batteries, and processors operating within certain temperature ranges. However, the external environment of a multi-sensor system may exceed these operating ranges. Therefore, the temperature control is fundamentally performed by the system. <xref ref-type="fig" rid="f2"><bold>Figure&#xa0;2</bold></xref> shows an overview of the controller and plant system for the temperature control of a multi-sensor system.</p>
<fig id="f2" position="float">
<label>Figure&#xa0;2</label>
<caption>
<p>Block diagram of the multi-sensor system.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-12-1671083-g002.tif">
<alt-text content-type="machine-generated">Block diagram illustrating a control system with multiple feedback loops. It includes components labeled \(K_p\), \(K_i\), \(K_d\), \(B\), \(A\), \(B_d\), various integrators and summing junctions, and functions such as \(r(t)\), \(e(t)\), \(u(t)\), and \(d(t)\). The diagram is divided into colored sections representing different subsystems, with multiple interactions and connections among components.</alt-text>
</graphic>
</fig>
<p>In this configuration, the plant section represents an unknown model of the system. It was assumed that the controller outputs heat. The role of the DOB is to detect unobserved external temperature variations as well as the heat generation and voltage fluctuations that occur during the operation of processors and communication devices. This observer provides crucial information necessary to compensate for the sensor data.</p>
<sec id="s2_1">
<label>2.1</label>
<title>Plant</title>
<p>A multi-sensor setup was designed to maintain the operational temperature range of the sensors by adjusting the heater power. It operates as part of a feedback loop, where the controller modifies its output based on the sensor data and system requirements. The following equations describe the general state-space representation of the plant:</p>
<disp-formula id="eq1"><label>(1)</label>
<mml:math display="block" id="M1"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>B</mml:mi><mml:mi>u</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x2009;</mml:mtext></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>y</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>C</mml:mi><mml:mi>x</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im1"><mml:mi>A</mml:mi></mml:math></inline-formula> is the state matrix, <inline-formula>
<mml:math display="inline" id="im2"><mml:mi>B</mml:mi></mml:math></inline-formula> is the input matrix, <inline-formula>
<mml:math display="inline" id="im3"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mi>d</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the disturbance input matrix, <inline-formula>
<mml:math display="inline" id="im4"><mml:mi>C</mml:mi></mml:math></inline-formula> is the output matrix, <inline-formula>
<mml:math display="inline" id="im5"><mml:mrow><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is the disturbance, <inline-formula>
<mml:math display="inline" id="im6"><mml:mrow><mml:mi>u</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is the plant input, <inline-formula>
<mml:math display="inline" id="im7"><mml:mrow><mml:mi>x</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is the state vector of the system, and <inline-formula>
<mml:math display="inline" id="im8"><mml:mrow><mml:mi>y</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is the output.</p>
</sec>
<sec id="s2_2">
<label>2.2</label>
<title>Disturbance observer</title>
<p>The DOB detects and compensates for disturbances that are not directly observed by sensors, such as temperature variations and voltage fluctuations caused by the operation of processors and communication devices. By providing real-time disturbance compensation, the DOB ensures that the sensor data remain accurate despite external environmental variations. The disturbance <inline-formula>
<mml:math display="inline" id="im9"><mml:mrow><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> obtained from the DOB was used to adjust the sensor data. This yields the estimated output <inline-formula>
<mml:math display="inline" id="im10"><mml:mrow><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> of the system after disturbance compensation. The plant model with the estimated disturbance is represented as:</p>
<disp-formula id="eq2"><label>(2)</label>
<mml:math display="block" id="M2"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mo stretchy="true">^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mo>+</mml:mo><mml:mi>B</mml:mi><mml:mi>u</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>C</mml:mi><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula>
<p>Assuming that <inline-formula>
<mml:math display="inline" id="im11"><mml:mrow><mml:mi>x</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>, the disturbance <inline-formula>
<mml:math display="inline" id="im12"><mml:mrow><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is calculated directly from <xref ref-type="disp-formula" rid="eq1">Equations 1</xref> and <xref ref-type="disp-formula" rid="eq2">2</xref>, as shown in <xref ref-type="disp-formula" rid="eq3">Equation 3</xref>:</p>
<disp-formula id="eq3"><label>(3)</label>
<mml:math display="block" id="M3"><mml:mrow><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mi>B</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:mover accent="true"><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mo stretchy="true">^</mml:mo></mml:mover><mml:mo>&#x2212;</mml:mo><mml:mi>A</mml:mi><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mo>&#x2212;</mml:mo><mml:mi>B</mml:mi><mml:mi>u</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>However, this approach assumes that the model effectively matches a real system. Model errors can generate inaccuracies in observed disturbances. The differential equation of the disturbance relative to the estimated disturbance <inline-formula>
<mml:math display="inline" id="im13"><mml:mrow><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> where defined in the <xref ref-type="disp-formula" rid="eq18">Equation 18</xref> in (<xref ref-type="bibr" rid="B3">Chen et&#xa0;al., 2016</xref>) as:</p>
<disp-formula id="eq4"><label>(4)</label>
<mml:math display="block" id="M4"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>q</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>s</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>s</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>d</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>^</mml:mo></mml:mover></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im14"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mi>q</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>s</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is the Q-filter that substitutes for the products of <inline-formula>
<mml:math display="inline" id="im15"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mi>d</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula>
<mml:math display="inline" id="im16"><mml:mi>C</mml:mi></mml:math></inline-formula> accounting for model uncertainty. Thus, if estimation fast enough <inline-formula>
<mml:math display="inline" id="im17"><mml:mrow><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mo>&#x2248;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:math></inline-formula>, by estimating the state disturbance using <xref ref-type="disp-formula" rid="eq1">Equations 1</xref>, <xref ref-type="disp-formula" rid="eq2">2</xref> and <xref ref-type="disp-formula" rid="eq4">4</xref>, we obtain as shown in <xref ref-type="disp-formula" rid="eq5">Equation 5</xref>:</p>
<disp-formula id="eq5"><label>(5)</label>
<mml:math display="block" id="M5"><mml:mrow><mml:mover accent="true"><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mo stretchy="true">^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>s</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>y</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im18"><mml:mrow><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is the observed output from (2) and <inline-formula>
<mml:math display="inline" id="im19"><mml:mrow><mml:mi>y</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is the system output measured directly by the sensors, and <inline-formula>
<mml:math display="inline" id="im20"><mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>s</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is the high-pass filter as a matrix-valued transfer function designed to ensure that <inline-formula>
<mml:math display="inline" id="im21"><mml:mrow><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> converges to zero.</p>
</sec>
<sec id="s2_3">
<label>2.3</label>
<title>Sensor estimator</title>
<p>To accurately predict the sensor output <inline-formula>
<mml:math display="inline" id="im22"><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>, it is important to measure the state of the sensor. Therefore, estimating the state <inline-formula>
<mml:math display="inline" id="im23"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> of the sensor and calculating an accurate measurement can be expressed as:</p>
<disp-formula id="eq6"><label>(6)</label>
<mml:math display="block" id="M6"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mi>s</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>A</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:msub><mml:mi>x</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>s</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:msub><mml:mover accent="true"><mml:mi>x</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>s</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mover accent="true"><mml:mi>w</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im24"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> represents the state-transition matrix of the sensors, <inline-formula>
<mml:math display="inline" id="im25"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the input matrix of the sensors affected by the sensor input <inline-formula>
<mml:math display="inline" id="im26"><mml:mrow><mml:mi>w</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula>
<mml:math display="inline" id="im27"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the output matrix of the sensors, and <inline-formula>
<mml:math display="inline" id="im28"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the feed-through of the sensors. The estimated sensor input <inline-formula>
<mml:math display="inline" id="im29"><mml:mrow><mml:mover accent="true"><mml:mi>w</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is defined  as shown in <xref ref-type="disp-formula" rid="eq7">Equation 7</xref>:</p>
<disp-formula id="eq7"><label>(7)</label>
<mml:math display="block" id="M7"><mml:mrow><mml:mover accent="true"><mml:mi>w</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im30"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula>
<mml:math display="inline" id="im31"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mn>4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> are the matrices designed for the sensor estimation from and <inline-formula>
<mml:math display="inline" id="im32"><mml:mrow><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula>
<mml:math display="inline" id="im33"><mml:mrow><mml:mi>y</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> respectively. The sensors measured <inline-formula>
<mml:math display="inline" id="im34"><mml:mrow><mml:mi>y</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> with a measurement noise <inline-formula>
<mml:math display="inline" id="im35"><mml:mrow><mml:mi>n</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>.</p>
</sec>
<sec id="s2_4">
<label>2.4</label>
<title>Controller</title>
<p>The system controller plays a crucial role in maintaining the operational stability of the sensors by controlling their temperature. The heating elements in the system were dynamically adjusted to maintain the desired temperature range. This is essential for accurate data collection under dynamic environmental conditions. Proactive temperature management helps mitigate the effects of rapid temperature variations owing to external factors such as UAV operations.</p>
<p>To optimize the control and minimize the energy consumption, the controller uses the reference input <inline-formula>
<mml:math display="inline" id="im36"><mml:mrow><mml:mi>r</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>. This is the set of target temperatures. Here, each <inline-formula>
<mml:math display="inline" id="im37"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> corresponds to a specific <inline-formula>
<mml:math display="inline" id="im38"><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> component within the system. The general proportional-integral-derivative controller can be expressed  as shown in <xref ref-type="disp-formula" rid="eq8">Equation 8</xref>:</p>
<disp-formula id="eq8"><label>(8)</label>
<mml:math display="block" id="M8"><mml:mrow><mml:mover accent="true"><mml:mi>c</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mover accent="true"><mml:mi>e</mml:mi><mml:mo>&#xa8;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mover accent="true"><mml:mi>e</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im39"><mml:mrow><mml:mi>c</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mn>0</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula>
<mml:math display="inline" id="im40"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>, represents the designed controllable heat generation in each <inline-formula>
<mml:math display="inline" id="im41"><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> element, <inline-formula>
<mml:math display="inline" id="im42"><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> represents the control error, and controllers gain matrix <inline-formula>
<mml:math display="inline" id="im43"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula>
<mml:math display="inline" id="im44"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula>
<mml:math display="inline" id="im45"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>d</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are designed to <inline-formula>
<mml:math display="inline" id="im46"><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x221e;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:math></inline-formula>. In <xref ref-type="disp-formula" rid="eq9">Equation 9</xref>, <italic>e(t)</italic> and <italic>v(t)</italic> are defined as:</p>
<disp-formula id="eq9"><label>(9)</label>
<mml:math display="block" id="M9"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>e</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>r</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>v</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>v</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula>
<p>where <italic>F</italic><sub>1</sub> is the matrix designed for controller from <inline-formula>
<mml:math display="inline" id="im48"><mml:mrow><mml:mi>w</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>.</p>
<p>Finally, the controller output <inline-formula>
<mml:math display="inline" id="im49"><mml:mrow><mml:mi>u</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is defined in <xref ref-type="disp-formula" rid="eq10">Equation 10</xref>:</p>
<disp-formula id="eq10"><label>(10)</label>
<mml:math display="block" id="M10"><mml:mrow><mml:mi>u</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>c</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im50"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is a matrix designed to compensate for <inline-formula>
<mml:math display="inline" id="im51"><mml:mrow><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> in <inline-formula>
<mml:math display="inline" id="im52"><mml:mrow><mml:mi>u</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>. The integration of this control mechanism with sensors ensured that each component operated within its threshold. This enhances the overall robustness and reliability of the system. The following sections discuss the advanced functionalities and integration of the DOB and sensors within this refined control framework.</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>System identification and parameter estimation</title>
<p>To validate the proposed method under real-world conditions, it was applied to a multi-sensor system mounted on a UAV for atmospheric observations. This system was used for identification and parameter estimation. The specifications are listed in <xref ref-type="table" rid="T2"><bold>Table&#xa0;2</bold></xref>.</p>
<table-wrap id="T2" position="float">
<label>Table&#xa0;2</label>
<caption>
<p>Specifications of the multi-sensor.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="left">Specification</th>
<th valign="middle" align="right">Value</th>
<th valign="middle" align="left">Unit</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="left">Battery capacity</td>
<td valign="middle" align="right">37,800</td>
<td valign="middle" align="left"><italic>mWh</italic></td>
</tr>
<tr>
<td valign="middle" align="left">Length &#xd7; width &#xd7; height</td>
<td valign="middle" align="right">200 &#xd7; 100 &#xd7; 30</td>
<td valign="middle" align="left"><italic>mm</italic></td>
</tr>
<tr>
<td valign="middle" align="left">Weight</td>
<td valign="middle" align="right">416</td>
<td valign="middle" align="left"><italic>g</italic></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The multi-sensor system transmitted and received positional information and data from external sources through satellite communication (SATCOM), long-term evolution (LTE), ultra-wideband (UWB), and global positioning system (GPS) modules. In addition, it controls the heat generated by the integrated heater. Various types of gases, particulate matter, temperature, and humidity sensors have been used to acquire environmental data. The goal of the validation was to predict the atmospheric temperature using the proposed DOB-based sensor estimation method and compare it with a reference atmospheric temperature sensor. This approach is important because it can be used to predict the external and internal sensor temperatures, which are crucial because most chemical sensors are vulnerable to temperature variations.</p>
<sec id="s3_1">
<label>3.1</label>
<title>Model</title>
<p>A mathematical model was required to apply the DOB, based on which we developed a mobile multi sensor system and temperature model. <xref ref-type="fig" rid="f3"><bold>Figure&#xa0;3</bold></xref> illustrates the multi-sensor system and its components. This figure shows the temperature states of the <inline-formula>
<mml:math display="inline" id="im53"><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> component, denoted as <inline-formula>
<mml:math display="inline" id="im54"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>. For the identification, we define the output matrix <inline-formula>
<mml:math display="inline" id="im55"><mml:mi>C</mml:mi></mml:math></inline-formula>, state <inline-formula>
<mml:math display="inline" id="im56"><mml:mrow><mml:mi>x</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>, and sensor output <inline-formula>
<mml:math display="inline" id="im57"><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> as follows:</p>
<fig id="f3" position="float">
<label>Figure&#xa0;3</label>
<caption>
<p>Multi-sensor model overview.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-12-1671083-g003.tif">
<alt-text content-type="machine-generated">Internal view of an electronic device labeled with various components and connections. Major labels include Battery, SATCOM, Heater, Particle Matter Sensor, and GPS. Temperature and airflow notations (T&#x2080;(t), T&#x2081;(t), etc.) are marked on various sections, with connections indicated by arrows. Additional components labeled are Gas Sensors, IMU, UWB, MCU/Mainboard, LTE, and Pressure Sensor. The pathways and notations (u(t), Q&#x307;&#x2080;(t), g&#x2080;&#x2081;, etc.) highlight the system's airflow and thermal flow dynamics. Surfaces labeled with MLI are also noted.</alt-text>
</graphic>
</fig>
<disp-formula id="eq11"><label>(11)</label>
<mml:math display="block" id="M11"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>C</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>x</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x2003;</mml:mtext><mml:msub><mml:mi>T</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x2003;</mml:mtext><mml:msub><mml:mi>T</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x2003;</mml:mtext><mml:msub><mml:mi>T</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>y</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im58"><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mn>4</mml:mn></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> represents the heater, microcontroller unit with the mainboard, enclosed air within the multi-sensor, surface temperature outside the multi-layered insulation (MLI), and atmosphere, respectively. Although the atmosphere is not a component of a multi-sensor system, it is expressed as the fourth component to derive the equations. Each of <inline-formula>
<mml:math display="inline" id="im59"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> were measured using dedicated temperature sensors. However, no sensor was installed to measure the atmospheric temperature <inline-formula>
<mml:math display="inline" id="im60"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn>4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> in the multi-sensor system. In this system, <inline-formula>
<mml:math display="inline" id="im61"><mml:mrow><mml:mi>u</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> and <inline-formula>
<mml:math display="inline" id="im62"><mml:mrow><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> are defined as the heat transfer between each component 208 and the atmosphere. These are expressed as follows:</p>
<disp-formula id="eq12"><label>(12)</label>
<mml:math display="block" id="M12"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>u</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mi>c</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mn>04</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mn>0</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>d</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mn>04</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x2003;</mml:mtext><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mn>14</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x2003;</mml:mtext><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mn>24</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x2003;</mml:mtext><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mn>34</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:mrow><mml:mi>T</mml:mi></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im63"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mi>c</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> represents the electric heater power.</p>
<p>The total heat transfer rate.</p>
<p><inline-formula>
<mml:math display="inline" id="im64"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#xa0;</mml:mo></mml:mrow></mml:math></inline-formula> for each component can be expressed in terms of the heat capacity and 211 heat transfer between <italic>i</italic> and <italic>j</italic> as follows:</p>
<disp-formula id="eq13"><label>(13)</label>
<mml:math display="block" id="M13"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mn>4</mml:mn></mml:munderover><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im65"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the heat capacity of the <inline-formula>
<mml:math display="inline" id="im66"><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> component. <inline-formula>
<mml:math display="inline" id="im67"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is the heat-transfer rate between components <inline-formula>
<mml:math display="inline" id="im68"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula>
<mml:math display="inline" id="im69"><mml:mi>j</mml:mi></mml:math></inline-formula>, as follows:</p>
<disp-formula id="eq14"><label>(14)</label>
<mml:math display="block" id="M14"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im70"><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> [W/K] represents the thermal conductance.</p>
<p>From <xref ref-type="disp-formula" rid="eq13">Equations 13</xref> and <xref ref-type="disp-formula" rid="eq14">14</xref>, the differential equation of the plant model is expressed as.</p>
<disp-formula id="eq15"><label>(15)</label>
<mml:math display="block" id="M15"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mn>3</mml:mn></mml:munderover><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>The relationships between <inline-formula>
<mml:math display="inline" id="im71"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> and <inline-formula>
<mml:math display="inline" id="im72"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula>
<mml:math display="inline" id="im73"><mml:mrow><mml:mo>&#xa0;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> and <inline-formula>
<mml:math display="inline" id="im74"><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>, and the self-heat transfer terms <inline-formula>
<mml:math display="inline" id="im75"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula>
<mml:math display="inline" id="im76"><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>are expressed as follows:</p>
<disp-formula id="eq16"><label>(16)</label>
<mml:math display="block" id="M16"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mi>j</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#xa0;</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#xa0;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula>
<p>From <xref ref-type="disp-formula" rid="eq11">Equations 11</xref>, <xref ref-type="disp-formula" rid="eq12">12</xref>, <xref ref-type="disp-formula" rid="eq15">15</xref> and <xref ref-type="disp-formula" rid="eq16">16</xref>, we obtain the following temperature ODEs:</p>
<disp-formula id="eq17"><label>(17)</label>
<mml:math display="block" id="M17"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mn>0</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mn>0</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mn>04</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>01</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>02</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>03</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mn>1</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mn>14</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>01</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>13</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mn>2</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mn>24</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>02</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>23</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mn>3</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mn>3</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mrow><mml:mn>34</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>03</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>13</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>23</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>where&#x2003;</mml:mtext><mml:msub><mml:mi>g</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>01</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>02</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>03</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mtext>&#x2009;</mml:mtext><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>01</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>13</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#xa0;</mml:mo><mml:mo>&#xa0;</mml:mo><mml:mo>&#xa0;</mml:mo><mml:mo>&#xa0;</mml:mo><mml:mo>&#xa0;</mml:mo><mml:mo>&#xa0;</mml:mo><mml:mo>&#xa0;</mml:mo><mml:mo>&#xa0;</mml:mo><mml:mo>&#xa0;</mml:mo><mml:mo>&#xa0;</mml:mo><mml:mo>&#xa0;</mml:mo><mml:mo>&#xa0;</mml:mo><mml:mo>&#xa0;</mml:mo><mml:mo>&#xa0;</mml:mo><mml:mo>&#xa0;</mml:mo><mml:mo>&#xa0;</mml:mo><mml:mo>&#xa0;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>02</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>23</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mtext>&#x2009;</mml:mtext><mml:msub><mml:mi>g</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>03</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>13</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>23</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula>
<p>These equations can be compactly expressed in state-space form as.</p>
<disp-formula id="eq18"><label>(18)</label>
<mml:math display="block" id="M18"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>A</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>0</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>g</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mn>0</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>01</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mn>0</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>02</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mn>0</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>03</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>01</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>13</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>02</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>g</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>23</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>3</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>03</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>3</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>13</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>3</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>23</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>3</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mi>g</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>B</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>0</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>3</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mtext>&#xa0;&#xa0;&#xa0;&#xa0;</mml:mtext><mml:mi>B</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>0</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula>
<p>where matrices <italic>A</italic>, <italic>B</italic>, and <italic>B<sub>d</sub></italic> are defined in <xref ref-type="disp-formula" rid="eq18">Equation 18</xref> as the compact state-space representation of <xref ref-type="disp-formula" rid="eq17">Equation 17</xref>.</p>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>Disturbance observer</title>
<p>As the gain <italic>G</italic> of the DOB increased, the rate of decrease in the disturbance error decreased. However, if <italic>G</italic> is excessively high, the sensor noise may be amplified and the quality of the estimation results may be degraded. We selected a <italic>G</italic> value that was ten times higher than the sensor data collection frequency (0.25Hz) to balance error reduction and noise amplification in this system.</p>
<p>In addition, the optimal <italic>G</italic> can be obtained by defining the estimation error at the most rapidly changing point of the linearized model as the cost function and solving it through simulation and experiments using a sequential quadratic programming (SQP) algorithm. In this study, we employed the optimization results derived from both the external temperature simulation and the experimental data described in Section 4. The optimized <italic>G</italic> for this model is constant, consistent with the state estimation framework, and all experiments were conducted under identical conditions.</p>
</sec>
<sec id="s3_3">
<label>3.3</label>
<title>Sensor estimator</title>
<p>The DOB-based sensor estimator predicts the states of sensors that cannot be measured directly. In this study, a virtual atmospheric temperature sensor was designed to verify the performance of the sensor estimator. Assuming a multi-sensor without an external conductive medium, all thermal disturbances originate externally. From <xref ref-type="disp-formula" rid="eq13">Equations 13</xref>, <xref ref-type="disp-formula" rid="eq14">14</xref> and <xref ref-type="disp-formula" rid="eq16">16</xref>, we obtain as shown in <xref ref-type="disp-formula" rid="eq19">Equation 19</xref>:</p>
<disp-formula id="eq19"><label>(19)</label>
<mml:math display="block" id="M19"><mml:mrow><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mn>4</mml:mn></mml:munderover><mml:msub><mml:mi>Q</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mn>4</mml:mn></mml:munderover><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>Thus, the estimated sensor output <inline-formula>
<mml:math display="inline" id="im77"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>s</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> from <xref ref-type="disp-formula" rid="eq6">Equation 6</xref> where designed:</p>
<disp-formula id="eq20"><label>(20)</label>
<mml:math display="block" id="M20"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>s</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mi>w</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>D</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:mi>a</mml:mi><mml:mtext>&#x2003;</mml:mtext><mml:mi>a</mml:mi><mml:mtext>&#x2003;</mml:mtext><mml:mi>a</mml:mi><mml:mtext>&#x2003;</mml:mtext><mml:mi>a</mml:mi><mml:mtext>&#x2003;</mml:mtext><mml:mi>b</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>04</mml:mn></mml:mrow></mml:msub><mml:mtext>&#x2003;</mml:mtext><mml:mi>b</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>14</mml:mn></mml:mrow></mml:msub><mml:mtext>&#x2003;</mml:mtext><mml:mi>b</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>24</mml:mn></mml:mrow></mml:msub><mml:mtext>&#x2003;</mml:mtext><mml:mi>b</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>34</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>a</mml:mi><mml:mo>=</mml:mo><mml:mn>0.25</mml:mn><mml:mo>,</mml:mo><mml:mtext>&#x2003;</mml:mtext><mml:mi>b</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mstyle displaystyle="true"><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mn>3</mml:mn></mml:munderover></mml:mstyle><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula>
<p>where the sensor model input vector <italic>w</italic>(<italic>t</italic>) in <xref ref-type="disp-formula" rid="eq20">Equation 20</xref> is defined as:</p>
<disp-formula id="eq21"><label>(21)</label>
<mml:math display="block" id="M21"><mml:mrow><mml:mi>w</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>y</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula>
<p>Therefore, from <xref ref-type="disp-formula" rid="eq21">Equation 21</xref> and the block diagram in <xref ref-type="fig" rid="f2"><bold>Figure 2</bold></xref>, the designed matrices <italic>F</italic><sub>3</sub> and <italic>F</italic><sub>4</sub> are defined in <xref ref-type="disp-formula" rid="eq22">Equation 22</xref>.</p>
<disp-formula id="eq22"><label>(22)</label>
<mml:math display="block" id="M22"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mi>F</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula>
</sec>
<sec id="s3_4">
<label>3.4</label>
<title>Parameter estimation</title>
<p>Parameter estimation was performed to determine the thermal conductance and heat capacity of the system. Although some thermal conductance <italic>g<sub>ij</sub></italic> and heat capacity <italic>c<sub>i</sub></italic> values can vary with atmospheric pressure, in this study, we assumed a constant linear system, considering that the DOB was designed to operate even with model uncertainties. The trust-region-reflective least-squares algorithm is commonly used for nonlinear optimization. This was employed for the estimation. The parameters obtained through the optimization process are listed in <xref ref-type="table" rid="T3"><bold>Table&#xa0;3</bold></xref>.</p>
<table-wrap id="T3" position="float">
<label>Table&#xa0;3</label>
<caption>
<p>List of estimated parameters.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="left">Parameter</th>
<th valign="middle" align="left">Value</th>
<th valign="middle" align="left">Unit</th>
<th valign="middle" align="left">Parameter</th>
<th valign="middle" align="left">Value</th>
<th valign="middle" align="left">Unit</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="center"><italic>c</italic><sub>0</sub></td>
<td valign="middle" align="left">1.28e+0</td>
<td valign="middle" align="left">Ws/K</td>
<td valign="middle" align="center"><italic>g</italic><sub>04</sub></td>
<td valign="middle" align="left">-2.63e-4</td>
<td valign="middle" align="left">W/K</td>
</tr>
<tr>
<td valign="middle" align="center"><italic>c</italic><sub>1</sub></td>
<td valign="middle" align="left">6.36e+1</td>
<td valign="middle" align="left">Ws/K</td>
<td valign="middle" align="center"><italic>g</italic><sub>12</sub></td>
<td valign="middle" align="left">-3.37e-2</td>
<td valign="middle" align="left">W/K</td>
</tr>
<tr>
<td valign="middle" align="center"><italic>c</italic><sub>2</sub></td>
<td valign="middle" align="left">1.85e+2</td>
<td valign="middle" align="left">Ws/K</td>
<td valign="middle" align="center"><italic>g</italic><sub>13</sub></td>
<td valign="middle" align="left">-7.38e-1</td>
<td valign="middle" align="left">W/K</td>
</tr>
<tr>
<td valign="middle" align="center"><italic>c</italic><sub>3</sub></td>
<td valign="middle" align="left">3.81e+2</td>
<td valign="middle" align="left">Ws/K</td>
<td valign="middle" align="center"><italic>g</italic><sub>14</sub></td>
<td valign="middle" align="left">-7.28e-3</td>
<td valign="middle" align="left">W/K</td>
</tr>
<tr>
<td valign="middle" align="center"><italic>g</italic><sub>01</sub></td>
<td valign="middle" align="left">-3.72e-2</td>
<td valign="middle" align="left">W/K</td>
<td valign="middle" align="center"><italic>g</italic><sub>23</sub></td>
<td valign="middle" align="left">-2.09e-1</td>
<td valign="middle" align="left">W/K</td>
</tr>
<tr>
<td valign="middle" align="center"><italic>g</italic><sub>02</sub></td>
<td valign="middle" align="left">-3.18e-3</td>
<td valign="middle" align="left">W/K</td>
<td valign="middle" align="center"><italic>g</italic><sub>24</sub></td>
<td valign="middle" align="left">-2.00e-2</td>
<td valign="middle" align="left">W/K</td>
</tr>
<tr>
<td valign="middle" align="center"><italic>g</italic><sub>03</sub></td>
<td valign="middle" align="left">-9.48e-3</td>
<td valign="middle" align="left">W/K</td>
<td valign="middle" align="center"><italic>g</italic><sub>34</sub></td>
<td valign="middle" align="left">-8.63e-2</td>
<td valign="middle" align="left">W/K</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The simulation process was based on a point-mass model capable of simulating nonlinear variations in the drag and mass. Using the mission settings specified in <xref ref-type="table" rid="T4"><bold>Table&#xa0;4</bold></xref>, we simulated the UAV trajectories as shown in <xref ref-type="fig" rid="f4"><bold>Figure&#xa0;4</bold></xref>.</p>
<table-wrap id="T4" position="float">
<label>Table&#xa0;4</label>
<caption>
<p>Scenario configurations for UAV missions.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="center">Configuration</th>
<th valign="middle" align="right">Scenario I</th>
<th valign="middle" align="right">Scenario II</th>
<th valign="middle" align="left">Unit</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="center">Maximum altitude</td>
<td valign="middle" align="right">30.0</td>
<td valign="middle" align="right">10.0</td>
<td valign="middle" align="left">km</td>
</tr>
<tr>
<td valign="middle" align="center">Winged flight altitude</td>
<td valign="middle" align="right">8.5</td>
<td valign="middle" align="right">8.5</td>
<td valign="middle" align="left">km</td>
</tr>
<tr>
<td valign="middle" align="center">Ballistic flight time</td>
<td valign="middle" align="right">120.0</td>
<td valign="middle" align="right">80.0</td>
<td valign="middle" align="left">s</td>
</tr>
<tr>
<td valign="middle" align="center">Total flight time</td>
<td valign="middle" align="right">1200.0</td>
<td valign="middle" align="right">1500.0</td>
<td valign="middle" align="left">s</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="f4" position="float">
<label>Figure&#xa0;4</label>
<caption>
<p>AV trajectories. Legend labels <bold>(a)</bold> and <bold>(b)</bold> denote Scenario I and II, respectively.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-12-1671083-g004.tif">
<alt-text content-type="machine-generated">A 3D graph shows altitude versus longitude and latitude in kilometers. It includes two types of lines: solid red and blue, and dashed red and blue. The legend indicates conditions for each line type, with blue and red representing times greater and less than specific seconds. The lines form spirals and peaks, illustrating different data sets in a spatial context.</alt-text>
</graphic>
</fig>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Simulation and experiment</title>
<sec id="s4_1">
<label>4.1</label>
<title>Simulation</title>
<p>To evaluate the proposed system, we established a series of real mission scenarios for the multi-sensor system, simulating temperature and pressure conditions. The UAV-attached sensor rapidly increases to its maximum altitude via rocket propulsion. After attaining the maximum altitude, the UAV deploys its wings and transitions to gliding after it attains the winged flight altitude. This continues until the ballistic flight time ends and then decreases during the total flight time. Each scenario varied in terms of the maximum altitude attained and descent speed. The results are listed in <xref ref-type="table" rid="T4"><bold>Table&#xa0;4</bold></xref>.</p>
<p>Using the mission settings specified in <xref ref-type="table" rid="T4"><bold>Table&#xa0;4</bold></xref>, we simulated the UAV trajectories as shown in <xref ref-type="fig" rid="f4"><bold>Figure&#xa0;4</bold></xref>. The trajectories were generated with a point-mass profile generator capable of simulating nonlinear variations in drag and mass, implemented within a MATLAB/Simulink based simulation model reused from our prior works. The dynamic model comprises a 6-DOF ECEF rigid-body with gravity, ground, mass, wind/atmosphere (ISA), and NED model based controller blocks; propulsion and airframe submodels for rocket booster ascent and turbojet/UAV flight with aerodynamics; and actuator subsystems for servo and gimbal. We did not modify the governing equations for this study and only adjusted the scenario parameters to match <xref ref-type="table" rid="T4"><bold>Table&#xa0;4</bold></xref>. Full details of the simulation and settings are provided in <xref ref-type="bibr" rid="B13">Kim et&#xa0;al (2024</xref>, <xref ref-type="bibr" rid="B12">2025)</xref>.</p>
<p>Using the international standard atmosphere model, we converted the altitude variations over time into corresponding temperature and pressure variations, as illustrated in <xref ref-type="fig" rid="f5"><bold>Figure&#xa0;5</bold></xref>. The temperature and pressure data for each scenario derived from these simulations served as the basis for setting the conditions for the subsequent experiments, enabling rigorous and realistic performance testing of the sensor system.</p>
<fig id="f5" position="float">
<label>Figure&#xa0;5</label>
<caption>
<p>Simulation results. Legend labels <bold>(a)</bold> and <bold>(b)</bold> denote Scenario I and II, respectively.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-12-1671083-g005.tif">
<alt-text content-type="machine-generated">Graph depicting altitude, temperature, and pressure over time. Solid lines (a) represent altitude (black), temperature (red), and pressure (blue), while dashed lines (b) show the same variables. Altitude and temperature are on the left y-axis in kilometers and degrees Celsius, and pressure is on the right y-axis in kilopascals. Time is on the x-axis in seconds. The data shows varied trends over 1500 seconds.</alt-text>
</graphic>
</fig>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Experiment</title>
<p>We conducted experiments according to these steps to accurately implement the temperature and pressure variations set by the simulation and compared them with those of the reference sensor. We used the given (a) scenario I and (b) scenario II to set up the experimental environment by utilizing the high-altitude test chamber configured in <xref ref-type="fig" rid="f6"><bold>Figure&#xa0;6</bold></xref>. Temperature and pressure were controlled in a vacuum chamber.</p>
<fig id="f6" position="float">
<label>Figure&#xa0;6</label>
<caption>
<p>Experimental configuration.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-12-1671083-g006.tif">
<alt-text content-type="machine-generated">An altitude environmental test chamber showing its interior mechanisms is pictured. The metal compartment contains multiple electronic components and wiring. Next to the chamber is a control panel with a screen and several buttons. Red arrows highlight the sensor system and reference sensor. Yellow arrows point to elements on the control panel and inside the chamber. The surrounding room is partially visible.</alt-text>
</graphic>
</fig>
<p>However, owing to the limitations of the experimental apparatus, the accurate replication of the experimental environment is challenging. Therefore, the scenarios were restructured as follows: Test I, Test II, and Test III to adjust the time required to attain the target temperature. Each test followed the step-by-step target temperature and pressure of the underlying scenario, although marginally different times were required to attain the targets.</p>
<p>The experiments were performed three times to detect the disturbances caused by internal heat generation and compare the performance of the sensor estimator. Specifically, in Test III, arbitrary disturbances were introduced to include temperature variations from the internal heater, external temperature variations, and pressure variations derived from a modification of Test I. The resulting variations in temperature, pressure, and heater operation <inline-formula>
<mml:math display="inline" id="im78"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>Q</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover><mml:mi>o</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#xa0;</mml:mo></mml:mrow></mml:math></inline-formula>in Test III are detailed in the Results and Evaluation section.</p>
<p>The experimental setup included a shelf for mounting the multi-sensor and a reference sensor that measured atmospheric temperature. According to the simulation, the temperature and pressure varied from over 20&#xb0;C to &#x2212;40&#xb0;C and from 100kPa to 20kPa within 1min. The chamber was cooled to the target temperature and experiments were conducted after installing the multi-sensor. This is illustrated in <xref ref-type="fig" rid="f7"><bold>Figure&#xa0;7</bold></xref>. These adjustments caused differences in the target temperature, pressure, and timing compared with the original scenario. However, these variations can be detected by a DOB, which is designed to detect abrupt variations in the environment. This highlights the accuracy of sensor estimation and demonstrates the robustness of the system.</p>
<fig id="f7" position="float">
<label>Figure&#xa0;7</label>
<caption>
<p>Experimental process flowchart.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-12-1671083-g007.tif">
<alt-text content-type="machine-generated">Flowchart depicting a testing process starting with a check if Test I is complete. If not, configure for Test I at negative forty degrees Celsius. If complete, proceed to Test II and if not complete, configure for Test II at negative sixty degrees Celsius. Measure T4, and if T4 is not less than Th, loop back. If T4 is less, perform the test, input data d(t), and check if the test is complete. If any test is incomplete, loop back to the respective starting point. If complete, the process ends.</alt-text>
</graphic>
</fig>
</sec>
</sec>
<sec id="s5" sec-type="results">
<label>5</label>
<title>Results and discussion</title>
<p>We evaluate the approach in a thermal-vacuum chamber that replicates rapid ground-to-stratosphere transients (Section 4).</p>
<p>The experimental setup involved monitoring the internal temperature variations within the multi-sensor using <italic>T</italic><sub>3</sub>(<italic>t</italic>) (a temperature sensor mounted on the internal surface) and the atmospheric temperature using <italic>T</italic><sub>4</sub>(<italic>t</italic>) (an external reference sensor). The test results, including the pressure variations, are shown graphically in <xref ref-type="fig" rid="f8"><bold>Figures&#xa0;8a, c, e</bold></xref>. Using the collected data, the estimated sensor output <inline-formula>
<mml:math display="inline" id="im79"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>s</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> and the measured temperatures <italic>T</italic><sub>3</sub>(<italic>t</italic>) and <italic>T</italic><sub>4</sub>(<italic>t</italic>) were compared, as shown in <xref ref-type="fig" rid="f8"><bold>Figures&#xa0;8b, d, f</bold></xref>. To evaluate the accuracy of the estimated temperatures, <italic>T</italic><sub>3</sub>(<italic>t</italic>) was selected to represent the atmospheric temperature and it was compared with the reference value <italic>T</italic><sub>4</sub>(<italic>t</italic>) and the estimated sensor output <inline-formula>
<mml:math display="inline" id="im80"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>s</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>. This is illustrated in <xref ref-type="fig" rid="f9"><bold>Figure&#xa0;9</bold></xref>.</p>
<fig id="f8" position="float">
<label>Figure&#xa0;8</label>
<caption>
<p>Experimental results: <bold>(a)</bold> Test I, <bold>(c)</bold> Test II, <bold>(e)</bold> Test III; atmospheric-temperature estimates versus sensor readings: <bold>(b)</bold> Test I, <bold>(d)</bold> Test II, <bold>(f)</bold> Test III.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-12-1671083-g008.tif">
<alt-text content-type="machine-generated">Six graphs illustrate temperature and pressure changes over time, marked by a transition to winged flight indicated with arrows and lines. Graphs (a), (c), and (e) display multiple temperature lines and pressure, while (b), (d), and (f) depict specific temperature variables, all showing variations at the transition point. Temperature is measured in degrees Celsius and pressure in kilopascals over time in seconds.</alt-text>
</graphic>
</fig>
<fig id="f9" position="float">
<label>Figure&#xa0;9</label>
<caption>
<p>Comparative analysis of the reference and estimation result.</p>
</caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fmars-12-1671083-g009.tif">
<alt-text content-type="machine-generated">Scatter plot showing estimations \( \hat{y}_s(t) \) in degrees Celsius on the vertical axis against reference sensor \( T_4 \) on the horizontal axis. Blue circles and green crosses represent data points with two fitted lines: a red line (\( y = 1.17x - 0.66 \), \( R^2 = 0.76 \)) and a green line (\( y = -0.04x + 3.72 \), \( R^2 = 0.02 \)).</alt-text>
</graphic>
</fig>
<p>The experimental results and linear-regression analyses demonstrate that the DOB approach can greatly improve the accuracy of atmospheric-temperature estimation when using a surface-mounted sensor. When only the surface-mounted sensor <italic>T</italic><sub>3</sub>(<italic>t</italic>) was used, the estimation produced an <italic>R</italic><sup>2</sup> of 0.02, showing a weak correlation with the reference <italic>T</italic><sub>4</sub>(<italic>t</italic>). This finding highlights the inadequacy of relying on <italic>T</italic><sub>3</sub>(<italic>t</italic>) alone for accurate temperature measurement. After the DOB was incorporated, the <italic>R</italic><sup>2</sup> improved to 0.76, indicating increased correlation between the estimated and actual atmospheric temperatures, as high <italic>R</italic><sup>2</sup> values have been shown to reflect good sensor performance (<xref ref-type="bibr" rid="B25">Yeom, 2021</xref>). The regression coefficient likewise increased from -0.04 to 1.17, confirming that the estimation shifted from a statistically non-significant to a significant level.</p>
<p>To illustrate the performance improvements, <xref ref-type="table" rid="T5"><bold>Table&#xa0;5</bold></xref> presents a detailed comparison of the measurement and estimation errors for Test I-III together with their average (AVG) values. It presents the maximum error (MAX), mean error (MEAN), minimum error (MIN), and root mean square error (RMSE) calculated for errors <inline-formula>
<mml:math display="inline" id="im89"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula>
<mml:math display="inline" id="im90"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>s</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>, which are the differences between <italic>T</italic><sub>3</sub>(<italic>t</italic>), <inline-formula>
<mml:math display="inline" id="im91"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>s</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> and the reference <italic>T</italic><sub>4</sub>(<italic>t</italic>), respectively. Errors <inline-formula>
<mml:math display="inline" id="im92"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mrow><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>&#xa0;</mml:mo></mml:mrow></mml:math></inline-formula>and <inline-formula>
<mml:math display="inline" id="im93"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mrow><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>&#xa0;</mml:mo></mml:mrow></mml:math></inline-formula>occur at each time step <italic>z</italic> and are defined in <xref ref-type="disp-formula" rid="eq23">Equation 23</xref>:</p>
<table-wrap id="T5" position="float">
<label>Table&#xa0;5</label>
<caption>
<p>Measurement and estimation errors (all values in &#xb0;C).</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" rowspan="2" align="center">Error metric</th>
<th valign="middle" colspan="2" align="center">Test I</th>
<th valign="middle" colspan="2" align="center">Test II</th>
<th valign="middle" colspan="2" align="center">Test III</th>
<th valign="middle" colspan="2" align="center">AVG</th>
</tr>
<tr>
<th valign="middle" align="right"><inline-formula>
<mml:math display="inline" id="im81"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></th>
<th valign="middle" align="right"><inline-formula>
<mml:math display="inline" id="im82"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></th>
<th valign="middle" align="right"><inline-formula>
<mml:math display="inline" id="im83"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></th>
<th valign="middle" align="right"><inline-formula>
<mml:math display="inline" id="im84"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></th>
<th valign="middle" align="right"><inline-formula>
<mml:math display="inline" id="im85"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></th>
<th valign="middle" align="right"><inline-formula>
<mml:math display="inline" id="im86"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></th>
<th valign="middle" align="right"><inline-formula>
<mml:math display="inline" id="im87"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></th>
<th valign="middle" align="right"><inline-formula>
<mml:math display="inline" id="im88"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="left">MAX</td>
<td valign="middle" align="right">23.26</td>
<td valign="middle" align="right">28.50</td>
<td valign="middle" align="right">11.64</td>
<td valign="middle" align="right">59.02</td>
<td valign="middle" align="right">15.51</td>
<td valign="middle" align="right">42.25</td>
<td valign="middle" align="right">16.80</td>
<td valign="middle" align="right">43.26</td>
</tr>
<tr>
<td valign="middle" align="left">MEAN</td>
<td valign="middle" align="right">-20.71</td>
<td valign="middle" align="right">5.27</td>
<td valign="middle" align="right">-4.52</td>
<td valign="middle" align="right">-4.13</td>
<td valign="middle" align="right">-14.51</td>
<td valign="middle" align="right">4.15</td>
<td valign="middle" align="right">-13.24</td>
<td valign="middle" align="right">1.76</td>
</tr>
<tr>
<td valign="middle" align="left">MIN</td>
<td valign="middle" align="right">-67.89</td>
<td valign="middle" align="right">-57.85</td>
<td valign="middle" align="right">-86.70</td>
<td valign="middle" align="right">-116.08</td>
<td valign="middle" align="right">-45.57</td>
<td valign="middle" align="right">-24.12</td>
<td valign="middle" align="right">-66.72</td>
<td valign="middle" align="right">-66.02</td>
</tr>
<tr>
<td valign="middle" align="left">RMSE</td>
<td valign="middle" align="right">36.45</td>
<td valign="middle" align="right">12.41</td>
<td valign="middle" align="right">24.40</td>
<td valign="middle" align="right">24.51</td>
<td valign="middle" align="right">25.15</td>
<td valign="middle" align="right">10.36</td>
<td valign="middle" align="right">28.67</td>
<td valign="middle" align="right">15.76</td>
</tr>
</tbody>
</table>
</table-wrap>
<disp-formula id="eq23"><label>(23)</label>
<mml:math display="block" id="M23"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mrow><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mrow><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula>
<p>The errors are calculated in <xref ref-type="disp-formula" rid="eq24">Equation 24</xref> as follows:</p>
<disp-formula id="eq24"><label>(24)</label>
<mml:math display="block" id="M24"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>M</mml:mi><mml:mi>A</mml:mi><mml:mi>X</mml:mi><mml:mo>=</mml:mo><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>x</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x2003;</mml:mtext><mml:mi>M</mml:mi><mml:mi>E</mml:mi><mml:mi>A</mml:mi><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mi>l</mml:mi></mml:mfrac><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>l</mml:mi></mml:munderover><mml:msub><mml:mi>e</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mtext>&#x2003;</mml:mtext></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>M</mml:mi><mml:mi>I</mml:mi><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x2003;</mml:mtext><mml:mi>R</mml:mi><mml:mi>M</mml:mi><mml:mi>S</mml:mi><mml:mi>E</mml:mi><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mi>l</mml:mi></mml:mfrac><mml:mstyle displaystyle="true"><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>l</mml:mi></mml:munderover></mml:mstyle><mml:msubsup><mml:mi>e</mml:mi><mml:mi>z</mml:mi><mml:mn>2</mml:mn></mml:msubsup><mml:mtext>&#x2003;</mml:mtext></mml:mrow></mml:msqrt></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula>
<p>where <inline-formula>
<mml:math display="inline" id="im94"><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mrow><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mrow><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> represents the error and <inline-formula>
<mml:math display="inline" id="im95"><mml:mi>l</mml:mi></mml:math></inline-formula> is the total number of data points.</p>
<p>RMSE is a critical indicator of the estimation accuracy. It improved significantly from 28.67 for <inline-formula>
<mml:math display="inline" id="im96"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> to 15.76 for <inline-formula>
<mml:math display="inline" id="im97"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mi>s</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>. This significant reduction in RMSE emphasizes the efficacy of the DOB with the sensor estimator in providing more precise temperature readings. Further analysis of the error metrics revealed that MAX, MEAN, and MIN improved significantly. For example, the average mean error for <inline-formula>
<mml:math display="inline" id="im98"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>T</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> was -13.24, whereas it reduced significantly to 1.76 for <inline-formula>
<mml:math display="inline" id="im99"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>y</mml:mi><mml:mo>&#x2dc;</mml:mo></mml:mover><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. However, the maximum error average increased from 16.80&#xb0;C to 43.26&#xb0;C, and the minimum error average improved from &#x2212;66.72&#xb0;C to &#x2212;66.02&#xb0;C. The improvements in MAX and MIN were smaller than those in the other two metrics. This phenomenon can be attributed to the setting of the initial state variables of the observer to zero. As shown in <xref ref-type="fig" rid="f8"><bold>Figure&#xa0;8f</bold></xref>, where the initial temperature <italic>T</italic><sub>4</sub>(0) is near zero, the MAX and MIN values are closer to zero than those in <xref ref-type="fig" rid="f8"><bold>Figures&#xa0;8b, d</bold></xref>, where the <italic>T</italic><sub>4</sub>(0) values are below &#x2212;40&#xb0;C.</p>
<p>For reference, all nomenclature and estimated values used in this paper are listed in <xref ref-type="table" rid="T6"><bold>Table&#xa0;6</bold></xref>.</p>
<table-wrap id="T6" position="float">
<label>Table&#xa0;6</label>
<caption>
<p>List of nomenclatures.</p>
</caption>
<table frame="hsides">
<thead>
<tr>
<th valign="middle" align="left">Nomenclatures</th>
<th valign="middle" align="left">Definition</th>
<th valign="middle" align="right">Unit</th>
<th valign="middle" align="center">Value</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="left"><italic>A</italic></td>
<td valign="middle" align="left">State matrix of the plant model</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>A<sub>s</sub></italic></td>
<td valign="middle" align="left">State matrix of the sensor model</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>B</italic></td>
<td valign="middle" align="left">Input matrix of the plant model</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>B<sub>d</sub></italic></td>
<td valign="middle" align="left">Disturbance input matrix of the plant model</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>B<sub>s</sub></italic></td>
<td valign="middle" align="left">Input matrix of the sensor model</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>C</italic></td>
<td valign="middle" align="left">Output matrix of the plant model</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>C<sub>s</sub></italic></td>
<td valign="middle" align="left">Output matrix of the sensor model</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>D<sub>s</sub></italic></td>
<td valign="middle" align="left">The feedthrough matrix of the sensor model</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>w</italic></td>
<td valign="middle" align="left">Input vector in the sensor model</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>v</italic></td>
<td valign="middle" align="left">Estimated state for control target</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>d</italic></td>
<td valign="middle" align="left">Disturbance input vector in the plant model</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>u</italic></td>
<td valign="middle" align="left">Control input to the plant model</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>F</italic><sub>1</sub></td>
<td valign="middle" align="left">Designed matrix for <italic>w</italic>(<italic>t</italic>) in <italic>v</italic>(<italic>t</italic>)</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>F</italic><sub>2</sub></td>
<td valign="middle" align="left">Designed matrix for <inline-formula>
<mml:math display="inline" id="im100"><mml:mrow><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#xa0;</mml:mo></mml:mrow></mml:math></inline-formula>in <italic>u</italic>(<italic>t</italic>)</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>F</italic><sub>3</sub></td>
<td valign="middle" align="left">Designed matrix for <inline-formula>
<mml:math display="inline" id="im101"><mml:mrow><mml:mover accent="true"><mml:mi>d</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#xa0;</mml:mo></mml:mrow></mml:math></inline-formula> in <italic>w</italic>(<italic>t</italic>)</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>F</italic><sub>4</sub></td>
<td valign="middle" align="left">Designed matrix for <italic>y</italic>(<italic>t</italic>) in <italic>w</italic>(<italic>t</italic>)</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>e</italic></td>
<td valign="middle" align="left">Error vector in the controller</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>K<sub>d</sub></italic></td>
<td valign="middle" align="left">Controller gain matrix for <inline-formula>
<mml:math display="inline" id="im102"><mml:mrow><mml:mover><mml:mi>e</mml:mi><mml:mo>&#xa8;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula></td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>K<sub>p</sub></italic></td>
<td valign="middle" align="left">Controller gain matrix for <inline-formula>
<mml:math display="inline" id="im103"><mml:mover accent="true"><mml:mi>e</mml:mi><mml:mo>&#x2d9;</mml:mo></mml:mover></mml:math></inline-formula></td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>K<sub>i</sub></italic></td>
<td valign="middle" align="left">Controller gain matrix for <italic>e</italic></td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>G</italic></td>
<td valign="middle" align="left">Matrix value of transfer function of the DOB</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>Q<sub>c</sub></italic></td>
<td valign="middle" align="left">Electric heater power output in controller</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>Q<sub>i</sub></italic></td>
<td valign="middle" align="left">Total heat transfer rate of <italic>i<sup>th</sup></italic> component</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>R</italic>2</td>
<td valign="middle" align="left">Coefficient of determination</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>T<sub>h</sub></italic></td>
<td valign="middle" align="left">The threshold temperature for starting the test</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>T<sub>i</sub></italic></td>
<td valign="middle" align="left">Temperature of <italic>i</italic><sup>th</sup> component</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>T</italic><sub>0</sub></td>
<td valign="middle" align="left">Temperature of the heater</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>T</italic><sub>1</sub></td>
<td valign="middle" align="left">Temperature of the mainboard</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>T</italic><sub>2</sub></td>
<td valign="middle" align="left">Temperature of the enclosed air</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>T</italic><sub>3</sub></td>
<td valign="middle" align="left">Temperature of the surface</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>T</italic><sub>4</sub></td>
<td valign="middle" align="left">Temperature of the atmosphere</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>c<sub>i</sub></italic></td>
<td valign="middle" align="left">Heat capacity of <italic>i</italic><sup>th</sup> component</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>I</italic></td>
<td valign="middle" align="left">Total number of data points</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>n</italic></td>
<td valign="middle" align="left">Measurement noise vector in the sensor model</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>r</italic></td>
<td valign="middle" align="left">Reference vector in the controller</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>x</italic></td>
<td valign="middle" align="left">State vector in the plant model</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>x<sub>s</sub></italic></td>
<td valign="middle" align="left">State vector in the sensor model</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>y</italic></td>
<td valign="middle" align="left">Output vector in the plant model</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>ys</italic></td>
<td valign="middle" align="left">Output vector in the sensor model</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>z</italic></td>
<td valign="middle" align="left">Time step in the data points</td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>ez</italic></td>
<td valign="middle" align="left">Error value at each time step <italic>z</italic></td>
<td valign="middle" align="right">&#x2013;</td>
<td valign="middle" align="left">&#x2013;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>g</italic><sub>01</sub></td>
<td valign="middle" align="left">Heater to mainboard conductance</td>
<td valign="middle" align="left">-3.72e-2</td>
<td valign="middle" align="left"><italic>W/K</italic></td>
</tr>
<tr>
<td valign="middle" align="left"><italic>g</italic><sub>02</sub></td>
<td valign="middle" align="left">Heater to enclosed air conductance</td>
<td valign="middle" align="left">-3.18e-3</td>
<td valign="middle" align="left">&#x201d;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>g</italic><sub>03</sub></td>
<td valign="middle" align="left">Heater to the surface conductance</td>
<td valign="middle" align="left">-9.48e-3</td>
<td valign="middle" align="left">&#x201d;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>g</italic><sub>04</sub></td>
<td valign="middle" align="left">Heater to the atmosphere conductance</td>
<td valign="middle" align="left">-2.63e-4</td>
<td valign="middle" align="left">&#x201d;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>g</italic><sub>12</sub></td>
<td valign="middle" align="left">Mainboard to the enclosed air conductance</td>
<td valign="middle" align="left">-3.37e-2</td>
<td valign="middle" align="left">&#x201d;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>g</italic><sub>13</sub></td>
<td valign="middle" align="left">Mainboard to the surface conductance</td>
<td valign="middle" align="left">-7.38e-1</td>
<td valign="middle" align="left">&#x201d;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>g</italic><sub>14</sub></td>
<td valign="middle" align="left">Mainboard to the atmosphere conductance</td>
<td valign="middle" align="left">-7.28e-3</td>
<td valign="middle" align="left">&#x201d;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>g</italic><sub>23</sub></td>
<td valign="middle" align="left">Enclosed air to the surface conductance</td>
<td valign="middle" align="left">-2.09e-1</td>
<td valign="middle" align="left">&#x201d;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>g</italic><sub>24</sub></td>
<td valign="middle" align="left">Enclosed air to the atmosphere conductance</td>
<td valign="middle" align="left">-2.00e-2</td>
<td valign="middle" align="left">&#x201d;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>g</italic><sub>34</sub></td>
<td valign="middle" align="left">Surface to the atmosphere conductance</td>
<td valign="middle" align="left">-8.63e-2</td>
<td valign="middle" align="left">&#x201d;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>c</italic><sub>0</sub></td>
<td valign="middle" align="left">Heat capacity of the heater</td>
<td valign="middle" align="left">1.28e+0</td>
<td valign="middle" align="left"><italic>Ws/K</italic></td>
</tr>
<tr>
<td valign="middle" align="left"><italic>c</italic><sub>1</sub></td>
<td valign="middle" align="left">Heat capacity of the mainboard</td>
<td valign="middle" align="left">6.36e+1</td>
<td valign="middle" align="left">&#x201d;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>c</italic><sub>2</sub></td>
<td valign="middle" align="left">Heat capacity of the enclosed air</td>
<td valign="middle" align="left">1.85e+2</td>
<td valign="middle" align="left">&#x201d;</td>
</tr>
<tr>
<td valign="middle" align="left"><italic>c</italic><sub>3</sub></td>
<td valign="middle" align="left">Heat capacity of the surface</td>
<td valign="middle" align="left">3.81e+2</td>
<td valign="middle" align="left">&#x201d;</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s6" sec-type="conclusions">
<label>6</label>
<title>Conclusion</title>
<p>In this study, we presented a novel approach for enhancing the sensor accuracy in mobile multi-sensor systems for atmospheric monitoring. By integrating the DOB with sensor estimators, we demonstrated accurate atmospheric temperature prediction using only temperature sensors. This validation was achieved through rigorous experiments utilizing a DOB to compensate for internal and external disturbances. The experimental results revealed that the <italic>R</italic><sup>2</sup> value significantly improved from 0.02 to 0.76 with the DOB and sensor estimators, indicating a substantial enhancement in prediction accuracy. These values are comparable to those reported for prior methods summarized in <xref ref-type="table" rid="T1"><bold>Table&#xa0;1</bold></xref>, indicating a correlation sufficient for practical use of the estimated temperature. Excluding cases where the reference sensor is co-located within the same vehicle, this performance is broadly comparable to typical estimation results reported in the literature. Considering the rapid external temperature transients and the ultralight, low-cost sensor suite used here, the result is particularly encouraging for mobile platform deployments.</p>
<p>Beyond temperature, the same disturbance-aware architecture can be extended to humidity, particulate-matter, and trace-gas sensors, providing a pathway toward fully compensated multi-parameter payloads for high-resolution air-sea flux studies. Because the method operates on-board and requires no external calibration hardware, it is well suited to the strict mass-and-power budgets of small UAVs and other mobile platforms.</p>
<p>An additional consideration is sensor corruption or failure. While the present study intentionally focused on redundancy-free operation to establish a baseline, when multiple co-located sensors are available, cross-estimation among them can be used to flag abnormal readings and maintain robustness. With <italic>n</italic> sensors, there are 2<italic><sup>n</sup></italic> &#x2212; 2 valid subsets of the remaining sensors (excluding the empty set and the full set). For each subset, the sensor-estimation method presented in this study can be applied to generate an independent cross-estimate of the target sensor, and statistical comparison with the actual measurement enables the detection of persistent anomalies. Within the chamber setting reported here, random noise and sporadic dropouts are already mitigated by the DOB itself, while persistent bias would require such redundancy-based cross-estimation. Practical implementations could further combine covariance-based residual checks with a simple decision layer to exclude a suspected sensor and preserve reliable operation. This positions the present work as a foundation for future extensions toward redundancy-aware sensing frameworks.</p>
<p>Future work will focus on flight campaigns over coastal and open-ocean regions. These missions will validate the payload under real atmospheric dynamics, assess long-term stability, and explore the integration of additional sensing channels. Ultimately, we expect that disturbance-aware profiling systems will expand the spatial reach and data quality of coupled atmosphere-ocean observations, supporting both scientific research and operational environmental monitoring.</p>
</sec>
</body>
<back>
<sec id="s7" sec-type="data-availability">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/supplementary material. Further inquiries can be directed to the corresponding author.</p></sec>
<sec id="s8" sec-type="author-contributions">
<title>Author contributions</title>
<p>SK: Conceptualization, Writing &#x2013; original draft, Writing &#x2013; review &amp; editing. AT: Writing &#x2013; review &amp; editing. SJ: Funding acquisition, Supervision, Writing &#x2013; review &amp; editing.</p></sec>
<sec id="s10" sec-type="COI-statement">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p></sec>
<sec id="s11" sec-type="ai-statement">
<title>Generative AI statement</title>
<p>The author(s) declare that no Generative AI was used in the creation of this manuscript.</p>
<p>Any alternative text (alt text) provided alongside figures in this article has been generated by Frontiers with the support of artificial intelligence and reasonable efforts have been made to ensure accuracy, including review by the authors wherever possible. If you identify any issues, please contact us.</p></sec>
<sec id="s12" sec-type="disclaimer">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p></sec>
<ref-list>
<title>References</title>
<ref id="B1">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Ali</surname> <given-names>S.</given-names></name>
<name><surname>Glass</surname> <given-names>T.</given-names></name>
<name><surname>Parr</surname> <given-names>B.</given-names></name>
<name><surname>Potgieter</surname> <given-names>J.</given-names></name>
<name><surname>Alam</surname> <given-names>F.</given-names></name>
</person-group> (<year>2021</year>). 
<article-title>Low cost sensor with iot lorawan connectivity and machine learning-based calibration for air pollution monitoring</article-title>. <source>IEEE Trans. Instrumentation Measurement</source> <volume>70</volume>, <fpage>1</fpage>&#x2013;<lpage>11</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1109/tim.2020.3034109</pub-id>
</mixed-citation>
</ref>
<ref id="B2">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Allka</surname> <given-names>X.</given-names></name>
<name><surname>Ferrer-Cid</surname> <given-names>P.</given-names></name>
<name><surname>Barcelo-Ordinas</surname> <given-names>J. M.</given-names></name>
<name><surname>Garcia-Vidal</surname> <given-names>J.</given-names></name>
</person-group> (<year>2023</year>). 
<article-title>Temporal pattern-based denoising and calibration for low-cost sensors in iot monitoring platforms</article-title>. <source>IEEE Trans. Instrumentation Measurement</source> <volume>72</volume>, <fpage>1</fpage>&#x2013;<lpage>11</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1109/tim.2023.3239626</pub-id>
</mixed-citation>
</ref>
<ref id="B3">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Chen</surname> <given-names>W.-H.</given-names></name>
<name><surname>Yang</surname> <given-names>J.</given-names></name>
<name><surname>Guo</surname> <given-names>L.</given-names></name>
<name><surname>Li</surname> <given-names>S.</given-names></name>
</person-group> (<year>2016</year>). 
<article-title>Disturbance-observer-based control and related methods&#x2014;an overview</article-title>. <source>IEEE Trans. Ind. Electron.</source> <volume>63</volume>, <fpage>1083</fpage>&#x2013;<lpage>1095</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1109/tie.2015.2478397</pub-id>
</mixed-citation>
</ref>
<ref id="B4">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Chen</surname> <given-names>Z.</given-names></name>
<name><surname>Zhang</surname> <given-names>T.</given-names></name>
<name><surname>Chen</surname> <given-names>Z.</given-names></name>
<name><surname>Xiang</surname> <given-names>Y.</given-names></name>
<name><surname>Xuan</surname> <given-names>Q.</given-names></name>
<name><surname>Dick</surname> <given-names>R. P.</given-names></name>
</person-group> (<year>2021</year>). 
<article-title>Hvaq: A high-resolution vision-based air quality dataset</article-title>. <source>IEEE Trans. Instrumentation Measurement</source> <volume>70</volume>, <fpage>1</fpage>&#x2013;<lpage>10</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1109/tim.2021.3104415</pub-id>
</mixed-citation>
</ref>
<ref id="B5">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Concas</surname> <given-names>F.</given-names></name>
<name><surname>Mineraud</surname> <given-names>J.</given-names></name>
<name><surname>Lagerspetz</surname> <given-names>E.</given-names></name>
<name><surname>Varjonen</surname> <given-names>S.</given-names></name>
<name><surname>Liu</surname> <given-names>X.</given-names></name>
<name><surname>Puolam&#xe4;ki</surname> <given-names>K.</given-names></name>
<etal/>
</person-group>. (<year>2021</year>). 
<article-title>Low-cost outdoor air quality monitoring and sensor calibration: A survey and critical analysis</article-title>. <source>ACM Trans. Sensor Networks</source> <volume>17</volume>, <fpage>1</fpage>&#x2013;<lpage>44</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1145/3446005</pub-id>
</mixed-citation>
</ref>
<ref id="B6">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Daoud</surname> <given-names>S.</given-names></name>
<name><surname>Mdhaffar</surname> <given-names>A.</given-names></name>
<name><surname>Jmaiel</surname> <given-names>M.</given-names></name>
<name><surname>Freisleben</surname> <given-names>B.</given-names></name>
</person-group> (<year>2020</year>). 
<article-title>Q-rank: Reinforcement learning for recommending algorithms to predict drug sensitivity to cancer therapy</article-title>. <source>IEEE J. Biomed. Health Inf.</source> <volume>24</volume>, <fpage>3154</fpage>&#x2013;<lpage>3161</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1109/jbhi.2020.3004663</pub-id>, PMID: <pub-id pub-id-type="pmid">32750950</pub-id>
</mixed-citation>
</ref>
<ref id="B7">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Fekih</surname> <given-names>M. A.</given-names></name>
<name><surname>Bechkit</surname> <given-names>W.</given-names></name>
<name><surname>Rivano</surname> <given-names>H.</given-names></name>
<name><surname>Dahan</surname> <given-names>M.</given-names></name>
<name><surname>Renard</surname> <given-names>F.</given-names></name>
<name><surname>Alonso</surname> <given-names>L.</given-names></name>
<etal/>
</person-group>. (<year>2021</year>). 
<article-title>Participatory air quality and urban heat islands monitoring system</article-title>. <source>IEEE Trans. Instrumentation Measurement</source> <volume>70</volume>, <fpage>1</fpage>&#x2013;<lpage>14</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1109/tim.2020.3034987</pub-id>
</mixed-citation>
</ref>
<ref id="B8">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Gu</surname> <given-names>J.</given-names></name>
<name><surname>Liu</surname> <given-names>C.</given-names></name>
<name><surname>Zhuang</surname> <given-names>Y.</given-names></name>
<name><surname>Du</surname> <given-names>X.</given-names></name>
<name><surname>Zhuang</surname> <given-names>F.</given-names></name>
<name><surname>Ying</surname> <given-names>H.</given-names></name>
<etal/>
</person-group>. (<year>2020</year>). 
<article-title>Dynamic measurement and data calibration for aerial mobile iot</article-title>. <source>IEEE Internet Things J.</source> <volume>7</volume>, <fpage>5210</fpage>&#x2013;<lpage>5219</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1109/jiot.2020.2977910</pub-id>
</mixed-citation>
</ref>
<ref id="B9">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>G&#xfc;nther</surname> <given-names>M.</given-names></name>
<name><surname>Schmidt</surname> <given-names>H.</given-names></name>
<name><surname>Timmreck</surname> <given-names>C.</given-names></name>
<name><surname>Toohey</surname> <given-names>M.</given-names></name>
</person-group> (<year>2024</year>). 
<article-title>Why does stratospheric aerosol forcing strongly cool the warm pool</article-title>? <source>Atmospheric Chem. Phys.</source> <volume>24</volume>, <fpage>7203</fpage>&#x2013;<lpage>7225</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.5194/411acp-24-7203-2024</pub-id>
</mixed-citation>
</ref>
<ref id="B10">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Hayward</surname> <given-names>I.</given-names></name>
<name><surname>Martin</surname> <given-names>N. A.</given-names></name>
<name><surname>Ferracci</surname> <given-names>V.</given-names></name>
<name><surname>Kazemimanesh</surname> <given-names>M.</given-names></name>
<name><surname>Kumar</surname> <given-names>P.</given-names></name>
</person-group> (<year>2024</year>). 
<article-title>Low-cost air quality sensors: Biases, corrections and challenges in their comparability</article-title>. <source>Atmosphere</source> <volume>15</volume>, <elocation-id>1523</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/atmos15121523</pub-id>
</mixed-citation>
</ref>
<ref id="B11">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Iwata</surname> <given-names>H.</given-names></name>
<name><surname>Ohishi</surname> <given-names>K.</given-names></name>
<name><surname>Yokokura</surname> <given-names>Y.</given-names></name>
<name><surname>Okada</surname> <given-names>Y.</given-names></name>
<name><surname>Ide</surname> <given-names>Y.</given-names></name>
<name><surname>Kuraishi</surname> <given-names>D.</given-names></name>
<etal/>
</person-group>. (<year>2020</year>). 
<article-title>Robust estimation method for stator temperature based on voltage disturbance observer autotuning resistance for spmsm</article-title>. <source>IEEJ J. Industry Appl.</source> <volume>9</volume>, <fpage>341</fpage>&#x2013;<lpage>350</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1541/ieejjia.9.341</pub-id>
</mixed-citation>
</ref>
<ref id="B12">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Kim</surname> <given-names>S.</given-names></name>
<name><surname>Molla</surname> <given-names>T.</given-names></name>
<name><surname>Zegeye</surname> <given-names>A.</given-names></name>
<name><surname>Jung</surname> <given-names>S.</given-names></name>
</person-group> (<year>2025</year>). 
<article-title>Energy-efficient control system for small-scale rocket recovery</article-title>. <source>IEEE Access</source> <volume>13</volume>, <fpage>104521</fpage>&#x2013;<lpage>104537</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1109/access.2025.3579590</pub-id>
</mixed-citation>
</ref>
<ref id="B13">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name><surname>Kim</surname> <given-names>S.</given-names></name>
<name><surname>Woldeyohannis</surname> <given-names>A. Z.</given-names></name>
<name><surname>Molla</surname> <given-names>G. T.</given-names></name>
<name><surname>Kim</surname> <given-names>M.</given-names></name>
<name><surname>Park</surname> <given-names>E.-J.</given-names></name>
<name><surname>Jung</surname> <given-names>S.</given-names></name>
</person-group> (<year>2024</year>). &#x201c;
<article-title>Fuel efficiency analysis of the jet engine and solid-propellant based small reusable sub-orbital launch vehicle candidates</article-title>,&#x201d; in <source>IAF Space Transportation Solutions and Innovations Symposium</source>, vol. <volume>2024</volume>. (
<publisher-name>International Astronautical Federation (IAF</publisher-name>), <fpage>790</fpage>&#x2013;<lpage>797</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.52202/078373-0082</pub-id>
</mixed-citation>
</ref>
<ref id="B14">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Liang</surname> <given-names>L.</given-names></name>
</person-group> (<year>2021</year>). 
<article-title>Calibrating low-cost sensors for ambient air monitoring: Techniques, trends, and challenges</article-title>. <source>Environ. Res.</source> <volume>197</volume>, <elocation-id>111163</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.envres.2021.111163</pub-id>, PMID: <pub-id pub-id-type="pmid">33887275</pub-id>
</mixed-citation>
</ref>
<ref id="B15">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Liu</surname> <given-names>G.</given-names></name>
<name><surname>Liu</surname> <given-names>Y.</given-names></name>
<name><surname>Li</surname> <given-names>Z.</given-names></name>
<name><surname>Ma</surname> <given-names>Z.</given-names></name>
<name><surname>Ma</surname> <given-names>X.</given-names></name>
<name><surname>Wang</surname> <given-names>X.</given-names></name>
<etal/>
</person-group>. (<year>2023</year>). 
<article-title>Combined temperature compensation method for closed-loop microelectromechanical system capacitive accelerometer</article-title>. <source>Micromachines</source> <volume>14</volume>, <elocation-id>1623</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/mi14081623</pub-id>, PMID: <pub-id pub-id-type="pmid">37630159</pub-id>
</mixed-citation>
</ref>
<ref id="B16">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Lundstrom</surname> <given-names>H.</given-names></name>
<name><surname>Mattsson</surname> <given-names>M.</given-names></name>
</person-group> (<year>2020</year>). 
<article-title>Radiation influence on indoor air temperature sensors: Experimental evaluation of measurement errors and improvement methods</article-title>. <source>Exp. Thermal Fluid Sci</source> <volume>115</volume>, <elocation-id>110082</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.expthermflusci.2020.110082</pub-id>
</mixed-citation>
</ref>
<ref id="B17">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Messier</surname> <given-names>P.</given-names></name>
<name><surname>Nguyen</surname> <given-names>B.-H.</given-names></name>
<name><surname>LeBel</surname> <given-names>F.-A.</given-names></name>
<name><surname>Trovao</surname> <given-names>J. P. F.</given-names></name>
</person-group> (<year>2020</year>). 
<article-title>Disturbance observer-based state-of charge estimation for li-ion battery used in light electric vehicles</article-title>. <source>J. Energy Storage</source> <volume>27</volume>, <elocation-id>101144</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.est.2019.101144</pub-id>
</mixed-citation>
</ref>
<ref id="B18">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Nadzir</surname> <given-names>M. S. M.</given-names></name>
<name><surname>Rabuan</surname> <given-names>U.</given-names></name>
<name><surname>Ali</surname> <given-names>S. H. M.</given-names></name>
<name><surname>Borah</surname> <given-names>J.</given-names></name>
<name><surname>Majumdar</surname> <given-names>S.</given-names></name>
<name><surname>Rohmad</surname> <given-names>M. S.</given-names></name>
</person-group> (<year>2025</year>). 
<article-title>Drone-based air quality monitoring: Development and evaluation of low-cost pm2.5 sensor for remote environmental assessment</article-title>. <source>Sensors Materials</source> <volume>37</volume>, <fpage>2153</fpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.18494/sam5449</pub-id>
</mixed-citation>
</ref>
<ref id="B19">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Pohorsky</surname> <given-names>R.</given-names></name>
<name><surname>Baccarini</surname> <given-names>A.</given-names></name>
<name><surname>Tolu</surname> <given-names>J.</given-names></name>
<name><surname>Winkel</surname> <given-names>L. H. E.</given-names></name>
<name><surname>Schmale</surname> <given-names>J.</given-names></name>
</person-group> (<year>2024</year>). 
<article-title>Modular multiplatform compatible air measurement system (momucams): a new modular platform for boundary layer aerosol and trace gas vertical measurements in extreme environments</article-title>. <source>Atmospheric Measurement Techniques</source> <volume>17</volume>, <fpage>731</fpage>&#x2013;<lpage>754</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.5194/amt-17-731-2024</pub-id>
</mixed-citation>
</ref>
<ref id="B20">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Saha</surname> <given-names>P. K.</given-names></name>
<name><surname>Hankey</surname> <given-names>S.</given-names></name>
<name><surname>Marshall</surname> <given-names>J. D.</given-names></name>
<name><surname>Robinson</surname> <given-names>A. L.</given-names></name>
<name><surname>Presto</surname> <given-names>A. A.</given-names></name>
</person-group> (<year>2021</year>). 
<article-title>High-spatial-resolution estimates of ultrafine particle concentrations across the continental United States</article-title>. <source>Environ. Sci Technol.</source> <volume>55</volume>, <fpage>10320</fpage>&#x2013;<lpage>10331</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1021/acs.est.1c03237</pub-id>, PMID: <pub-id pub-id-type="pmid">34284581</pub-id>
</mixed-citation>
</ref>
<ref id="B21">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Santina</surname> <given-names>C. D.</given-names></name>
<name><surname>Truby</surname> <given-names>R. L.</given-names></name>
<name><surname>Rus</surname> <given-names>D.</given-names></name>
</person-group> (<year>2020</year>). 
<article-title>Data-driven disturbance observers for estimating external forces on soft robots</article-title>. <source>IEEE Robotics Automation Lett.</source> <volume>5</volume>, <fpage>5717</fpage>&#x2013;<lpage>5724</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1109/lra.2020.3010738</pub-id>
</mixed-citation>
</ref>
<ref id="B22">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Siddiqui</surname> <given-names>M. A.</given-names></name>
<name><surname>Baig</surname> <given-names>M. H.</given-names></name>
<name><surname>Yousuf</surname> <given-names>M. U.</given-names></name>
</person-group> (<year>2025</year>). 
<article-title>Performance and data acquisition from low cost air quality sensors: a comprehensive review</article-title>. <source>Air Quality Atmosphere Health</source> <volume>18</volume>, <fpage>1183</fpage>&#x2013;<lpage>1203</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1007/s11869-024-01683-3</pub-id>
</mixed-citation>
</ref>
<ref id="B23">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Tang</surname> <given-names>X.</given-names></name>
<name><surname>Xu</surname> <given-names>B.</given-names></name>
</person-group> (<year>2023</year>). 
<article-title>Reactor temperature compound control strategy based on disturbance observer</article-title>. <source>IEEE Access</source> <volume>11</volume>, <fpage>84554</fpage>&#x2013;<lpage>84564</lpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1109/access.2023.3303036</pub-id>
</mixed-citation>
</ref>
<ref id="B24">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Wei</surname> <given-names>P.</given-names></name>
<name><surname>Ning</surname> <given-names>Z.</given-names></name>
<name><surname>Ye</surname> <given-names>S.</given-names></name>
<name><surname>Sun</surname> <given-names>L.</given-names></name>
<name><surname>Yang</surname> <given-names>F.</given-names></name>
<name><surname>Wong</surname> <given-names>K.</given-names></name>
<etal/>
</person-group>. (<year>2018</year>). 
<article-title>Impact analysis of temperature and humidity conditions on electrochemical sensor response in ambient air quality monitoring</article-title>. <source>Sensors</source> <volume>18</volume>, <elocation-id>59</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.3390/s18020059</pub-id>, PMID: <pub-id pub-id-type="pmid">29360749</pub-id>
</mixed-citation>
</ref>
<ref id="B25">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Yeom</surname> <given-names>K.</given-names></name>
</person-group> (<year>2021</year>). 
<article-title>Development of urban air monitoring with high spatial resolution using mobile vehicle sensors</article-title>. <source>Environ. Monit. Assess.</source> <volume>193</volume>, <fpage>375</fpage>. doi:&#xa0;<pub-id pub-id-type="doi">10.1007/s10661-021-09139-2</pub-id>, PMID: <pub-id pub-id-type="pmid">34061237</pub-id>
</mixed-citation>
</ref>
<ref id="B26">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Zafra-Perez</surname> <given-names>A.</given-names></name>
<name><surname>Boente</surname> <given-names>C.</given-names></name>
<name><surname>de la Campa</surname> <given-names>A. S.</given-names></name>
<name><surname>G&#xf3;mez-Gal&#xe1;n</surname> <given-names>J. A.</given-names></name>
<name><surname>de la Rosa</surname> <given-names>J. D.</given-names></name>
</person-group> (<year>2023</year>). 
<article-title>A novel application of mobile low-cost sensors for atmospheric particulate matter monitoring in open-pit mines</article-title>. <source>Environ. Technol. Innovation</source> <volume>29</volume>, <elocation-id>102974</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.eti.2022.102974</pub-id>
</mixed-citation>
</ref>
<ref id="B27">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Zappa</surname> <given-names>C. J.</given-names></name>
<name><surname>Brown</surname> <given-names>S. M.</given-names></name>
<name><surname>Laxague</surname> <given-names>N. J. M.</given-names></name>
<name><surname>Dhakal</surname> <given-names>T.</given-names></name>
<name><surname>Harris</surname> <given-names>R. A.</given-names></name>
<name><surname>Farber</surname> <given-names>A. M.</given-names></name>
<etal/>
</person-group>. (<year>2020</year>). 
<article-title>Using ship-deployed high-endurance unmanned aerial vehicles for the study of ocean surface and atmospheric boundary layer processes</article-title>. <source>Front. Mar. Sci</source> <volume>6</volume>. doi:&#xa0;<pub-id pub-id-type="doi">10.3389/fmars.2019.00777</pub-id>
</mixed-citation>
</ref>
<ref id="B28">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name><surname>Zou</surname> <given-names>Y.</given-names></name>
<name><surname>Clark</surname> <given-names>J. D.</given-names></name>
<name><surname>May</surname> <given-names>A. A.</given-names></name>
</person-group> (<year>2021</year>). 
<article-title>A systematic investigation on the effects of temperature and relative humidity on the performance of eight low-cost particle sensors and devices</article-title>. <source>J. Aerosol Sci</source> <volume>152</volume>, <elocation-id>105715</elocation-id>. doi:&#xa0;<pub-id pub-id-type="doi">10.1016/j.jaerosci.2020.105715</pub-id>
</mixed-citation>
</ref>
</ref-list>
<fn-group>
<fn id="n1" fn-type="custom" custom-type="edited-by">
<p>Edited by: <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2704346">Yimian Dai</ext-link>, Nanjing University of Science and Technology, China</p></fn>
<fn id="n2" fn-type="custom" custom-type="reviewed-by">
<p>Reviewed by: <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1760076">Tien Anh Tran</ext-link>, Seoul National University, Republic of Korea; <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/599246">Derek Hollenbeck</ext-link>, University of California, Merced, United States</p></fn>
</fn-group>
</back>
</article>