ssSetStateAbsTol

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

Синтаксис

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

Аргументы

S

SimStruct, представляющий Блок s-function.

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 для полного примера, который использует эту функцию.

Смотрите также

ssGetStateAbsTol, ssIsVariableStepSolver

Введенный в R2011a
Для просмотра документации необходимо авторизоваться на сайте