I recently reverse engineered a general motors PCM that was used on the mid 90's GMC/chevrolet trucks. Its based on a modified 68HC11F1 MPU. Well, I figured out how it works, but not how to work it. One thing that it has in it is a very sophisticated PID routine to control the idle. In previous computers, the idle was little more then an afterthought and vehicles didnt idle well. I guess people must've really raised a stink about it because they went all out in the later computers.
Anyway, the idle speed on is controlled via a pintle thats moved in and out by a steper motor. Step it out and the air to the engine increases. Step it in and the air decreases. Easy enough, right? Well, it used to be, but now, not quite...
The PID routine itself is based on the actual percentage of airflow. Later, once all the terms have been added up, the airflow is then translated to the desired steps for the idle air control valve.
There are multiple airflow integrater terms for each state of engine operation, a proportional airflow term, and three derivative terms. One for airflow, which goes along with the IAC valve control and two more. One for fuel, and another for the spark advance, both obviously to suppress transients.
In addition, there are additional routines to construct the desired idle speed based on various parameters, everything from engine temp to the output of the alternator. At the end, the RPM error is constructed from this.
Ok, whew... Now for the question.
Where the hell do I start? Are there any general tuning faqs or liturature to help guide me? Im lost on how to actually tune a full PID control routine.