Simulink with arduino : data acquisition
I just made my GY-521(MPU6050) work with Simulink using s-function.
I wish this would be helpful for you.

I am using an Arduino MEGA 2650 board. The sensor data is read in in real time.
Note that currently only Arduino MEGA 2650, Arduino MEGA 2650 ADK, and Arduino DUE support the real time windows target. 
If you are using other types of board, this answer may not applied.

Your hardware connection looks correct. But if you have some troubles you can refer to mine for checking:

5v VCC
GND GND
SCL SCL(check the register map of your board)
SDA SDA(check the register map of your board)


Above four connections are adequate if you just read raw sensor data.
INT is needed if you are going to read fused data. But I did not try that.

Next you may write a small program in Arduino IDE to ensure everything works.
You can refer to the Arduino MPU6050 examples.
The code written here will be used to construct your Simulink s-function later.

Now you can start to build your Simulink block using s-function builder.
If you did not do this before, here is a good tutorial:

https://m.youtube.com/watch?v=_OLctOFjjYQ

In our case, you need to copy Wire.h, twi.h and their .c counterparts in your current working directory where your s-function resides.

And do not forget to rename generated .c file to .cpp, and add external "C" declaration. All of these are illustrated in above video tutorial.

After all of above are done, you turn your simulation mode to external, and run.
You can view your sensor data in scope if everything goes right.



Source code and configuration used in my function:
I include all headers in the Libraries panel of S-Function Builder,

#ifndef MATLAB_MEX_FILE
#define ARDUINO 100
#include &lt;Arduino.h&gt;
#include &lt;Wire.h&gt;
#include &lt;Wire.cpp&gt;
#include &lt;twi.h&gt;
#include &lt;twi.c&gt;
#define MPU 0x68
#endif


Wire.* and twi.* files are copied from Arduino IDE's directory. I put these files along with my S-Function block file.

The address of I2C is 0x68 here.

Next, the code for sensor outputs are placed in Outputs panel. And do not forget to add ports in Data Properties panel.

#ifndef MATLAB_MEX_FILE
Wire.beginTransmission(MPU);
Wire.write(0x3B);
Wire.endTransmission(false);
Wire.requestFrom(MPU, 14, true);

int raw = Wire.read() &lt;&lt; 8;
raw = raw | Wire.read();
ax[0] = (float)raw / 8192.0f;

raw = Wire.read() &lt;&lt; 8;
raw = raw | Wire.read();
ay[0] = (float)raw / 8192.0f;

raw = Wire.read() &lt;&lt; 8;
raw = raw | Wire.read();
az[0] = (float)raw / 8192.0f;

raw = Wire.read() &lt;&lt; 8;
raw = raw | Wire.read();
temp[0] = (float)raw / 340.0f + 36.53f;

raw = Wire.read() &lt;&lt; 8;
raw = raw | Wire.read();
gx[0] = (float)raw / 131.0f;

raw = Wire.read() &lt;&lt; 8;
raw = raw | Wire.read();
gy[0] = (float)raw / 131.0f;

raw = Wire.read() &lt;&lt; 8;
raw = raw | Wire.read();
gz[0] = (float)raw / 131.0f;
#endif


Finally, initialization and configuration are done in Discrete Update panel.

#ifndef MATLAB_MEX_FILE
if (xD[0] != 1) {
    Wire.begin();

    /* Do not sleep */
    Wire.beginTransmission(MPU);
    Wire.write(0x6B);
    Wire.write(0);
    Wire.endTransmission(true);

    /* Gyroscope full scale range: 250 degs/s */
    Wire.beginTransmission(MPU);
    Wire.write(0x1B);
    Wire.write(0);
    Wire.endTransmission(true);

    /* Accelerometer full scale range: 4g */
    Wire.beginTransmission(MPU);
    Wire.write(0x1C);
    Wire.write(8);
    Wire.endTransmission(true);

    xD[0] = 1;
}
#endif


Please refer to your board's datasheet for specific address and LSB scales. I am using GY-521 here.