Pages: 1 2 3 [4] 5 6 ... 26
Author Topic: MED 9.1 basics  (Read 295219 times)
prj
Hero Member
*****

Karma: +915/-427
Offline Offline

Posts: 5840


« Reply #45 on: March 09, 2014, 11:58:40 AM »

1) The FR does not mention methods for tuning the PID near the MAP limit.
Pretty much the normal method applies, all you have to do is go really aggressive on the I-limiting.
That said, you should not run PID at MAP limit if at all avoidable.
Quote
If you truly think there is nothing of value outside the FR, then what is the point of any discussion of anything?
I don't think there is nothing of value outside the FR. I think that one should at the very least read both the FR (at least the schematics) and the forum.
Logged

PM's will not be answered, so don't even try.
Log your car properly.
Basano
Full Member
***

Karma: +90/-3
Offline Offline

Posts: 192


« Reply #46 on: March 10, 2014, 07:43:18 AM »

Finally!

It’s responding as expected Cheesy

If you recall, I was targeting the initial overshoot. I lowered the values in KFLDIMX in the region of the initial ramp-up (decreased them a lot, but after all this I now understand why) and WGDC now tapers off a lot more as actual boost approaches requested boost.

Attached are the before and after comparisons. It’s the size of the initial boost overshoot that has diminished.

KFLDIMX – stock

hPa / RPM1000125015001750200022502500275030003500400045005000550060006500
0¦0.0000¦0.0000¦0.0000¦0.0000¦0.0000¦0.0000¦0.0000¦0.0000¦0.0000¦5.0000¦10.0000¦10.0000¦10.0000¦10.0000¦10.0000¦10.0000
300¦19.0000¦19.0000¦19.0000¦19.0000¦19.0000¦19.0000¦16.8750¦15.0000¦14.0650¦17.1900¦21.2500¦21.7200¦22.1900¦23.1250¦25.0000¦26.8750
400¦25.3350¦25.3350¦25.3350¦25.3350¦25.3350¦25.3350¦22.5000¦20.0000¦18.7500¦21.2500¦25.0000¦25.6250¦26.2500¦27.5000¦30.0000¦32.5000
500¦31.6650¦31.6650¦31.6650¦31.6650¦31.6650¦31.6650¦28.1250¦25.0000¦23.4400¦25.3150¦28.7500¦29.5300¦30.3150¦31.8750¦35.0000¦38.1250
1000¦63.3350¦63.3350¦63.3350¦63.3350¦63.3350¦63.3350¦56.2500¦50.0000¦46.8750¦45.6250¦47.5000¦49.0650¦50.6250¦53.7500¦60.0000¦66.2500
1200¦76.0000¦76.0000¦76.0000¦76.0000¦76.0000¦76.0000¦67.5000¦60.0000¦56.2500¦53.7500¦55.0000¦56.8750¦58.7500¦62.5000¦70.0000¦77.5000
1500¦95.0000¦95.0000¦95.0000¦95.0000¦95.0000¦95.0000¦84.3750¦75.0000¦70.3150¦65.9400¦66.2500¦68.5950¦70.9400¦75.6250¦85.0000¦94.3750
1600¦95.0000¦95.0000¦95.0000¦95.0000¦95.0000¦95.0000¦90.0000¦80.0000¦75.0000¦70.0000¦70.0000¦72.5000¦75.0000¦80.0000¦90.0000¦95.0000



KFLDIMX – v10

hPa / RPM1000125015001750200022502500275030003500400045005000550060006500
0¦0.0000¦0.0000¦0.0000¦0.0000¦0.0000¦0.0000¦0.0000¦0.0000¦0.0000¦5.0000¦10.0000¦10.0000¦10.0000¦10.0000¦10.0000¦10.0000
300¦19.0000¦19.0000¦19.0000¦19.0000¦19.0000¦19.0000¦16.8750¦15.0000¦14.0650¦17.1900¦21.2500¦21.7200¦22.1900¦23.1250¦25.0000¦26.8750
400¦25.3350¦25.3350¦25.3350¦25.3350¦25.3350¦25.3350¦22.5000¦20.0000¦18.7500¦21.2500¦25.0000¦25.6250¦26.2500¦27.5000¦30.0000¦32.5000
500¦31.6650¦31.6650¦31.6650¦31.6650¦31.6650¦31.6650¦28.1250¦25.0000¦23.4400¦25.3150¦28.7500¦29.5300¦30.3150¦31.8750¦35.0000¦38.1250
1000¦63.3350¦63.3350¦63.3350¦63.3350¦63.3350¦63.3350¦56.2500¦50.0000¦46.8750¦45.6250¦47.5000¦49.0650¦50.6250¦53.7500¦60.0000¦66.2500
1200¦76.0000¦76.0000¦76.0000¦76.0000¦76.0000¦ 63.3350 ¦ 56.2500¦56.2500¦56.2500¦53.7500¦55.0000¦56.8750¦58.7500¦62.5000¦70.0000¦77.5000
1500¦95.0000¦95.0000¦95.0000¦95.0000¦95.0000¦ 63.3350¦ 56.2500 ¦ 40.0000 ¦ 40.0000 ¦ 56.2500 ¦66.2500¦68.5950¦70.9400¦75.6250¦85.0000¦94.3750
1600¦95.0000¦95.0000¦95.0000¦95.0000¦95.0000¦ 63.3350¦ 56.2500 ¦ 40.0000 ¦ 40.0000 ¦56.2500¦70.0000¦72.5000¦75.0000¦80.0000¦90.0000¦95.0000



