ラピッドコントロールプロトタイピング(RCP)による 制御アルゴリズムのテスト

Similar documents
2016 Trademark Announcement -Wide-

SimulinkによるReal-Time Test環境の構築

SimscapeプラントモデルのFPGAアクセラレーション

HILS実装のためのプラントモデリングツールの活用

Presentation Title

Presentation Title

Presentation Title

f2-system-requirement-system-composer-mw

Presentation Title

CANapeを用いたラピッドコントロールプロトタイピングのバイパス手法による制御モデル開発

モータ HILS の概要 1 はじめに モータ HILS の需要 自動車の電子化及び 電気自動車やハイブリッド車の実用化に伴い モータの使用数が増大しています 従来行われていた駆動用モータ単体のシミュレーション レシプロエンジンとモータの駆動力分配制御シミュレーションの利用に加え パワーウインドやサ

PowerPoint プレゼンテーション

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

モデルベースデザイン(MBD)を始めましょう!

MATLAB® における並列・分散コンピューティング ~ Parallel Computing Toolbox™ & MATLAB Distributed Computing Server™ ~

MATLAB®製品紹介セミナー

制御のためのSimulink入門

Microsoft PowerPoint - EXPO2012_AKASAKA_rev.2.pptx

(Microsoft PowerPoint - E6x5C SDXC Demo Seminar [\214\335\212\267\203\202\201[\203h])

Expo 2014

PCI マルチファンクションデータ収集カードおよび 6U CompactPCI 高速デジタイザのシステム構成例 PCI バスを使用してデータ収集 PCI バスを持った PC + Acqiris 社高速デジタイザまたは Advantech 社マルチファンクションデータ収集カード PCIバスを拡張してデ

リファレンスアプリケーション RefApp7

MATLAB ではじめる画像処理とロボットビジョン ~ 機械学習による物体認識と SLAM~ MathWorks Japan アプリケーションエンジニアリング部信号処理 通信 木川田亘 2015 The MathWorks, 1Inc.

PowerPoint Presentation

PowerPoint プレゼンテーション

システムソリューションのご紹介

AD-PROCYON システムが提供する機能とは? Next Generation Real-time Simulator/System Controller Platform 現行のシステムの問題点 プロセッサーの演算能力の制限 I/O インターフェースのレイテンシー AD-PROCYON システ

(Microsoft PowerPoint - XAnalyser3_\217\320\211\356.pptx)

PowerPoint プレゼンテーション

HP Z200 Intel i5 CPU 3.33GHz Low Profile 仕様 380 LP Assist 2.2 Instinct v3.0 以降 いいえいいえはいいいえ 4GB および 8GB DDR ECC (2 枚構成の DIMM) ISIS へ接続するにはオンボードの

CW6_A1441_15_D06.indd

MATLAB EXPO 2019 Japan プレゼン資料の検討

Microsoft Word - nvsi_050110jp_netvault_vtl_on_dothill_sannetII.doc

完成版_セミナー発表資料110928

Simulinkモデル開発における工夫事例

CPU410-5H_jp

maxon hat den richtigen drive

電力線重畳型機器認証技術

OPCインターフェースによるPLC計装システムの実践的ソリューション

WAGO PROFIBUS バスカプラ/コントローラと、QJ71PB92Dとのコンフィグレーションマニュアル

非圧縮の1080p60ビデオをサポートする3Gbps SDIコネクティビティ・ソリューション

HD View Single Windowsセットアップガイド

Introduction to System Identification

f3-power-train-simulation-mw

U4611A/B USB 2.0/3.0プロトコル・アナライザ バージョン3.7.x(MegaZoomテクノロジー採用)

MAAB でのプレゼンテーション に関する提案

2D/3D CAD データ管理導入手法実践セミナー Autodesk Vault 最新バージョン情報 Presenter Name 2013 年 4 月 2013 Autodesk

Multi-konzeptionelle Verwendung von Low-Cost Hardware in der Lehre

世界の技術を日本の品質で すべてはお客様の ベストパートナーであるために 1 2 納入分野 斬 新な 企画 展開力 高 品質 ダックスが持つ つの特長 3 交通機器 金融機器 医療機器 製造機器 工作機器 あらゆる分野へ 高信頼性 3 最 新 最適な 技術と開発 主な開発 生産製品 ダックスは産業用

Maximize the Power of Flexible NetFlow

Microsoft PowerPoint - RL78G1E_スタータキットデモ手順_2012_1119修正版.pptx

AMS Expoコンテンツ

スライド 1

MX/RSシリーズご紹介

02_Matrox Frame Grabbers_1612

Microsoft Word - RefApp7インストールガイド.doc

PowerPoint Presentation

HMS Industrial Networks HMS INDUSTRIAL NETWORKS AB Anybus X-gatewayX のご紹介 HMS FA ネットワーク対応組込インターフェースでのリーディングカンパニー FA ネットワーク対応組込 I/F の製造 販売に特化した世界で唯一のサプ

CELSIUSカタログ(2012年7月版)

Quad port LANカード(10GBASE) 取扱説明書

HPE Integrity NonStop NS2300 サーバー

PowerPoint プレゼンテーション

matrox0

Microsoft Word - Dolphin Expressによる10Gbpソケット通信.docx

スライド 1

Presentation Title

<4D F736F F F696E74202D204E505F8E9F90A291E E815B CFC82AF B838B B838B C5E B8D5C91A E E4E41532E7

智美塾 ゆもつよメソッドのアーキテクチャ

富士通PCサーバ「PRIMERGY RX2530 M4」における「TeraStation TS5010 / TS3010」シリーズ動作検証報告

Microsoft PowerPoint _iwasaki

EnSightのご紹介

038_h01.pdf

EB-RL7023+SB/D2

プリント

エンジニアリング・サービスから見たMBD導入の成功・失敗

CELSIUSカタログ(2012年5月版)

Microsoft Word - HowToSetupVault_mod.doc

背景 1 / Reprinted with permission from paper c 2013 SAE International.

TRQerS - Introduction

457.ai

PowerPoint プレゼンテーション

(Microsoft PowerPoint - Mirapoint\220\273\225i\221\316\224\344\225\\\(6\203V\203\212\201[\203Y_7\203V\203\212\201[\203Y\).ppt)

SELECT Server XM (ver

製品開発の現場では 各種のセンサーや測定環境を利用したデータ解析が行われ シミュレーションや動作検証等に役立てられています しかし 日々収集されるデータ量は増加し 解析も複雑化しており データ解析の負荷は徐々に重くなっています 例えば自動車の車両計測データを解析する場合 取得したデータをそのまま解析

MATLAB/SimulinkによるAMS活用事例 ~Mixed-Signal Library 2.0のご紹介~

ReferSTAR 78K/Kx2(CT-781) Applilet EZ PLプログラム集

Industrial shields brochure_JP

Transcription:

ラピッドコントロールプロトタイピング (RCP) による制御アルゴリズムのテスト MathWorks Japan アプリケーションエンジニアリング部 ( 制御 ) アプリケーションエンジニア新井克明 2017 The MathWorks, Inc. 1

モデルベースデザインが高機能 多機能化する製品の迅速な開発をサポート シミュレーションを通した動作 性能検証とコード生成のテクノロジーを活用 シームレスな開発環境で素早い製品リリースを可能にします 複雑な機能と高い信頼性を両立するためのテスト 検証ワークフローを実現します 仕様 / 実現性を実機レス & 低コストで素早く検討 実機テストへの素早いシフト HILS 制御装置試験 制御対象 モデリング 制御対象モデル + C/HDL コード自動生成 RCP 制御対象 制御ロジック 制御ロジックモデル MCU/DSP 2

リアルタイムテストの種類について RCP: Rapid Control Prototyping コントローラモデルを専用 HW で模擬 RCP シミュレータ制御対象 ( 実物 ) 制御したい対象を専用 HW で模擬 HILS: Hardware-In-the-Loop Simulation コントローラ ( 実物 ) HIL シミュレータ 3

RCP: Rapid Control Prototyping 汎用性の高い RCP ハードウェアを活用して検討したアルゴリズムを素早く実装 & テスト MILS シミュレーションによる検討 RCP 環境へ実装 RCP 制御対象実機を活用した コントローラのプロタイピング PCG マイコン向け量産コード生成 アルゴリズムの再検討 アルゴリズムのモデリング / シミュレーションベースの機能 性能検討 RCP ハードウェア 自動コード生成 & ビルド 実際の制御対象 実機ベースでの機能 性能検証 4

実機テストやデータ計測 可視化で活用できる MathWorks の各種ツール Simulink Real-Time RCP/HIL テスト環境 ( ハードウェア リアルタイム ) データ収集 (DAQ) 系ツールボックス Data Acquisition Toolbox :DAQカード入出力 Image Acquisition Toolbox : カメラ入力 Instrument Control Toolbox : シリアル / イーサネット Vehicle Network Toolbox :CAN 通信 Simulink Desktop Real-Time 簡易実機テスト環境 ( ソフトウェア リアルタイム ) MATLAB&Simulink 5

Simulink Real-Time の主な機能 簡単な I/O へのアクセス ハードウェアアクセス用のドライバブロックを提供 適合 測定用 GUI マルチコア実行 FPGA 実装による高速化 パラメータ調整 信号測定用 GUI を標準で提供 サンプリング時間ごとにタスクとしてコア分散実行 Core 2 HDL Coder で高速演算部分を実装 FPGA Core 1 プロセッサ ターゲット HW 単独で可視化ターゲット HW 単独で可視化環境を提供 アプリケーションの配布適合用 GUI 含めた実行環境の配布 テストの自動化 Simulink Test でテストシナリオを自動実行 バイパス開発の環境 XCP で開発用 ECU へのアルゴリズムを追加実装 本開発環境 テスト環境 1 テスト環境 2 RCP ECU 6

アジェンダ - ラピッドコントロールプロトタイピング (RCP) による制御アルゴリズムのテスト - RCP 環境の構築例 モデルのビルド 実行の基本的な手順 信号のモニタリング / ロギングとパラメータのチューニング テスト信号の入力方法 専用ハードウェア Speedgoat の紹介 ハードウェアのバリエーション サポートしている主な IO と通信プロトコル FPGA ボードへのアルゴリズムの実装 FPGA ボードの活用ケース FPGA 実装のワークフローの紹介 まとめ 7

モデルのビルド 実行の手順 1 4 2 3 Driver blocks Simulink Model Dialog Fields Connect to real-time application 1 ハードウェアに搭載されたIOボードに対応する設定用ブロック ドライバブロックをモデルに配置します 2 アルゴリズムとドライバブロックを信号線で接続します 3 設定用ブロック ドライバブロックからダイアログを開いて I/Oに関する各種設定を行います 4 ビルドボタンを押してコード生成およびビルドを行いますビルド後 アプリケーションは自動的にダウンロードされ すぐに実行可能な環境が整います 8

RCP テスト環境の実行手順 ( モーター制御用 RCP) 9

Simulink Real-Time の信号のモニタリング方法 Simulink Real-Time Explorer Instrument パネル等を利用してモニタリング環境を作成 ターゲットディスプレイ ハードウェアから汎用 VGA ディスプレイに直接表示 Simulation Data Inspector Simulink 標準の信号ビューワーへストリーミング MATLAB コマンドラインで信号を取得 & カスタム GUI として統合 tg = slrt; sid = getsignalid(tg, 'Gain1'); getsignal(tg, sid) 10

Simulink Real-Time の信号のロギング File Scope を使った HDD へのロギング 専用 Scope ブロックで指定した信号を HDD/RAM に保存 Simulation Data Inspector でのデータのエクスポート Simulation Data Inspector でモニタリングしたデータをワークスペースや MAT ファイルに保存 ホスト PC の処理負荷が大きい場合や高サンプリングでのロギングした場合にデータが欠落する場合があります 11

Simulation Data Inspector によるデータモニタ / ロギング 12

パラメータのオンラインでのチューニング RCP テスト中に Simulink Real-Time Explorer からパラメータの変更が可能です [Applications] ペーン [Model Hierarchy] 右クリック [View Block Parameters] 表示するパラメータのフィルタリングもできます よく利用するパラメータはリストとして別ファイルで管理 グループ作成 : [Groupings] 右クリック [New Parameter Group] ハードウェアへ値を送信 ハードウェアから値を取得 登録先を指定 パラメータの設定 13

RCP ハードウェアでのテストシグナルの作成 Simulink の標準ブロックを使ったテスト信号の作成 入力が可能です Inport ブロック トップレイヤに配置することでワークスペースの時系列データをアサインできます 各種 Source ブロック Simulink Test の Test Sequence ブロックで動的なテスト信号を作成できます 3 になれば 傾き 6 の単調減少 外部信号 テスト信号 2 秒以降 gear が 3 になるまで傾き 2 の単調増加 処理内容 シーケンスの遷移条件 遷移先のシーケンス 2 秒まで傾き 1 の単調増加 14

アジェンダ - ラピッドコントロールプロトタイピング (RCP) による制御アルゴリズムのテスト - RCP 環境の構築例 モデルのビルド 実行の基本的な手順 信号のモニタリング / ロギングとパラメータのチューニング テスト信号の入力方法 専用ハードウェア Speedgoat の紹介 ハードウェアのバリエーション サポートしている主な IO と通信プロトコル FPGA ボードへのアルゴリズムの実装 FPGA ボードの活用ケース FPGA 実装のワークフローの紹介 まとめ 15

Simulink Real-Time の実行用プラットフォーム Speedgoat MathWorks/Speedgoat の 2 社体制でソリューションを提供 MathWorks: ソフトウェア (Simulink Real-Time) の開発 Speedgoat: ハードウェア (Speedgoat) の開発 MathWorks のグループ企業 ( 本社 : スイス ベルン ) Simulink Real-Time 向け筐体 IO ボードの開発に特化 MathWorks Speedgoat Your Hardware/Systems 16

Speedgoat のハードウェアバリエーション Performance Mobile Baseline プロセッサ Intel Core i7 3.5GHz (4 core) プロセッサ Intel Core i7 2.5GHz (2 core) プロセッサ Intel Quad Core 2GHz メモリ /HDD 4GB / 64GB-SSD メモリ /HDD 4GB / 64GB-SSD メモリ /HDD 4GB / 64GB-SSD 用途 / 特徴 用途 / 特徴 用途 / 特徴 ラボ向け据え置き型筐体 HIL/RCP 用途 ハイスペックなプロセッサを活用して演算負荷の大きいプラントモデルを実行 フィールド 車載テスト向けハードウェア RCP 用途 省スペース /CPU パフォーマンスのバランス型 ファンレス仕様 小型のエントリーモデル RCP 用途 ( バイパス開発 ) コンパクトなハードウェア構成 19cm( 幅 ) 19cm( 奥行 ) 8cm( 高さ ) ( 拡張スロット無しの場合のサイズの目安 ) 17

I/O について Analog Digital Pulse Train Encoders Video LVDT/RVDT, Synchro/ Resolver Shared Memory Fault Insertion Temperature Strain, Pressure Accelerometers Resistors A/D, D/A, frame support TTL, LVCMOS, LVDS, RS422, RS485 PWM 生成 キャプチャ 割り込み, negation アブソリュートエンコーダおよびインクリメンタルエンコーダの測定 / シミュレーション (quadrature および SSI), EnDAT 2.2, SSI2, SPI, BiSS エンコーダの測定 USB (Webcams), CameraLink LVDT, RVDT, シンクロ, およびレゾルバの測定 / シミュレーション シェアード / リフレクティブメモリ 故障挿入のための電気機械式もしくは半導体スイッチ 熱伝対, 測温抵抗体 (RTD), NTC サーミスタの計測 / シミュレーション ひずみゲージ, 圧力センサの測定 / シミュレーション アンプ内蔵型加速度センサ (IEPE/ICP) の測定 抵抗器, ポテンショメータ, リードリレー (SPDT, DPST, SPST) のシミュレーション 18

サポートしている主な通信プロトコル 一般的な製品開発 産業オートメーション 自動車 航空宇宙 Serial RS232, RS422, RS485, SDLC, HDLC UDP / TCP CAN / SAE J1939 SPI Master and Slave I2C Master and Slave Profinet Controller (Master) Profinet Device (Slave) Modbus/TCP Client (Master) Modbus/TCP Server (Slave) Modbus RTU Profibus Master Profibus Slave XCP Master/Slave (CANape/INCA) CAN / SAE J1939 LIN 2.1 FlexRay Cam / Crank ARINC 429 ARINC 629 ARINC 664P7/AFDX MIL-STD-1553 Shared/reflective memory (ScramNet GT / 5565PIORC) EtherCAT Master EtherCAT Slave IRIG with GPS Precision Time Protocol (PTP) EtherNet/IP Scanner EtherNet/IP Adapter POWERLINK Controlled Node (Slave) 19

アジェンダ - ラピッドコントロールプロトタイピング (RCP) による制御アルゴリズムのテスト - RCP 環境の構築例 モデルのビルド 実行の基本的な手順 信号のモニタリング / ロギングとパラメータのチューニング テスト信号の入力方法 専用ハードウェア Speedgoat の紹介 ハードウェアのバリエーション サポートしている主な IO と通信プロトコル FPGA ボードへのアルゴリズムの実装 FPGA ボードの活用ケース FPGA 実装のワークフローの紹介 まとめ 20

FPGA-based I/O Modules 主な IO ボードの種類 IO397 - mpcie IO333 XMC IO342 - PCIe - Xilinx Artix-7 (50k) - 4x ADC - 4x DAC - 14x TTL, configurable - Xilinx Kintex-7 FPGA (325k or 410k) - Flexible front I/O connectivity - front SFP cages e.g. for Xilinx Aurora or 10Gbe UDP communication - Xilinx Kintex UltraScale FPGA (1450k) - 5520 DSP slices - 8 GB DDR4 RAM - Two FMC slots 21

Speedgoat FPGA ベース I/O モジュール FPGA ボードの 2 種類の利用方法 1. Configurable FPGA I/O Modules: Speedgoat 社が IO ドライバを提供 PWM 生成およびキャプチャ インクリメンタル / アブソリュートエンコーダ SPI / I2C 通信..etc IO 設定ファイルを変更するだけで I/O の切り替えが可能 モデルの実行は通常のプロセッサで演算します ( サンプル時間 : ~20kHz 程度 ) 2. Programmable FPGA I/O Modules: HDL Coder を利用するアプローチ ユーザーが FPGA モジュールをプログラミング ユーザー独自の IO ドライバ作成 モデルのアルゴリズムの部分も FPGA 上で高速実行したいケースで利用 高速実行が必要なサブシステムを FPGA 上で演算します ( サンプル時間 : 100kHz~) 100 khz and more 22

フレキシブルな I/O モジュールとしての運用 - Configurable FPGA I/O Modules - I/O 設定用 MAT ファイルを指定により IO の仕様を切り替えが可能です I/O 設定用 MAT ファイルはお客様の要求仕様をベースに Speedgoat 社が作成します HDL Coder および Xilinx のツールチェーンは不要です < 入出力設定 A> < 入出力設定 B> 23

Configurable I/O Modules I/O module Functionality Rear I/O lines Form factor IO306, 25k 64 x TTL none PMC IO307, 25k 32 x TTL, 16 x RS422 none PMC IO316, 45k, 100k 64 x TTL 64 x LVCMOS or 32 LVDS 3x MGT Selectable rear plug-ins IO317,45k, 100k 32 x TTL, 16 x RS422 64 x LVCMOS or 32 LVDS 3x MGT Selectable rear plug-ins IO318, 45k, 100k 32 x RS422 64 x LVCMOS or 32 LVDS 3x MGT Selectable rear plug-ins IO322, 45k 32 x TTL, 16 x RS422 64 x LVCMOS or 32 LVDS 3x MGT Selectable rear plug-ins XMC XMC XMC XMC IO381, 44k 26 x TTL none mpcie IO383, 44k 14 x TTL and 6 x RS422 none mpcie IO33X rear plugins IO33X-21 IO33X-22 I/O functionality Converts rear I/O lines from LVCMOS to 3.3V/5V TTL Converts the rear I/O lines from LVCMOS to RS422, RS485 and 3.3V/5V TTL 24

アルゴリズム実行の高速化手段としての運用 - Programmable FPGA I/O Modules - HDL Coder を活用することで高速演算を必要とするシステムを FPGA で処理できます ユーザー独自のデバイスドライバの作成 プロセッサでの処理では演算が間に合わない MHz オーダーの高速演算への適用 1 モデルもしくは既存の netlist を利用して FPGA モジュール ( インターフェイス ) を生成 2 生成した FPGA モジュールと プロセッサ演算側のモデルと接続 3 ブロック全体をまとめてビルド & ターゲットへダウンロード <FPGA 側処理部 > < プロセッサ側処理部 > 25

CPU+FPGA モデルの作成 & 実装 26

I/O module Programmable FPGA I/O modules FPGA Front I/O Rear digital I/O IO323 Spartan 6, 100K 32 x TTL, 16 x RS422 64 x LVCMOS or 32 LVDS 3x MGT Selectable rear plug-ins IO331 Spartan 6, 150K -1 to -8 front plug-ins 64 x LVCMOS MGT Selectable rear plug-ins IO333 Kintex 7, Up to 410K -1 to -8 front plug-ins - SFPs IO335 Kintex 7, 325K 24 x 5 MHz ADC, +/- 5V 03 x LVDS IO342 Kintex Ultrascale, 1.45K Selectable plug-ins - SFPs IO397 Artix 7, 50K 4 x AD, 4 x DA, 14 x TTL 64 x LVCMOS 8x MGT Selectable rear plug-ins 64 x LVCMOS MGT Selectable rear plug-ins Selectable plug-ins MGT none IO33X front plug-ins IO33X-1 IO33X-1LV IO33X-2 IO33X-3 IO33X-4 IO33X-5 IO33X-6 IO33X-7 IO33X-8 IO33X rear conditioning modules IO33X-21 IO33X-22 I/O functionality 64 x digital TTL (3.3V/5V) I/O front I/O lines 64 x digital LVCMOS (2.5V)/ LVTTL (3.3V) front I/O lines 30 x RS485 (RS422 compliant) front I/O lines 16 x CMOS (5V) and 22 RS485 (RS422 compliant) front I/O lines 30 x LVDS I/O lines 2 x 16-bit 105 MHz differential simultaneous analog inputs 16 x 16-bit 500kHz ADs, 8 x 16-bit DAs with 10us settling time, 16 x digital TTL I/O lines 16 x 16-bit analog outputs with 2us settling time, +/- 10V 8 x 16-bit analog outputs with 2us settling time, +/- 10V I/O functionality Converts rear I/O lines from LVCMOS to 3.3V/5V TTL Converts the rear I/O lines from LVCMOS to RS422, RS485 and 3.3V/5V TTL 27

アジェンダ - ラピッドコントロールプロトタイピング (RCP) による制御アルゴリズムのテスト - RCP 環境の構築例 モデルのビルド 実行の基本的な手順 信号のモニタリング / ロギングとパラメータのチューニング テスト信号の入力方法 専用ハードウェア Speedgoat の紹介 ハードウェアのバリエーション サポートしている主な IO と通信プロトコル FPGA ボードへのアルゴリズムの実装 FPGA ボードの活用ケース FPGA 実装のワークフローの紹介 まとめ 28

MathWorks のツールチェーンでシンプルに RCP 環境を構築できます 様々なツールの互換性を気にせず Simulink をベースにスムーズに実機テストを行えます MATLAB&Simulink の最新機能といち早く連携が可能です モデリング データモニタリング パラメータ適合 MATLAB Simulink Stateflow MATLAB&Simulink および SLRT Explorer (Simulink Real-Time 付属の測定 / 適合用 GUI) Simulink Test ( テストシナリオ作成 管理用オプション ) 他社製適合ツールおよびユーザー独自アプリケーション Simscape MATLAB Coder Simulink Coder 専用 HW Speedgoat ( プロセッサボード +IO ボード ) モデルのリアルタイム実行 HDL Coder FPGA 搭載 IO ボード Powertrain Blockset Simulink Real-Time の標準機能 29

ご興味のあるお客様は是非 MathWorks にお問い合わせ下さい 環境構築のご検討の際には MathWorks にご相談下さいシミュレーションだけでなく 実機テストフェーズでも MATLAB&Simulink はじめ各種ツール : トライアルライセンス (1 ヶ月 ) でご評価いただけます Simulink Real-Time: 評価用ハードウェアのお貸し出しが可能です MATLAB&Simulink を是非ご活用下さい! < お問い合わせ先 > 御社営業担当または MathWorks ウェブサイト http://jp.mathworks.com/company/aboutus/contact_us/index.html 30

Accelerating the pace of engineering and science 2017 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders. 31