From what I gather it appears the OP is using a frequency sweep to determine the transfer function for the system under test, but the sweep rate is way beyond the frequency range defined by the sampling rate chosen.

Also the amplitude appears to be sweeped, there is no need for that; with a real system we would ensure the input produces the strongest output that is still within the linear range of the system (not saturating or compressing) and simply compare output to input for each frequency. So as long as the amplitude is in this region, at the input it can be held constant (unless we have a dynamic range issue with the system where we want to resolve high attenuation levels in which case we increase the input amplitude at those points. 

The effect of the ramp rate needs to considered carefully as this imposes a frequency modulation on the input signal. To avoid the complexity of that, choose a ramp rate such that the change in frequency is significantly (<10 x) slower than the resolution bandwidth of the FFT. 

We can see this as follows:

The resolution bandwidth of a DFT is $1/T$ where $T$ is the total duration of the windowed data (assuming a rectangular window).  In this case that the OP is using there are $3000$ samples with no zero-padding with a sampling rate of $0.1$ Hz given the step size for t (if we assume $t$ is in seconds). 

This means the resolution bandwidth for each of the DFT bins is $0.1/3000 = 3.333e-5$ Hz. 

Now we consider the ramp rate of the input signal. The frequency is in Hz with a step size of 100, so for every new sample in time we have a frequency that has indexed by 100 Hz. This is completely inconsistent with the sampling rate chosen by T.  Suggesting that I am either reading the code presented entirely wrong or the input is greatly undersampled.

To fix this know that the largest bin in the DFT represents the sampling rate $F_s$, determine the resolution bandwidth which is $F_s/N$ where $N$ is the total number of samples, and ensure the frequency sweep spends at least 10 samples or more within this bandwidth when considering the frequency of the ramp from start to finish over the $N$ samples. This will avoid the further complication of dealing with the frequency modulation effects.    

For further details on the frequency modulation effects see this question detailing the mathematics of a frequency ramp further:

https://dsp.stackexchange.com/questions/31578/simulation-of-a-frequency-ramp

------------------
My old answer, leaving for now

The FFT is a discrete time process so you would first need to have a transfer function in units of $z$ not $s$. This is done by mapping from the s-domain to the z-domain where multiple methods exist (matched-z, impulse invariance, bilinear transform etc where there are many other posts detailing each of these further). For example: https://dsp.stackexchange.com/questions/31830/how-why-are-the-mathcal-z-transform-and-unit-delays-related/31841#31841




Once you have a transfer function of z, you can get the frequency response from the Discrete Time Fourier Transform, which can be approximated by zero padding impulse response prior to taking the FFT. 

If you have a transfer function in z, then simply substitute $z= e^{j\omega}$ and sweep the normalized radian frequency $\omega$ from $0$ to $2\pi$. 


Another approach if you just are looking for a tool is to use the MATLAB/Octave freqs command which will give you the transfer function of a polynomial in s directly (as you can do using freqz for a discrete time transfer function).

Since you are using the control toolbox, you can also use the bode command directly on your transfer function object.