Lower KFLDIMX to fix boost overshoot.
Load is irrelevant at this point as it is above diagnostic limit.

Thank you, exactly right.

Initially I wasn’t sure how aggressive the changes should be but after working through this with all of you, I understand what I’m changing and why it’s had this result.

I’m going to hold off tweaking the derivative. I’m really happy with this and I don’t actually want to dampen the response any further!
Logged
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12233


WWW
« Reply #47 on: March 10, 2014, 08:48:38 AM »

IMO your approach is not a good one, it only works if you are trying to kill overshoot in one specific rpm range. Don't believe me? Delay the start of your run rpm wise and see what happens when your boost peak is at 4 or 5k rpm

You need more Q2. The i limit should remain more or less rpm independent. You can tune DRL to compensate for any extra DC you need as flow/rpm go up.

Q0 is for transient response, Q1 is long term, Q2 is for pre-emptive transient response.

Do not use Q0/Q1 for doing Q2's job.
« Last Edit: March 10, 2014, 08:51:19 AM by nyet » Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
Basano
Full Member
***

Karma: +90/-3
Offline Offline

Posts: 192


« Reply #48 on: March 10, 2014, 02:46:34 PM »

Hmmmm, I was pondering that.

Yes, I had just been looking at one scenario - a WOT pull from low down. I tried a few additional runs and went WOT at different starting rpm points (2000 rpm, 3000 rpm, 4000rpm etc)

