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

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