If you're trying to simulate them, here's one way to think of it. Clearly, a hue, saturation, value average (HSV) doesn't give you the values you want, right? But, is it fair to assume that if you were to have "offset" values defined for the averaging of colors at fixed points along the spectrum, and then interpolated between the offset values, that it might work?
For example, if you decided that the average of red and yellow was too red, but the right saturation and lightness, you would have an entry in an offset table at H1S1V1H2S2V2 with hue=20,value=0,saturation=0. If you decided that a red and green merging was too bright, you could have an entry at H1S1V1H2S2V2 for hue=0,lightness=-40,saturation=0. Etc.
Then, to calculate the HSV values for an arbitrary mix of colors, you first average the H, S, and V values and store the result. Then, you look for the "nearest" X entries, where "nearest" is defined as the least total difference between H, S, and V values for both the first and second color being blended. Then, you do an average, weighted by how "near" the entries were, of the entries's H, S, and V offsets, to get an expected offset for this color blending. You add that offset to your result's H, S, and V values, and viola! - you have as close as physically possible to ensuring accurate color mixing.
The more entries you make, the more accurate your color mixing will be - and it's all based on what *you* think is appropriate color mixing.