Main Content

Current source with optional DC, AC, and noise components

**Library:**Simscape / Electrical / Sources

The Current Source block implements a current source with
DC, AC, and noise components. The current flowing through the source from the
**–** terminal to the **+** terminal is given by:

$$i={i}_{DC}+{i}_{AC}\mathrm{sin}\left(2\pi ft+\varphi \right)+{i}_{N}$$

where:

*i*_{DC}is the steady-state DC current component.*i*_{AC}is the amplitude of the AC current component.*f*is the frequency of the AC component.*ϕ*is the phase offset of the AC component.*i*_{N}is the noise current.

You can configure your source as DC-only, AC-only, or a combination of both. By default, both AC and DC components are set to 0. Define the AC/DC current by specifying nonzero parameter values after placing the block in your model.

The noise component is also optional. If you set the **Noise mode**
parameter to `Enabled`

, then the added noise current is given
by:

$${i}_{N}=\sqrt{{P}_{i}/2}\frac{N\left(0,1\right)}{\sqrt{h}}$$

where:

*P*_{i}is the single-sided noise power spectral density for a 1 ohm load, in A^2/Hz.*N*is a Gaussian random number with zero mean and standard deviation of one.*h*is the sampling interval.

By default, the **Noise mode** parameter is set to
`Disabled`

, and the current source generates no thermal
noise.

The block generates Gaussian noise by using the PS
Random Number source in the Simscape™ Foundation library. You can control the random number seed by setting the
**Repeatability** parameter:

`Not repeatable`

— Every time you simulate your model, the block resets the random seed using the MATLAB^{®}random number generator:seed = randi(2^32-1);

`Repeatable`

— The block automatically generates a seed value and stores it inside the block, to always start the simulation with the same random number. This auto-generated seed value is set when you add a Current Source block from the block library to the model. When you make a new copy of the Current Source block from an existing one in a model, a new seed value is generated. The block sets the value using the MATLAB random number generator command shown above.`Specify seed`

— If you select this option, the additional**Seed**parameter lets you directly specify the random number seed value.

Simulating with noise enabled slows down simulation. Choose the sample time (

*h*) so that noise is generated only at frequencies of interest, and not higher.