Initial overshoot did increase (compared to the 2000 rpm point where I'd been focusing) as I moved to different starting points in the rev range.

WOT at 2500 RPM



WOT at 4000 RPM



But I'd say that very roughly, the biggest initial overshoot was low down and whilst initial overshoot still occurs higher up, it's not quite as large. Maybe. I could be fooling myself Huh I originally saw a peak boost of 2650 mbar when I went WOT at 2000 rpm and peak of 2500 mbar when I went WOT at 4000 rpm. Specified was 2350 mbar.

I did look at Q2 and likewise it's spread across the rpm range. So each point in the rpm range would need to be addressed. That's quite a task  Sad


« Last Edit: March 10, 2014, 02:59:40 PM by Basano » Logged
Basano
Full Member
***

Karma: +90/-3
Offline Offline

Posts: 192


« Reply #49 on: March 11, 2014, 02:40:52 PM »

Still a bit hung up on this.

If KFLDIMX specifies the 'steady state' values, at what point is the system considered 'steady state'  Sad

I actually did have a go at looking at the FR.

There are basically two distinct operating modes:

1. !B_lddy: Quasi steady-state operation with PI control which gives a relatively weak control action. Derivation of the control parameters is carried out via oscillation testing on an engine dynamometer using the Ziegler-Nichols tuning method.

2. B_lddy: Dynamic performance with PID control which gives a strong control action. Derivation of the control parameters is carried out via oscillation testing on an engine dynamometer.
 
These operating states are distinguished via the control error, i.e., a positive deviation above a threshold activates the dynamic control intervention and it is only withdrawn when the deviation changes sign (i.e. the actual value exceeds desired value). The transient is managed with the aim of not causing overshoot over the entire region in the quasi steady-state mode.
 


So if quasi steady state is only entered when actual exceeds desired, does that mean KFLDIMX (steady state) is only referred to when actual exceeds desired i.e overshoot Huh And yet changing KFLDIMX seems to affect the WGDC before the overshoot occurs?

« Last Edit: March 11, 2014, 02:49:33 PM by Basano » Logged
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12233


WWW
« Reply #50 on: March 11, 2014, 03:30:50 PM »

My usage of "steady state" is for the general PID context, not FR or ME specific.
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
phila_dot
Hero Member
*****

Karma: +171/-11
Offline Offline

Posts: 1709


« Reply #51 on: March 11, 2014, 04:06:49 PM »

IIRC steady state is when lde < UMDYLDR
Logged
weijie
Jr. Member
**

Karma: +0/-0
Offline Offline

Posts: 46


« Reply #52 on: March 25, 2014, 12:21:23 AM »

Now my changes.

Same again, here are the maps and I’ve marked what I’ve changed.

I spent much, much too much time worrying about the relationship between KFMIRL and KRMIOP. I read some amazing posts and I’m not going to go into it any further right now since it’s been covered elsewhere far better than I could do! Suffice it to say, KFMIRL values are raised slightly, KFMIOP axis is rescaled to match the increased values in KFMIRL and values in KFMIOP on the changed axis are interpolated accordingly. I believe it’s mathematically OK.

KFMIRL - v1

4.000911.437510.945310.710910.21889.70319.30478.88288.62508.53138.50788.53138.50788.43758.27348.06257.8281
5.999815.726615.281315.070314.625014.109413.687513.171912.843812.656312.585912.562512.492212.351612.140611.906311.6250
8.000219.992219.617219.429718.984418.539118.070317.484417.039116.804716.687516.593816.453116.289116.031315.750015.4219
13.999932.718832.601632.554732.367231.828131.171930.304729.671929.250028.921928.664128.359428.031327.656327.281326.8359
19.999745.421945.304745.234445.046944.695344.109443.148442.351641.765641.203140.710940.218839.750039.257838.789138.2500
30.000366.656366.375066.234466.000065.859465.320364.335963.398462.531361.453160.539159.742259.156358.617258.101657.5391
39.999488.125087.539187.257886.742286.296986.015685.101683.835982.570381.257880.179779.335978.796978.304777.906377.5313
50.0000109.9922109.4766109.1953108.7031108.1406107.5781106.2891104.4609102.7969101.3672100.335999.585999.210999.046999.070399.3281
60.0006132.3516131.9766131.8125131.4375130.9688130.3125128.8828126.7500124.6875122.9531121.7578121.0313120.8672121.1719121.8047122.8359
69.9997154.9453154.7344154.6172154.3594154.0313153.5625152.5078150.6328148.3828146.1797144.6563143.6953143.5781144.1641145.3594147.1875
80.0003179.6841179.4398179.2805179.0032178.9535179.1020178.9808177.8739175.6823172.8974170.8025169.3654169.1139169.7420171.2305173.4012
90.0009211.6003212.1133212.3823212.7985213.0964212.5937211.7293210.0845208.1243205.7168203.7935202.5029202.1585203.0555204.5441206.2987

KFMIOP - v1

% / RPM5007008001000124015202000252030003520400045205000552060006520
10.00783.32793.56603.68193.90174.13974.32284.52124.65394.71504.73334.73484.75164.80194.89655.01255.1498
15.00005.66255.86855.97086.17526.39956.59646.84667.02827.12597.17937.21137.26327.34417.47077.61117.7774
20.01568.01548.18338.27038.45798.66858.88529.18739.41319.54749.63599.70159.79009.903010.057110.223410.4172
35.015615.083315.132115.158115.231315.466315.771516.206416.537516.774016.983017.158517.363017.567417.797918.028318.2968
50.015622.163422.238222.277822.374022.514322.772223.223923.628223.956324.333224.675025.007625.286925.561525.822426.1215
65.015629.219129.345729.408329.518129.586829.859930.336030.798331.240831.797832.287632.699632.000233.271833.514433.7845
80.015636.233536.467036.581436.796636.956837.114037.550438.131738.722239.375339.920040.341240.600640.824940.998841.1514
100.007845.457545.719945.848146.089246.328746.531747.055147.856148.625249.321049.832250.199950.367750.439550.413550.2960
120.000054.498354.701254.800454.992755.221655.509956.140157.043557.905658.659459.193459.536759.610059.475759.204158.7906
160.000072.099972.170572.209272.298972.395172.559672.922373.577274.424375.353976.042376.512376.580776.322175.767874.9619
200.000086.956987.048787.118687.240087.226487.024286.884487.123587.714188.491889.060589.424689.515889.350789.023888.5631



noob question, how did you scale the axis in KFMIOP?
Logged
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12233


WWW
« Reply #53 on: March 25, 2014, 10:11:58 AM »

IIRC steady state is when lde < UMDYLDR

That is "static" vs "dynamic"... also there is a hysteresis filter which prevents it from bouncing around (iirc 10 to UMDYLDR)
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
phila_dot
Hero Member
*****

Karma: +171/-11
Offline Offline

Posts: 1709


« Reply #54 on: March 25, 2014, 04:00:04 PM »

That is "static" vs "dynamic"... also there is a hysteresis filter which prevents it from bouncing around (iirc 10 to UMDYLDR)


ME7.1 Mbox specific:

Yes exactly, D drops to zero and P drops to 2% when B_lddy is clear. This is "steady state" and I is the main control.

B_lddy is cleared if lde == 0 and set if lde > UMDYLDR.
Logged
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12233


WWW
« Reply #55 on: March 25, 2014, 05:11:24 PM »


ME7.1 Mbox specific:

Yes exactly, D drops to zero and P drops to 2% when B_lddy is clear. This is "steady state" and I is the main control.

B_lddy is cleared if lde == 0 and set if lde > UMDYLDR.

Agreed, except I think its lde<10, not lde==0

In any case, just trying to clarify my usage of "steady state", which is for ALL conventional PIDs, including simple ones that do not have parameterized co-efficients.... that is to say, even w/o a case that explicitly turns off the D and/or P components, steady state is defined as when lde is at (or near) zero, and no longer changing, such that P and D are zero *even if they have non zero co-efficients!*
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
phila_dot
Hero Member
*****

Karma: +171/-11
Offline Offline

Posts: 1709


« Reply #56 on: March 25, 2014, 05:47:29 PM »

The factor for lde is 10, so lde < 10 and lde == 0 is equivalent.

I was going off the code.
Logged
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12233


WWW
« Reply #57 on: March 25, 2014, 06:13:14 PM »

The factor for lde is 10, so lde < 10 and lde == 0 is equivalent.

I was going off the code.

Whoa, interesting!

Thank you for the clarification. Another reason to be wary about reading the FR :/

If in doubt, disassemble Sad
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
Basano
Full Member
***

Karma: +90/-3
Offline Offline

Posts: 192


« Reply #58 on: April 08, 2014, 03:11:53 AM »

Hi guys,

I’ve been pretty quiet for a while and haven’t really done very much more than what I’ve posted. In fact, the car is actually back to stock since it went in for a service at the main dealer and I swapped from my modified ECU back to the original unmodified ECU (no problems encountered, just unplugged, swapped and cleared any fault codes).

However, I’ve been able to spend some more time on this over the last two weeks. Using IDA and the FR, I think I’ve located the following ram variables:

0x7FD71C   pvdkds_w   BoostPressureActual
0x80255C   plsol_w   BoostPressureSpecified
0x7FD830   nmot_w   EngineSpeed
0x7FEE58   rl_w      EngineLoad
0x80252E   rlmx_w      EngineLoadSpecified
0x802554   ldtv_w      WastegateDutyCycle
0x80254E   ldrkp_w   LDR-control parameter for P component
0x80254A   ldrkd_w   LDR-control parameter for D component
0x80254C   ldrki_w      LDR-control parameter for I component
0x802546   ldptv_w   LDR, duty cycle from the P controller
0x802548   ldrdtv_w   LDR, duty cycle from the D controller
0x802544   lditv_w      LDR, duty cycle from the I controller
0x80253A   ldimn      Current value for the minimum value limit I component LDR
0x802542   ldimx      Current value for the maximum value limit I component LDR

Now even with the stock ECU, there is an initial boost overshoot as you can see in the graph.

(Sorry about the graph, I know it’s a very busy picture with a lot going on. RPM and Boost on left axis, P, I & D on right axis)

Also in the graph I’ve logged ldptv_w, ldrdtv_w and lditv_w. I wanted to see how the P, I and D components contribute.



Previously in this thread I’ve targeted KFLDIMX to clamp down on the initial overshoot. I think this is a bit unwieldy since I’m basically then running at the I limit?

What I’m going to try now is the Derivative component. In the graph I can see how it increases (gets more negative) until it reaches its most negative value just before the actual boost exceeds the specified boost. I propose to increase this so it’s larger (gets even more negative).

To accommodate the whole rpm range, I’m thinking of copying the entire row of values in KFLDRQ2 from row hPa=100 to row hPa=200 and then using new values in row hPa=100 (their value would be row hPa=200 plus 20%). Make any  sense?

As always, comments appreciated!
Logged
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12233


WWW
« Reply #59 on: April 08, 2014, 03:27:14 PM »

Yes. Adjust Q2.

Also consider using ECUxPlot.
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
Pages: 1 2 3 [4] 5 6 ... 26
  Print  
 
Jump to:  

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Page created in 0.151 seconds with 16 queries. (Pretty URLs adds 0.002s, 0q)