exponenta event banner

ssSetStateAbsTol

Задайте абсолютный допуск, используемый решателем с переменным шагом для определенного непрерывного состояния S-функции.

Синтаксис

void ssSetStateAbsTol(SimStruct *S, const int_T idx, const Real_T val)

Аргументы

S

SimStruct представляет S-функциональный блок.

idx

Индекс, представляющий непрерывное состояние S-функции. Этот индекс находится в диапазоне от 0 кому n-1 где n - число непрерывных состояний в S-функции.

val

Значение абсолютного допуска. Значение должно быть положительным действительным скаляром.

Описание

Используется для установки абсолютных допусков, используемых для непрерывных состояний S-функции решателем с переменным шагом для текущего моделирования.

Примечание

Абсолютные допуски не назначаются решателям с фиксированным шагом. Поэтому не следует вызывать этот макрос до тех пор, пока не будет проверено, что моделирование использует решатель с переменным шагом. Вы можете использовать ssIsVariableStepSolver чтобы определить, использует ли модель решатель с переменным шагом.

Языки

C, C++

Пример

/*
 * Set the absolute tolerances based on the parameters
 */
static void mdlStart(SimStruct *S)
{
    const real_T absTol0 = ( mxGetPr(ssGetSFcnParam(S,0)) )[0];
    const real_T absTol1 = ( mxGetPr(ssGetSFcnParam(S,1)) )[0];
    
    /* Absolute tolerance is not used by fixed-step solvers
     * Therefore every call to absolute tolerance API must be guarded
     */

    if ( ssIsVariableStepSolver(S) ) {
        ssSetStateAbsTol(S, 0, absTol0);    
        ssSetStateAbsTol(S, 1, absTol1);    
    }
}

См. S-функцию sfun_atol.c используется в sfcndemo_sfun_atol полный пример использования этой функции.

Представлен в R2011a