TOPPERS 活用アイデア アプリケーション開発 コンテスト 部門 : 活用アイデア部門アプリケーション開発部門 作品のタイトル : Toppers_JSP と Scicos_lab / (Scilab でも可 ) による 組込みメカトロニクス制御シミュレーション 作成者 : 塩出武 ( シオデタ

Similar documents
TOPPERS 活用アイデア アプリケーション開発 コンテスト 部門 : 活用アイデア部門アプリケーション開発部門がじぇるね IoT 部門作品のタイトル : TOPPERS_ASP3 カーネルと astah*-uml による状態マシン図でのソフト設計と動作検証の試み作成者 : 塩出武 ( しおでたけ

Toppers Scilab

TOPPERS活用アイデア・アプリケーション開発

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

1 Atollic TrueSTUDIO( GR-PEACH TOPPERS/ASP ASP GR-PEACH mbed ( git

目次 1. 概要 製品構成 用語集 SECUDRIVE Device Control Basic インストールUSBメモリの構成 プログラムのインストール 体験版から正規版への変更

REX-USB56 「FAX送信」編 第6.0版

TOPPERS活用アイデア・アプリケーション開発

組込みシステムにおける UMLモデルカタログの実践研究

ことばを覚える

GHS混合物分類判定システムインストールマニュアル

REX-C56EX FAX送信 第5.0版

CentreCOM VT-Kit2 plus リリースノート

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

TOPPERS活用アイデア・アプリケーション開発

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

目次 1. はじめに 準備 機器構成 やさしく名刺ファイリング Pro v.14.0 セットアップと動作確認 やさしく名刺ファイリング Pro v.14.0 セットアップ... 5 Windows Windows 8.

インテル(R) Visual Fortran コンパイラ 10.0

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

Acronis® Backup & Recovery™ 10 Server for Windows, Acronis® Backup & Recovery™ 10 Workstation

1. 機器の接続方法 ナンバーディスプレイアダプタ アロハ ND5/ND6 をご購入いただき 下図のように接続していただきます パソコンがインターネットに接続されている場合は USB のプラグをパソコンに最初に接続した際に自動でアダプタのドライバがインストールされます ドライバのインストールには数分

障害管理テンプレート仕様書

TFTP serverの実装

目次 第 1 章概要....1 第 2 章インストールの前に... 2 第 3 章 Windows OS でのインストール...2 第 4 章 Windows OS でのアプリケーション設定 TP-LINK USB プリンターコントローラーを起動 / 終了するには

1. はじめに (1) 本書の位置づけ 本書ではベジフルネット Ver4 の導入に関連した次の事項について記載する ベジフルネット Ver4 で改善された機能について 新機能の操作に関する概要説明 ベジフルネット Ver4 プログラムのインストールについて Ver4 のインストール手順についての説明

MC3000一般ユーザ利用手順書

【バーコード作成】マニュアル 第1版

スライド 1

PowerPoint プレゼンテーション

Microsoft Word - Writing Windows Installer's DLL.doc

マカフィー R セキュリティサービス (Mac 版 ) インストール 基本操作 アンインストールマニュアル McAfee と McAfee のロゴは 米国およびその他の国における McAfee LLC の商標です 中部ケーブルネットワーク株式会社 第 1.5 版 2018/11/5

Oracle Business Intelligence Standard Edition One のインストール

目次 1 VirtualBoot for Hyper-V とは バックアップを実行するマシンの設定 確認すべきこと SPX によるバックアップ VirtualBoot for Hyper-V を実行するマシンの設定 確

オフィスまるごとサポートデバイスマネジメント Device Owner Mode 導入マニュアル 最終更新日 2018 年 9 月 14 日 株式会社オプティム (c) 東日本電信電話株式会社

1 はじめに VPN 機能について Windows 端末の設定方法 VPN 設定手順 接続方法 ios 端末の設定方法 VPN 設定画面の呼び出し VPN に関する設定

OmniTrust

Windows PC VPN ユーザー向け手順書 SoftEther VPN (SSL-VPN) を用いた筑波大学 VPN サービスへの接続方法 学術情報メディアセンター VPN ユーザーマニュアルから Windows PC 向けの情報だけを詳細に説明した設定手順書を作成いたしましたのでご利用くださ

Microsoft Word - ModelAnalys操作マニュアル_

Multi LABELIST V5 練習マニュアル - 様々な発行方法編 第 1 版 2013 年 3 月 18 日 株式会社サトー

プログラマブル LED 制御モジュール アプリ操作説明書 プログラマブル LED 制御モジュール設定アプリ操作説明書 適用モジュール 改訂番号 エレラボドットコム 1

サイドローディングに必要な環境 以下の表を参照ください エディション ドメイン不参加 ドメイン参加 Windows8.1 サイドローディング不可 サイドローディング不可 Windows RT 8.1 Windows 8.1 Pro サイドローディングキーが必要 サイドローディングキーが必要 ドメイン

アジェンダ Renesas Synergy TM プラットフォーム構成 ThreadX とは ThreadX の状態遷移 ThreadX とμITRONの機能比較 まとめ ページ 2

Microsoft PowerPoint - Outlook2016(新)

(2) [ バックアップツール ] が表示されます [1] [2] [3] [4] [5] [6] Windows Storage Server 2012 バックアップ手順 (V_01) < 画面の説明 > [1] バックアップ項目リスト登録されているバックアップセットの一覧です [2] 新規 ボタ

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

目次 目次 Web 地図更新について 2 地図更新の流れについて 2 地図更新アプリ ( 日産ディーラー用 ) のダウンロードと インストールをする 3~5 車載器情報の書き出し ( 地図更新用 SD カード作成 ) 6 地図更新アプリの操作方法 7~ 地図をダウンロードする場合 7 クーポン番号を

Microsoft PowerPoint - Session4古賀様.ppt

目次 目次 準備いただくもの 準備 SQLServer2008 R2 ExpressEdition のインストール インストールの前に インストール 設定一覧 機

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作

「みえますねっと年間パック」のはじめかた・BB-HCMシリーズ

変更要求管理テンプレート仕様書

VG シリーズ用ローカルファームアップ / 自動ファームウェア更新設定手順書 VG400aⅡ ローカルファームアップ / 自動ファームウェア更新設定手順書

V-Client for Mac ユーザーズガイド

スライド 1

Microsoft Word - XPC4ソフトマニュアル.doc

目次 第 1 章はじめに 本ソフトの概要... 2 第 2 章インストール編 ソフトの動作環境を確認しましょう ソフトをコンピュータにセットアップしましょう 動作を確認しましょう コンピュータからアンインストー

Microsoft Word - TestReport_PRIMEPOWER250_ doc

変更履歴 日付 Document ver. 変更箇所 変更内容 017/4/ 新規作成 017/5/ デバイスオーナーモードと 説明を追加 は デバイスオーナーモード導 説明を追加 入手順 QR コード セクション削除 QR コードへの参照文を変更 QR コードによる導入手順

Taro-82ADAカ.jtd

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

注 ) CDをセットしてから プログラムが起動するまでの時間はパソコン CDドライブの性能によって差がありますが 概ね10 秒程度です 1 分間待ってもプログラムが起動しない場合は もう一度 CDをセットしなおしてください それでも起動しない場合 CDからの自動起動が無効になっている可能性があります

MMO ゲームパッド JC-DUX60BK ドライバー設定ガイド このドライバー設定ガイドは JC-DUX60BK に付属のドライバーを使った 各ボタンやスティックへの機能割り当てや連射の設定などの操作について説明しています ドライバーのインストール方法については JC-DUX60BK に付属のユー

PowerPoint プレゼンテーション

Zoiper User Guide

目次 第 1 章はじめに 本ソフトの概要... 2 第 2 章インストール編 ソフトの動作環境を確認しましょう ソフトをコンピュータにセットアップしましょう 動作を確認しましょう コンピュータからアンインストー

らくらくメニューVer2.70E9<セットアップガイド>

目次 1. はじめに 本資料の目的 対象アプリケーション ライセンスの種類 ライセンスの種類 ライセンスの見分け方 提供するライセンスの形式 アクティベーションにおける前提

Microsoft Word - ssVPN MacOS クライアントマニュアル_120版.doc

Transcription:

TOPPERS 活用アイデア アプリケーション開発 コンテスト 部門 : 活用アイデア部門アプリケーション開発部門 作品のタイトル : Toppers_JSP と Scicos_lab / (Scilab でも可 ) による 組込みメカトロニクス制御シミュレーション 作成者 : 塩出武 ( シオデタケシ ) 対象者 : 実機レス環境でモーター含むメカ制御プログラムの設計 および検証 学習をしてみたい方 使用する開発成果物 : Toppers_JSP カーネル _Windows シミュレーション環境 VisualC++2010Express 版 (Toppers 側シミュレーション用 ) Scicos_lab( 制御用シミュレーション環境 ) 目的 狙い 組込みメカ制御を始めてみたいが 機材 予算に制約がある 机上の制御理論を試してみたいが 初回動作不良による機材破損を回避するためにも事前に動作検証を行いたい 評価機材が上がってくる前に先行で制御プログラムの開発を進めたい 組込みによるメカ制御を学習 体験したい といった要求に対応するために オープンソース環境による メカ制御の設計 / 検証環境を提案します ( 今回はモーター制御を例に挙げます )

1. アイデア / アプリケーションの概要 VisualC++Express による Toppers_JSP シミュレーション環境と Scicos_lab によるモーターシミュレーション環境を DLL( ダイナミックリンクライブラリ ) で接続し Toppers 側に実装した割込み PID 制御プログラムにより Scicos 側のモーターモデルに対して 速度および位置決め制御をかけます Toppers から PWM 指令値を入力 Toppers へ タイマ割込 位置 速度情報を出力 図 1: Scicos 側のモータシミュレーションモデル Sciocs 側から割込み信号を受け Toppers 側の PID 制御プログラムでもモーター PWM 指令値を Scicos 側へ入力 図 2: Toppers 側のモータ制御割込みプログラム (Scicos 側より割込みを入れて制御 )

図 3: PID 制御状態のモニタ ( 右は各モータの位置 / 速度 右は PWM 出力 ) 図 4: Toppers 側のデバッグモニタ

1.1 動作手順 1Scicos_lab を立上げ ディレクトリを toppers_jsp の実行環境へ移動する toppers_contest jsp-1.4.4-full tools windows 2DLL ファイルを読み込む上記 windows ディレクトリ内の Motorsci.sce ファイルに DLL を読み込む命令を実装しこれを実行 3Scicos を立上げ 上記 windows ディレクトリ内の motor.cos ファイルを開く 4VisualC++ 側の Toppers 環境を実行する 5Scicos の Simulate Run を実行 * 必ず4 5の順序で実行してください Scicos 側から Toppers のコンソールハンドルを探しに行くためです 6Toppers のコンソールを選択して テストしたい要求キーを実行 ( デフォルトの方式と同様です )

2. アプリケーションの説明 Toppers_JSP Sim テストタスク(Sample) モータータスク 入力 速度 位置 出力 DC モータシミュレーションモデル モーター制御割込み 出力 PWM 入力 DLL ファイル VisualC++ 側 図 5: DLL 経由による制御データの共有 Scicos 側 DLL ファイルには モータの位置 速度といった両アプリケーションで共有したい情報を実装します また Scicos 側からのサンプリング時間によるタイマ割込みを実行するための機能 (Win32 関数 ) を実装しています タイマ割を Toppers 側でなく Scicos 側から実行する理由は 以下の理由によります 1(Scicos 計算上の ) サンプリング間隔に合わせて割込み計算を実行したいため 2 製品 評価の要求によっては us オーダーでタイマ割込みを行う場合が想定されるため Windows_API 上でのタイマは最少 1ms サンプリングですが Scicos 上では動作は遅くなってしまいますが シミュレーション計算上 1ms 以下でのサンプリングが可能なため 割込みを Scicos 側に持たせることで 疑似的に us オーダーの割込みタイミングを作ることを想定しています ( 今回の評価モデルは 1ms サンプリングです ) Toppers 側から (VisualC++ 上での ) ソフトブレークをかけた際に Scicos 側もブレークさせたいため (SendMessage 機能で Scicos 側から割込みを飛ばすことで Toppers 側のブレークに連動して Scicos 側をハングさせる方式を試しましたがうまく行きませんでした ) Toppers_JSP Sim DC モータシミュレーションモデル テストタスク(Sample) モータータスク 通知 割込み関数 呼出 モーター制御割込み VisualC++ 側 DLL ファイル Scicos 側 図 6:Scicos 側から DLL 経由によるタイマ割込み通知

2.1 Toppers 側実装内容 モータ制御用に motor1.c/h, motor2.c/h ファイルを追加 上記 2 ファイルに モータの制御タスクと割込み関数を追加 コンフィギュレーションファイルに motor1 2 の OS リソースを追加 2.2 モーター制御タスク (motor1 / 2) の構成 他タスクへの公開関数要求速度 駆動長さの入力 タスク機能トップ関数 OS によるメッセージ受付 タスク機能内部関数駆動前設定 割込み PID 制御関数位置 速度 (HAL 関数化 ) を検出して PWM を計算出力 HAL 層共有データを HAL 関数化 モーターの速度定義 PID 制御パラメータ定義 モータータスク要求の定義 タスクへのメッセージ内容の定義 motor1.h ファイル (2 側も同様 ) motor1.c ファイル (2 側も同様 ) 図 7:Toppers 側モーター制御用追加内容

2.3 モータ駆動制御の内容 高速 (100cm/s) 中速 (50cm/s) 低速 (10cm/s) 残り 10cm 割込み間隔は 1ms 残り 20cm 位置決め 図 8: 割込みテスト用モーター駆動内容 シミュレーション動作の確認用に 図 8 の内容のモーター制御を実装しています モーター動作機能速度 : 高速 中速 低速の 3 速度を持ち 目標位置までの残り距離に応じて 段階的に減速を行う 位置決め : 目標位置到達後 10ms 間位置決め制御 (1ms サンプリングで 10 回 ) モーター数 2 モーター ( 制御方式はいずれも同じ ) 2 モータにそれぞれにタスクを割り当てて 個別動作 2 モーター順番動作 並列動作を行います 2.4 評価プログラム内容 (sample1.c) デフォルトの main_task 内の case 文を変更して以下のモーター駆動機能を追加しています 初期化( 両モーター ) モーター 1 単体駆動 モーター 2 単体駆動 モーター 1 2 並列駆動 * 連続で駆動要求を入れた場合は前回駆動を待ちます 各タスクで自身のモーターの駆動完了を待ってから メッセージプールを解放するた め その間次の駆動要求はメッセージプール取得待ちとなるためです

3.DLL 実装内容 3.1 共有データ内容モーター 1 2 向けにそれぞれ以下の制御情報を共有しています モータ位置(cm) モーター速度(cm/s) PWM 周期 (1000cnt) PWM 指令値 (0~1000cnt) 割込み許可信号( フラグ ) * データ共有は VisualC++ に用意された専用命令を用いています #pragma data_seg(" ラベル名 ") ~ #pragma data_seg() /* シミュレーション用 */ 3.2 割込み要求の制御 ハンドル取得 1. コンソール画面のハンドルを取得し保存 割込みメッセージ ghdlg = FindWindow( ("toppers_jsp_sim")); ( これは初期化時に 1 回行う ) 2.Scicos シミュレーションサンプリング時に取得ハンドルに対しメッセージ送信 ( 毎回 ) PostMessage(ghDlg,WM_SCILABINT,0,(LPARAM)0); 制御 読み込み 呼び出し (1ms) コンソール制御部 (case 文 ) コンソール作成 コンソール破棄 コンソール画面閉じる コンソールサイズ変更 : : Scicos 割込み要求 ( ラベル追加 ) HALInterruptRequest(INT_MOTOR); コンソール制御ルーチン :CALLBACK ConsoleProc Scicos シミュレーションモデル DLL ファイル Scicos へ読み込み 図 9:DLL による割込み機能の説明

4. 変更 追加ファイル < 変更ファイル > Sample1.cfg: モーター用タスク等 OS リソース追加 Sample1.c: 評価用プログラム追加 Sample1.h: 評価用プログラム追加 Hw_serial.c: コンソール制御部への Scicos 割込み機能追加 Constants.h:Scicos 割込みラベル定義追加 Vwindows.h:VisualC++2010Express 環境でのシミュレーション立上げ用変更 Hal_resource.rc:VisualC++2010Express 環境でのシミュレーション立上げ用変更 < 評価用追加ファイル > Motor1.c: モーター 1 制御タスク 割込み HAL 層 Motor1.h: モーター 1 制御用パラメータ 変数定義 Motor2.c: モーター 2 制御タスク 割込み HAL 層 Motor2.h: モーター 2 制御用パラメータ 変数定義 Rtos_api.c:OS サービスコールのラッパ関数定義 ( 未使用 ) Rtos_api.h:OS サービスコールのラッパ関数定義 <DLL ファイル関連 > Motor_dll.cpp: 共有変数の定義 関数の実体 Motor_dll.h: 共有変数 関数の定義 Morot_dll.def: 共有関数の定義 * 使用したファイル類は別途添付致します < 使用ソフト > Microsoft_VisualC++2010Express http://www.microsoft.com/visualstudio/jpn/downloads#d-2010-express Scicos_lab4.41 http://www.scicoslab.org/ 5. 制限事項 ( 動作不良含む ) 1 初回駆動は出来るが 何度か駆動していると 動作完了が返ってこなくなり 以降の駆動要求を受け付けられなくなることがある 2シミュレーション確認がメインということもあり 制御の精度はそれなりです