na_0024: Shared data in MATLAB functions

Рекомендации по идентификатору подраздела

  • NA-MAAB - a

  • JMAAB - a

Версии MATLAB

Все

Правило

Идентификатор подраздела a

Сигнальные линии должны использоваться, чтобы соединить данные, которые являются общими между блоками MATLAB Function (Simulink).

Пользовательский параметр

Неприменимо

Пример - Исправление

function ErrorFlag = EngineFaultEvaluation(EngineData,ErrorFlag_In)
%#codegen
	RMP_HIGH = 10000;
	RMP_LOW = 10;
	HIGHRPMFAULT = 2^1;
	LOWRPMFAULT = 2^2;
	ErrorFlag = ErrorFlag_In;
	if EngineData > RPM_HIGH
		ErrorFlag = bitor(ErrorFlag,HIGHRPMFAULT);
	end
	if EngineData < RPM_LOW
		ErrorFlag = bitor(ErrorFlag,LOWRPMFAULT);
	end
	
function ErrorFlag = WheelFaultEvaluation(WheelData,ErrorFlag_In)
%#codegen
	SLIP_HIGH = 1000;
	WHEELSLIP = 2^3;
	ErrorFlag = ErrorFlag_In;
	if WheelData > SLIP_HIGH
		ErrorFlag = bitor(ErrorFlag,WHEELSLIP);
	end
end
	
Пример - Неправильный

function EngineFaultEvaluation(EngineData)
%#codegen
	global ErrorFlag_DataStore
	RMP_HIGH = 10000;
	RMP_LOW = 10;
	HIGHRPMFAULT = 2^1;
	LOWRPMFAULT = 2^2;
	if EngineData > RPM_HIGH
		ErrorFlag_DataStore = bitor(ErrorFlag_DataStore,HIGHRPMFAULT);
	end
	if EngineData < RPM_LOW
		ErrorFlag_DataStore = bitor(ErrorFlag_DataStore,LOWRPMFAULT);
	end
	
function WheelFaultEvaluation(WheelData)
%#codegen
	global ErrorFlag_DataStore
	SLIP_HIGH = 1000;
	WHEELSLIP = 2^3;
	if WheelData > SLIP_HIGH
		ErrorFlag_DataStore = bitor(ErrorFlag_DataStore,WHEELSLIP);
	end
end
	

Объяснение

Идентификатор подраздела a:

  • Когда используется хранилище данных, удобочитаемость потока данных уменьшается и может привести к ошибкам в опорном тайминге обновления.

Верификация

Проверка Model Advisor: Проверьте код MATLAB на глобальные переменные (Simulink Check)

Последнее изменение

R2020a

Введенный в R2020a