Этот пример показывает вам, как подтвердить выход алгоритма круиз-контроля с помощью Vehicle Network Toolbox™ и MATLAB™ основанная на классах среда модульного тестирования.
Это использует класс модульного теста MATLAB tCruiseControlAlgorithmVerifier.m, чтобы обеспечить входные команды через Сеть области контроллера (CAN) к модели Simulink™ алгоритма круиз-контроля, чтобы инициировать функциональное поведение алгоритма, и затем получает обратную связь от модели до CAN и подтверждает ожидаемое поведение алгоритма. Это также генерирует отчет PDF результатов испытаний, которые могут использоваться для анализа. Для получения дополнительной информации о том, как записать тестовый класс, смотрите tCruiseControlAlgorithmVerifier.m файл. Диалоговое окно в том классе помогает вам изучить метод подготовки тестового класса и что делает каждый отдельный тест.
Этот пример использует Виртуальные каналы CAN MathWorks™, чтобы связаться с алгоритмом.
Алгоритм круиз-контроля имеет блок Virtual CAN Inputs, который содержит настройку канала CAN с помощью Блока Configuration CAN и получает сообщение, управлял от тестового класса MATLAB с помощью блока CAN Receive. Это затем использует блок CAN Unpack, чтобы разделить отдельные сигналы от полученного сообщения CAN, которые затем преобразованы в их соответствующие типы данных и переданы к фактическому алгоритму круиз-контроля.
Блочные дома Алгоритма Круиз-контроля Конечный автомат Алгоритма Круиз-контроля, который является диаграммой Stateflow. Этот алгоритм работает на основе входных параметров, полученных от блока Virtual CAN Inputs, и является настройкой, чтобы инициировать, когда входные условия достигли определенного условия. Выходные параметры диаграммы Stateflow являются ожидаемой крейсерской скоростью транспортного средства и состоянием обязательства алгоритма.
Блок Virtual CAN Outputs использует блок CAN Pack, чтобы загрузить отдельные сигналы в одно сообщение CAN, которые затем передаются на шину CAN с помощью блока CAN Transmit. Это сообщение обратной связи используется для верификации в тестовом классе MATLAB.

Создайте набор тестовых классов, чтобы запуститься. В этом примере tCruiseControlAlgorithmVerifier.m является единственным тестом в наборе. Можно добавить дополнительные тесты в том же тестовом наборе. 1xN Тестовые списки массива количество тестов, не количество тестовых классов.
suite = testsuite({'tCruiseControlAlgorithmVerifier'})suite =
1×3 Test array with properties:
Name
ProcedureName
TestClass
BaseFolder
Parameterization
SharedTestFixtures
Tags
Tests Include:
0 Parameterizations, 0 Shared Test Fixture Classes, 0 Tags.
Создайте исполнителя тестов, чтобы выполнить набор тестов в тестовом наборе. Это задает бегуна без специальных плагинов.
runner = matlab.unittest.TestRunner.withNoPlugins
runner =
TestRunner with properties:
ArtifactsRootFolder: "C:\Users\sdange\AppData\Local\Temp"
PrebuiltFixtures: [1×0 matlab.unittest.fixtures.Fixture]
Setup имя файла PDF, в котором вы хотите, чтобы ваш выход был получен.
pdfFile = 'CruiseControlAlgorithmTestReport.pdf'pdfFile = 'CruiseControlAlgorithmTestReport.pdf'
Добавьте плагин создания PDF в своего исполнителя тестов. Во-первых, создайте плагин.
plugin = matlab.unittest.plugins.TestReportPlugin.producingPDF(pdfFile)
plugin =
PDFTestReportPlugin with properties:
IncludeCommandWindowText: 0
IncludePassingDiagnostics: 0
LoggingLevel: Terse
PageOrientation: 'portrait'
Сопоставьте этот плагин с исполнителем тестов, чтобы сгенерировать отчет PDF в рабочей директории.
runner.addPlugin(plugin)
Запустите тестовый набор с помощью исполнителя тестов.
result = runner.run(suite)
Generating test report. Please wait.
Preparing content for the test report.
Adding content to the test report.
Writing test report to file.
Test report has been saved to:
\\central-mi\home$\sdange\Documents\MATLAB\Examples\vnt-ex21299704\CruiseControlAlgorithmTestReport.pdf
result =
1×3 TestResult array with properties:
Name
Passed
Failed
Incomplete
Duration
Details
Totals:
2 Passed, 1 Failed (rerun), 0 Incomplete.
214.3521 seconds testing time.
Откройте файл PDF, созданный с заданным именем. Настройка по умолчанию создает его в текущей рабочей директории. Существует две вещи наблюдать в отчете PDF:
Полный результат утверждает конечный результат на основе того, передали ли все тесты или нет. Круговая диаграмма показывает, сколько тесты передали и привели к сбою из общего количества заданных тестов.

Сводные данные отказа показывают, какой тест провалил и по какой причине.

Нажатие на вкладку деталей на правой стороне имени отказа обеспечивает подробную причину отказа, наряду с диагностическим сообщением, которое вы сконфигурировали в тестах.
