<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>boost control - BlownByTwins</title>
	<atom:link href="https://blownbytwins.co.uk/tag/boost-control/feed/" rel="self" type="application/rss+xml" />
	<link>https://blownbytwins.co.uk</link>
	<description>Just a tale of one man and his cars...</description>
	<lastBuildDate>Tue, 06 Oct 2026 10:58:05 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://blownbytwins.co.uk/wp-content/uploads/2023/05/cropped-wp20128381-1-32x32.jpg</url>
	<title>boost control - BlownByTwins</title>
	<link>https://blownbytwins.co.uk</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Boost Control on the Emtron KV12: Where the Target Really Comes From</title>
		<link>https://blownbytwins.co.uk/cars/mk4-supra/boost-control-emtron-kv12/</link>
		
		<dc:creator><![CDATA[john]]></dc:creator>
		<pubDate>Sat, 17 Oct 2026 07:00:00 +0000</pubDate>
				<category><![CDATA[Engine Management]]></category>
		<category><![CDATA[Mk4 Supra]]></category>
		<category><![CDATA[boost control]]></category>
		<category><![CDATA[emtron]]></category>
		<category><![CDATA[feedforward]]></category>
		<category><![CDATA[wastegate]]></category>
		<guid isPermaLink="false">https://blownbytwins.co.uk/?p=1208</guid>

					<description><![CDATA[<p>How boost is controlled on the Supra's Emtron KV12: a base table that never asks for boost, a user offset that does, a deliberate clamp, and a PID kept on a short lead so the feedforward does the work.</p>
<p>The post <a href="https://blownbytwins.co.uk/cars/mk4-supra/boost-control-emtron-kv12/">Boost Control on the Emtron KV12: Where the Target Really Comes From</a> first appeared on <a href="https://blownbytwins.co.uk">BlownByTwins</a>.</p>
<p>The post <a rel="nofollow" href="https://blownbytwins.co.uk/cars/mk4-supra/boost-control-emtron-kv12/">Boost Control on the Emtron KV12: Where the Target Really Comes From</a> appeared first on <a rel="nofollow" href="https://blownbytwins.co.uk">BlownByTwins</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">There is nothing exotic about the boost control on this car. It is Emtron&#8217;s standard closed loop strategy. SRD Tuning built the base, and I have refined the duty cycles from logs since.</p>



<p class="wp-block-paragraph">What is worth showing is how the pieces fit together. Where the boost target actually comes from, which tables do the real work, and how the PID is kept out of the way.</p>



<p class="wp-block-paragraph">Each section is marked. <strong>Verified</strong> means it comes straight from the calibration. <strong>Theory</strong> means it is my reasoning, not something I have measured. <strong>Observed</strong> means it is how the car behaves on the road.</p>



<h2 class="wp-block-heading">Configuration</h2>



<p class="wp-block-paragraph"><strong>Status: Verified</strong></p>



<ul class="wp-block-list">
<li>2JZ-GTE VVTi, 3.4 litre, Pulsar G42-1200, pump fuel</li>



<li>Turbosmart 60 mm wastegate, 15 psi spring, which gives 18 psi as installed</li>



<li>Single Link boost control solenoid</li>



<li><a href="https://emtron.world/products/kv12" target="_blank" rel="noopener">Emtron KV12</a>, closed loop, absolute target, manifold pressure as the control input</li>
</ul>



<p class="wp-block-paragraph">Who did what matters here, so to be clear: the structure, the lockouts and the base duty cycles are SRD&#8217;s. My changes are to the initial position table, made from logged corrections, and none of them is more than 3 percent.</p>



<h2 class="wp-block-heading">Where the target comes from</h2>



<p class="wp-block-paragraph"><strong>Status: Verified</strong></p>



<p class="wp-block-paragraph">Emtron builds the boost target from a base table, adds a stack of offsets, then clamps the result. Here is the base table:</p>



<figure class="bbt-figure" style="margin:1.8rem 0"><table style="border-collapse:collapse;width:100%;font-size:0.85rem;text-align:right"><thead><tr style="border-bottom:2px solid #333"><th style="text-align:left;padding:6px 8px">Pedal demand</th><th style="padding:6px 8px">0 to 2,500 rpm</th><th style="padding:6px 8px">3,000 rpm and above</th></tr></thead><tbody>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px 8px">0%</td><td style="padding:6px 8px">40</td><td style="padding:6px 8px">40</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px 8px">10 to 30%</td><td style="padding:6px 8px">70</td><td style="padding:6px 8px">70</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px 8px">40 to 98%</td><td style="padding:6px 8px">80</td><td style="padding:6px 8px">100</td></tr>
</tbody></table><figcaption class="bbt-table-note" style="font-size:0.8rem;color:#5f5f5f;line-height:1.5;margin:0.6rem 0 0">Boost Target Table 1, kPa absolute, against throttle area demand from the pedal. Identical rows and columns are merged.</figcaption></figure>



<p class="wp-block-paragraph">Look at the biggest number in it. 100 kPa absolute is atmospheric. The base table on its own never asks for any boost at all.</p>



<p class="wp-block-paragraph">The boost comes from the first of the user offsets:</p>



<figure class="bbt-figure" style="margin:1.8rem 0"><table style="border-collapse:collapse;width:100%;font-size:0.85rem;text-align:right"><thead><tr style="border-bottom:2px solid #333"><th style="text-align:left;padding:6px 8px">Manifold pressure</th><th style="padding:6px 8px">Offset, every rotary position</th></tr></thead><tbody>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px 8px">0 and 50 kPa</td><td style="padding:6px 8px">0</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px 8px">100, 125 and 150 kPa</td><td style="padding:6px 8px">+200</td></tr>
</tbody></table><figcaption class="bbt-table-note" style="font-size:0.8rem;color:#5f5f5f;line-height:1.5;margin:0.6rem 0 0">User 1 Target Offset Table, kPa, indexed on manifold pressure against the steering wheel rotary (CANRx Vehicle Mode 1). All eight rotary columns are identical.</figcaption></figure>



<p class="wp-block-paragraph">Once the manifold reaches atmospheric, 200 kPa is added to the target. So with the pedal past 40 percent:</p>



<ul class="wp-block-list">
<li>Below 3,000 rpm: 80 + 200 = <strong>280 kPa</strong> absolute</li>



<li>From 3,000 rpm: 100 + 200 = <strong>300 kPa</strong> absolute</li>
</ul>



<p class="wp-block-paragraph">And then the clamp. The Boost Target Clamp is <strong>300 kPa absolute</strong>, roughly 2.0 bar of boost at sea level. Whatever the offsets add up to, the target cannot go past it. That is deliberate. The car runs on pump fuel, and the clamp is the safety switch that stops anything else in the stack asking for more than the fuel will take.</p>



<p class="wp-block-paragraph">The rotary columns being identical is also deliberate. Every traction setting gets the same boost ceiling, and the torque model decides how much of it is actually used. Boost is not the throttle on this car. Torque is, and that is covered in <a href="https://blownbytwins.co.uk/cars/mk4-supra/traction-control-feedforward-pid/">Traction Control on 1,114 whp</a>.</p>



<h3 class="wp-block-heading">Why the offset can look on manifold pressure</h3>



<p class="wp-block-paragraph"><strong>Status: Theory</strong></p>



<p class="wp-block-paragraph">An offset indexed on manifold pressure is a feedback loop: as pressure rises from 50 to 100 kPa, the target rises with it. That would be a problem if the solenoid were active through that range. It isn&#8217;t, which is the next table.</p>



<h2 class="wp-block-heading">When the solenoid is allowed to work</h2>



<p class="wp-block-paragraph"><strong>Status: Verified</strong></p>



<figure class="bbt-figure" style="margin:1.8rem 0"><table style="border-collapse:collapse;width:100%;font-size:0.85rem"><thead><tr style="border-bottom:2px solid #333"><th style="text-align:left;padding:6px 8px">Lockout</th><th style="text-align:right;padding:6px 8px">Value</th></tr></thead><tbody>
<tr style="border-bottom:1px solid #ddd"><td style="padding:6px 8px">Throttle</td><td style="text-align:right;padding:6px 8px">10%</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="padding:6px 8px">Engine speed</td><td style="text-align:right;padding:6px 8px">1,800 rpm</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="padding:6px 8px">Manifold pressure</td><td style="text-align:right;padding:6px 8px">110 kPa</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="padding:6px 8px">Engine temperature</td><td style="text-align:right;padding:6px 8px">60 &deg;C</td></tr>
</tbody></table><figcaption class="bbt-table-note" style="font-size:0.8rem;color:#5f5f5f;line-height:1.5;margin:0.6rem 0 0">Boost OL/CL Lockouts, set by SRD. Below any of these the solenoid is switched off and the wastegate runs on its spring.</figcaption></figure>



<p class="wp-block-paragraph">The solenoid stays off until the manifold is already 10 kPa above atmospheric. By then the user offset has finished ramping in and the target is fixed. Off boost, cold, or at a whisker of throttle, the wastegate simply does what its spring tells it.</p>



<h2 class="wp-block-heading">What takes boost away</h2>



<p class="wp-block-paragraph"><strong>Status: Verified</strong></p>



<p class="wp-block-paragraph">Three offsets pull the target down. Two are protection, and both are indexed against the target itself, so the higher the target, the more they take.</p>



<figure class="bbt-figure" style="margin:1.8rem 0"><table style="border-collapse:collapse;width:100%;font-size:0.85rem;text-align:right"><thead><tr style="border-bottom:2px solid #333"><th style="text-align:left;padding:6px 8px">Target vs engine temp</th><th style="padding:6px 8px">up to 100 &deg;C</th><th style="padding:6px 8px">110 &deg;C</th><th style="padding:6px 8px">120 &deg;C and above</th></tr></thead><tbody>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px 8px">180 kPa</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px 8px">200 kPa</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">-10</td><td style="padding:6px 8px">-20</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px 8px">220 kPa</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">-40</td><td style="padding:6px 8px">-40</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px 8px">240 kPa</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">-50</td><td style="padding:6px 8px">-60</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px 8px">260 kPa</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">-50</td><td style="padding:6px 8px">-80</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px 8px">280 kPa</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">-50</td><td style="padding:6px 8px">-100</td></tr>
</tbody></table><figcaption class="bbt-table-note" style="font-size:0.8rem;color:#5f5f5f;line-height:1.5;margin:0.6rem 0 0">Engine Temperature Target Offset Table, kPa. Every column from -50 to 100 &deg;C is zero.</figcaption></figure>



<figure class="bbt-figure" style="margin:1.8rem 0"><table style="border-collapse:collapse;width:100%;font-size:0.85rem;text-align:right"><thead><tr style="border-bottom:2px solid #333"><th style="text-align:left;padding:6px 8px">Target vs inlet air temp</th><th style="padding:6px 8px">up to 40 &deg;C</th><th style="padding:6px 8px">50</th><th style="padding:6px 8px">60</th><th style="padding:6px 8px">70</th><th style="padding:6px 8px">80</th><th style="padding:6px 8px">100</th><th style="padding:6px 8px">120</th></tr></thead><tbody>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px 8px">100 and 150 kPa</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px 8px">200 to 300 kPa</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">-3</td><td style="padding:6px 8px">-10</td><td style="padding:6px 8px">-20</td><td style="padding:6px 8px">-30</td><td style="padding:6px 8px">-40</td><td style="padding:6px 8px">-50</td></tr>
</tbody></table><figcaption class="bbt-table-note" style="font-size:0.8rem;color:#5f5f5f;line-height:1.5;margin:0.6rem 0 0">Air Temperature Target Offset Table, kPa. Identical rows are merged.</figcaption></figure>



<p class="wp-block-paragraph">The third is by gear, and it is there for the gearbox rather than the engine:</p>



<figure class="bbt-figure" style="margin:1.8rem 0"><table style="border-collapse:collapse;width:100%;font-size:0.85rem;text-align:center"><thead><tr style="border-bottom:2px solid #333"><th style="text-align:left;padding:6px">Gear</th><th style="padding:6px">R, N, 1 to 5</th><th style="padding:6px">6</th><th style="padding:6px">7</th><th style="padding:6px">8</th></tr></thead><tbody>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px">Offset, kPa</td><td>0</td><td>-10</td><td>-20</td><td>-30</td></tr>
</tbody></table><figcaption class="bbt-table-note" style="font-size:0.8rem;color:#5f5f5f;line-height:1.5;margin:0.6rem 0 0">Gear Target Offset Table.</figcaption></figure>



<p class="wp-block-paragraph">Sixth, seventh and eighth lose 10, 20 and 30 kPa to protect the ZF&#8217;s clutches from slip. Where that gearbox runs out of capacity is covered in <a href="https://blownbytwins.co.uk/?p=1093">Where the Stock ZF 8HP70 Gives Up</a>.</p>



<h2 class="wp-block-heading">The table that does the work</h2>



<p class="wp-block-paragraph"><strong>Status: Verified</strong></p>



<p class="wp-block-paragraph">Everything above decides what boost to ask for. This decides how to get it. The initial position table is the feedforward: the solenoid duty the ECU applies before the PID has done anything at all.</p>



<figure class="bbt-figure" style="margin:1.8rem 0"><table style="border-collapse:collapse;width:100%;font-size:0.8rem;text-align:right"><thead><tr style="border-bottom:2px solid #333"><th style="text-align:left;padding:5px 6px">Target vs rpm</th><th style="padding:5px 6px">1,000 to 1,500</th><th style="padding:5px 6px">2,000 to 3,500</th><th style="padding:5px 6px">4,000</th><th style="padding:5px 6px">4,500</th><th style="padding:5px 6px">5,000</th><th style="padding:5px 6px">5,500</th><th style="padding:5px 6px">6,000</th><th style="padding:5px 6px">6,500</th><th style="padding:5px 6px">7,000</th><th style="padding:5px 6px">7,500</th><th style="padding:5px 6px">8,000</th></tr></thead><tbody>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:5px 6px">125 to 200 kPa</td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">0</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:5px 6px">220 kPa</td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">100</td><td style="padding:5px 6px">26.5</td><td style="padding:5px 6px">20.0</td><td style="padding:5px 6px">13.0</td><td style="padding:5px 6px">10.5</td><td style="padding:5px 6px">8.0</td><td style="padding:5px 6px">5.0</td><td style="padding:5px 6px">2.5</td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">0</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:5px 6px">240 kPa</td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">100</td><td style="padding:5px 6px">28.0</td><td style="padding:5px 6px">22.5</td><td style="padding:5px 6px">17.0</td><td style="padding:5px 6px">16.5</td><td style="padding:5px 6px">15.0</td><td style="padding:5px 6px">13.0</td><td style="padding:5px 6px">11.5</td><td style="padding:5px 6px">9.5</td><td style="padding:5px 6px">10.5</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:5px 6px">250 kPa</td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">100</td><td style="padding:5px 6px">29.0</td><td style="padding:5px 6px">24.0</td><td style="padding:5px 6px">18.5</td><td style="padding:5px 6px">18.0</td><td style="padding:5px 6px">17.0</td><td style="padding:5px 6px">16.5</td><td style="padding:5px 6px">15.5</td><td style="padding:5px 6px">14.5</td><td style="padding:5px 6px">16.0</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:5px 6px">260 kPa</td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">100</td><td style="padding:5px 6px">29.5</td><td style="padding:5px 6px">25.0</td><td style="padding:5px 6px">20.5</td><td style="padding:5px 6px">19.5</td><td style="padding:5px 6px">19.5</td><td style="padding:5px 6px">19.5</td><td style="padding:5px 6px">19.5</td><td style="padding:5px 6px">19.5</td><td style="padding:5px 6px">21.0</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:5px 6px">280 kPa</td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">100</td><td style="padding:5px 6px">31.0</td><td style="padding:5px 6px">28.0</td><td style="padding:5px 6px">24.5</td><td style="padding:5px 6px">23.0</td><td style="padding:5px 6px">24.5</td><td style="padding:5px 6px">26.0</td><td style="padding:5px 6px">27.5</td><td style="padding:5px 6px">29.0</td><td style="padding:5px 6px">31.5</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:5px 6px"><strong>300 kPa</strong></td><td style="padding:5px 6px">0</td><td style="padding:5px 6px">100</td><td style="padding:5px 6px"><strong>32.5</strong></td><td style="padding:5px 6px"><strong>30.5</strong></td><td style="padding:5px 6px"><strong>28.0</strong></td><td style="padding:5px 6px"><strong>26.0</strong></td><td style="padding:5px 6px"><strong>26.0</strong></td><td style="padding:5px 6px"><strong>30.0</strong></td><td style="padding:5px 6px"><strong>32.0</strong></td><td style="padding:5px 6px"><strong>36.5</strong></td><td style="padding:5px 6px"><strong>42.0</strong></td></tr>
</tbody></table><figcaption class="bbt-table-note" style="font-size:0.8rem;color:#5f5f5f;line-height:1.5;margin:0.6rem 0 0">Initial Position Table, % duty, boost target against engine speed. Bold is the row the car lives on at full demand. The table also has 320 and 340 kPa rows, which the 300 kPa clamp means are never used.</figcaption></figure>



<p class="wp-block-paragraph">Read the 300 kPa row from left to right and it tells the story of a pull.</p>



<p class="wp-block-paragraph"><strong>2,000 to 3,500 rpm: 100.</strong> Hold the wastegate shut and let the turbo spool. In practice this is 80, not 100, because the Max Duty table clamps the output at 80 percent everywhere. The 100 in the table is a way of saying &#8220;as much as you&#8217;re allowed&#8221;.</p>



<p class="wp-block-paragraph"><strong>4,000 rpm: 32.5.</strong> The turbo is lit. Drop straight to the duty that holds 300 kPa, so the gate opens instead of letting boost run past the target.</p>



<p class="wp-block-paragraph"><strong>5,500 to 6,000 rpm: 26.</strong> The lowest duty in the row.</p>



<p class="wp-block-paragraph"><strong>6,500 to 8,000 rpm: 30 rising to 42.</strong> More duty is needed to hold the same target as rpm rises.</p>



<p class="wp-block-paragraph">The lower rows show the spring at work. The spring holds 18 psi as installed, about 225 kPa absolute. So at a 220 kPa target the duty falls away as rpm rises, and by 7,500 rpm it is zero: the spring alone is enough. Every row above that is the solenoid adding pressure on top of the spring.</p>



<h3 class="wp-block-heading">Why the duty rises at the top</h3>



<p class="wp-block-paragraph"><strong>Status: Theory</strong></p>



<p class="wp-block-paragraph">A wastegate valve is pushed open by exhaust pressure acting on its face, as well as by boost pressure acting on its diaphragm. As rpm rises, exhaust manifold pressure rises with it, and the valve gets more help opening. To hold the same boost, the solenoid has to fight harder, so the duty goes up. I don&#8217;t measure exhaust manifold pressure on this car, so that is the mechanism I&#8217;d expect rather than one I have logged.</p>



<h3 class="wp-block-heading">How I refined it</h3>



<p class="wp-block-paragraph"><strong>Status: Verified</strong></p>



<p class="wp-block-paragraph">If the initial position were perfect, the PID would have nothing to correct. So the logs tell you where it is wrong. Wherever the closed loop consistently added or removed duty in the same cell, the feedforward was out by about that much.</p>



<p class="wp-block-paragraph">I moved those cells towards what the PID was asking for. None by more than 3 percent. It&#8217;s refinement, not a rebuild. The aim was to take work away from the closed loop wherever the data said it was doing work it shouldn&#8217;t have to.</p>



<h2 class="wp-block-heading">The PID: kept on a short lead</h2>



<p class="wp-block-paragraph"><strong>Status: Verified</strong></p>



<p class="wp-block-paragraph">The loop runs at 35 Hz, against Emtron&#8217;s typical 25, with a deadband of ±0.1 kPa and no input or target filtering. Emtron&#8217;s own note on the control rate is worth repeating: change it and the gains need re-tuning, because every gain is effectively per calculation.</p>



<p class="wp-block-paragraph">All three gains are scheduled on boost target error. Negative error means boost is above target.</p>



<figure class="bbt-figure" style="margin:1.8rem 0"><table style="border-collapse:collapse;width:100%;font-size:0.85rem;text-align:right"><thead><tr style="border-bottom:2px solid #333"><th style="text-align:left;padding:6px 8px">Error, kPa</th><th style="padding:6px 8px">-50</th><th style="padding:6px 8px">-25</th><th style="padding:6px 8px">-10</th><th style="padding:6px 8px">-5</th><th style="padding:6px 8px">-2</th><th style="padding:6px 8px">2</th><th style="padding:6px 8px">5</th><th style="padding:6px 8px">10</th><th style="padding:6px 8px">25</th><th style="padding:6px 8px">60</th></tr></thead><tbody>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px 8px">Proportional</td><td style="padding:6px 8px">0.50</td><td style="padding:6px 8px">0.50</td><td style="padding:6px 8px">0.20</td><td style="padding:6px 8px">0.20</td><td style="padding:6px 8px">0.10</td><td style="padding:6px 8px">0.10</td><td style="padding:6px 8px">0.50</td><td style="padding:6px 8px">0.50</td><td style="padding:6px 8px">0.50</td><td style="padding:6px 8px">0.50</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px 8px">Integral</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0.018</td><td style="padding:6px 8px">0.025</td><td style="padding:6px 8px">0.025</td><td style="padding:6px 8px">0.018</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td></tr>
<tr style="border-bottom:1px solid #ddd"><td style="text-align:left;padding:6px 8px">Derivative</td><td style="padding:6px 8px">3.00</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">0</td><td style="padding:6px 8px">3.00</td><td style="padding:6px 8px">3.00</td><td style="padding:6px 8px">0</td></tr>
</tbody></table><figcaption class="bbt-table-note" style="font-size:0.8rem;color:#5f5f5f;line-height:1.5;margin:0.6rem 0 0">Proportional, Integral and Derivative Gain Tables combined. The three tables use slightly different breakpoints; where a column is beyond a table&#8217;s axis, its end value is shown. Derivative is 0 from -40 to +5 kPa. Proportional also has a dMAP axis, flat apart from one cell, covered below.</figcaption></figure>



<p class="wp-block-paragraph">The integral is clamped as well: the Positive and Negative Integral Limit tables hold it to <strong>±5 percent duty</strong> at every rpm. Overall output is held between a 5 percent minimum and an 80 percent maximum.</p>



<p class="wp-block-paragraph">One cell in the proportional table stands out. At -25 kPa of error, with manifold pressure rising at 5 percent per second, the gain is <strong>10.00</strong> instead of 0.50. That is the overboost catch. Boost well over target and still climbing is the one situation where the controller is allowed to hit hard.</p>



<h3 class="wp-block-heading">Why it is shaped this way</h3>



<p class="wp-block-paragraph"><strong>Status: Theory</strong></p>



<p class="wp-block-paragraph">Proportional gain is smallest near target. Once the boost is where it should be, small errors are corrected gently, so the solenoid isn&#8217;t hunting.</p>



<p class="wp-block-paragraph">Integral only works within 5 kPa of target and is zero beyond 10. During spool the error is enormous, and an integrator running through that would wind up and then overshoot when the turbo arrives. Here it simply doesn&#8217;t run until boost is close. Add the ±5 percent clamp and the integrator can trim the feedforward but never replace it.</p>



<p class="wp-block-paragraph">Derivative is active between 10 and 25 kPa below target. That is boost on its final approach, rising fast towards the target. Derivative reacts to rate of change, so it starts opening the gate before the boost gets there, taking the edge off the arrival rather than correcting an overshoot afterwards.</p>



<p class="wp-block-paragraph">It&#8217;s the same philosophy as the <a href="https://blownbytwins.co.uk/cars/mk4-supra/traction-control-feedforward-pid/">traction control</a>. Feedforward does the work. The closed loop is soft near target, gated where it could do harm, and clamped so it can never take over.</p>



<h2 class="wp-block-heading">Housekeeping</h2>



<p class="wp-block-paragraph"><strong>Status: Verified</strong></p>



<p class="wp-block-paragraph">Two things in the file worth knowing if you are reading your own:</p>



<ul class="wp-block-list">
<li>The Boost Solenoid Deadtime table is zero from 10 to 20 V, so solenoid duty isn&#8217;t corrected for supply voltage.</li>



<li>The Boost Overall Target Trim is zero. It&#8217;s a single number that shifts every target at once, which makes it a quick way to test a change without touching the tables.</li>
</ul>



<h2 class="wp-block-heading">Does it work?</h2>



<p class="wp-block-paragraph"><strong>Status: Observed</strong></p>



<p class="wp-block-paragraph">Spooled by 3,400 rpm. On target by 4,200. And from there it pulls, hard, all the way to 8,400.</p>



<p class="wp-block-paragraph">That lines up with the table. The 100 percent hold ends at 3,500, the duty drops to 32.5 at 4,000, and the car is on target 200 rpm later.</p>



<h2 class="wp-block-heading">The principle</h2>



<p class="wp-block-paragraph">Get the feedforward right and the PID has almost nothing to do. Then let the logs tell you where it isn&#8217;t right: wherever the closed loop is consistently correcting, the initial position is wrong by that much.</p>



<p class="wp-block-paragraph">Every number here is specific to this turbo, this wastegate, this spring and this fuel. <strong>The data is not transferable, but the principle is.</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<p class="wp-block-paragraph"><em>How the torque model decides how much of this boost is actually used is in <a href="https://blownbytwins.co.uk/cars/mk4-supra/traction-control-feedforward-pid/">Traction Control on 1,114 whp</a>. Why the top gears lose boost is in <a href="https://blownbytwins.co.uk/?p=1093">Where the Stock ZF 8HP70 Gives Up</a>. The fuel system feeding all of it is in <a href="https://blownbytwins.co.uk/?p=1194">Staged Injection on the Emtron KV12</a>. Full specification is on the <a href="https://blownbytwins.co.uk/toyota-supra-mk4-delta/">Supra project page</a>.</em></p><p>The post <a href="https://blownbytwins.co.uk/cars/mk4-supra/boost-control-emtron-kv12/">Boost Control on the Emtron KV12: Where the Target Really Comes From</a> first appeared on <a href="https://blownbytwins.co.uk">BlownByTwins</a>.</p><p>The post <a rel="nofollow" href="https://blownbytwins.co.uk/cars/mk4-supra/boost-control-emtron-kv12/">Boost Control on the Emtron KV12: Where the Target Really Comes From</a> appeared first on <a rel="nofollow" href="https://blownbytwins.co.uk">BlownByTwins</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
