Zennの「MATLAB」のフィード
フィード

MATLAB/Simulink とSimscape Electrical 入門
Zennの「MATLAB」のフィード
本技術同人誌は,MATLAB/SimulinkとSimscape Electricalを用いたシミュレーションを,数値計算の仕組みから体系的に理解するための入門書である。ブロックの操作方法だけでなく,コンピュータが内部で何を計算しているのかに重点を置いて解説する。 シミュレーションは,連続時間の現象を離散時間の数値計算として近似する技術である。本書では,サンプル時間,数値積分,ソルバーの動作原理,誤差の発生要因を順序立てて説明し,結果を正しく解釈するための基礎を身につける。 また,制御工学で用いられるラプラス変換や伝達関数と,実際の数値計算との関係を整理し,s領域の理論と時間領域の計算の対応を明確にする。固定ステップと可変ステップの使い分け,硬い系への対応,Simscape特有の収束問題についても実務の視点から扱う。 さらに,データ型,論理信号,浮動小数点の限界といった実装上の注意点に加え,トラブル発生時の切り分け手順,ログの取り方,最小モデル化による原因特定の方法をまとめている。生成AIを補助ツールとして利用する際の質問方法と検証の観点も扱う。 本書の目的は,シミュレーション結果をそのまま受け取るのではなく,数値計算の前提と限界を踏まえてモデルを評価できる力を身につけることである。高校レベルの数学と物理を基礎として,制御,回路,電力電子分野への応用を見据えた内容となっている。
9日前

車載CANログ(BLF/ASC)をCSV/MAT変換するツールをオープンソースで公開しました
Zennの「MATLAB」のフィード
はじめに 車載開発の現場では、CANバス通信のログ(BLFやASCファイル)を取得し、分析することが日常的に行われています。 ですが、生のCANデータはバイナリ形式であるため、人間が読むには**DBCファイル(CANデータベース)**を使ってデコードしなければなりません。専用の解析ツールはライセンスが高価だったり、ちょっとした確認に使うには動作が重かったりと、使い勝手の面で課題を感じる場面があると思います。 そこで、PythonがインストールされていないPCでも動く無料の変換ツールを開発し、以前は個人のホームページで配布していました。今回、ソースコードを整理してGitHubでオープン...
1ヶ月前

MATLABの本気がみたい
Zennの「MATLAB」のフィード
はじめに MATLABを使い始めて、もう何年になるやろ。 MATLABには感謝してる。行列計算は書きやすいし、Simulinkは制御系の人には必須やし、信号処理のツールボックスも充実してる。「とりあえず動く」安心感は、本業に集中したい人間にとってありがたいねん。 けど、長年使ってると「ちょっとな〜」と思うことも増えてきた。 今日はそんな話を、ゆるく書いてみるわ。 その1:並列計算、なんで有料なん? 16コアあるのに1コアしか動かへん ある日、計算を回してた。100通りの条件で、それぞれ5分かかる処理。 100 × 5分 = 500分 = 8時間20分 「まあ一晩回しとくか」...
2ヶ月前

MATLAB Simulinkとマイコンを同期させよう(USBシリアル通信編)
Zennの「MATLAB」のフィード
MATLAB Simulinkとマイコンを同期させよう(USBシリアル通信編) 概要 STM32マイコンで実行されている制御アルゴリズムの内部変数(デューティ比など)を,USBシリアル(UART)経由でMATLAB/Simulinkに送信し,リアルタイムでScope表示・解析するための環境構築手順をまとめます. 将来的な「マイコン制御+MATLABモータモデル」の同期シミュレーション(PIL/HIL)に向けた第一歩となる,**「データのパケット化」と「Simulink側での同期処理」**に焦点を当てます. 環境 MATLAB / Simulink: 2024b In...
2ヶ月前

脳科学(fMRI)のレガシー資産「SPM12」をDockerに閉じ込めてMチップ Macで強制起動する
Zennの「MATLAB」のフィード
はじめに 脳機能画像(fMRI)解析のデファクトスタンダードである SPM12 (Statistical Parametric Mapping)。 世界中の研究室で使われていますが、これをモダンな開発環境(MacBook Air M1/M2/M3 など)やクラウドネイティブな文脈で扱おうとすると、2 つの巨大な壁にぶち当たります。 MATLAB ライセンスの壁: 有償の MATLAB 本体が必要で、ライセンス管理が煩雑。CI/CD で回すなんてもってのほか。 CPU の壁: SPM の配布バイナリは基本的に Intel (x86_64) 向け。Apple Silicon (AR...
2ヶ月前

Simulinkを実機に実装するいろいろな方法と感想
Zennの「MATLAB」のフィード
Advent Calender 2025の12/14枠になります. https://qiita.com/advent-calendar/2025/matlab はじめに Simulinkは制御系のロジックを簡単に組むことができます.となると,次には実機で試したくなるもので,如何に実機実装するかということがポイントになります. 著者も常日頃から様々な方法を模索しており,その中で調べたSimulinkと実機をつなぐ方法についてまとめたいと思います. 使用経験のあるものにはいい点とう~んと思う点,使用経験のないものは採用に至らなかった理由(あくまで Not for meだった点です)を記載...
2ヶ月前

なぜ、Pythonがプログラミング言語界の覇者となったのか?
Zennの「MATLAB」のフィード
はじめに 21世紀初頭のプログラミング言語史を振り返ると、Pythonの台頭ほど「偶然と時代の整合」が見事に重なった例はありません。Pythonは、当初は教育向けやスクリプト用途の穏やかな便利屋として始まりました。それが今では、AI研究、データサイエンス、業務自動化、教育現場に至るまで、あらゆる領域を席巻しています。 本稿では、Pythonがどのような歴史的経緯と構造的条件によって覇権を握ったのかを、RubyやJava、MATLAB、JavaScriptといった他言語の盛衰と対比しながら明らかにしていきます。Pythonは決して「最も優れた言語設計」を持っていたわけではありません。む...
4ヶ月前

【離散コサイン変換】Part2. 欠損データをはっきりくっきり?復元する
Zennの「MATLAB」のフィード
はじめに 前回の記事で、離散コサイン変換(DCT)の仕組みと特徴を説明しました。 DCTをゆっくりじっくり理解する 今回はその続きです。 内容としてはDCTの特徴を応用して、計測とか制御にどう使えるのか、ということを考えていきます。 具体的にはタイトルにも書いていますが、スパース性を利用して欠損データからの信号復元、いわゆる圧縮センシングについて見ていこうと思います。 ※記事中で使用したPythonとMATLABスクリプトの全体コードは下記に置いています。 https://github.com/otter1602/DCT_and_Min_L1norm_Sample DCTの特徴 ...
8ヶ月前

制御工学入門者のためのMATLABプログラミング演習
Zennの「MATLAB」のフィード
制御工学関連の研究に取り組むにあたり,必要となるであろうプログラミングについての演習形式の記事です.研究室配属生向けですが,どなたでもぜひご活用ください.
1年前

Simulinkで機械(電気)の系統図を作成し,費用を見積もる
Zennの「MATLAB」のフィード
はじめに 研究においてなにか新しい装置を製作するとき,概念設計や構想設計で費用の見積が必要な場合があります. また,詳細設計に入る前の部品選定において各要素の繋がりを整理した系統図を作成し,費用を算出します. その際に系統図の作成と部品リストの作成,価格の集計が必要となりますがこれを一元化できるソフトはたいてい有料であり,趣味や研究用途ではなかなか手が出しずらいものです. また,各要素間の取り合い(シャフト径や端子形状など)を考慮しながら整理するのも大変です. かといって最初からCADでモデリングに入るのは手直しの手間を考えると悪手です. そこで,設定が柔軟に行えるSimulinkを...
1年前

WSL上でpython (jupyter notebook)を使ってMファイルの並列処理がしたいけど諦めた話
Zennの「MATLAB」のフィード
WSL上で、MATLABを使ったmファイルの並列処理を諦めた jupyter notebookからmファイルを呼び出し、並列処理を行いたい。python側で並列処理の実装はできないかなと考えてた。pythonからMATLABを呼び出す方法はあるので、これ使えば行けるかなと考えていた。 https://jp.mathworks.com/help/matlab/matlab-engine-for-python.html でも、MATLABのアクティベーション回数は限られているため、WSLではlogin named userライセンスを使うのがベター。 https://jp.mathwor...
1年前

MATLAB File ExchangeとGitHubを連携したコード公開
Zennの「MATLAB」のフィード
はじめに 自作MATLAB関数を公開をGitHubを通じてFile Exchangeに公開しました。 https://jp.mathworks.com/matlabcentral/fileexchange/176183-pomodoro-timer 内容についてはこちらの記事もご覧ください。 https://zenn.dev/kimushun1101/articles/matlab-pomodoro-timer この記事では、File Exchangeについて簡単に紹介し、その手順を簡単に解説します。 前提としてGitやGitHubの簡単な動作はできているものとして、それらの詳細は割...
1年前

MATLABでテストを活用して手戻りを防ぐ(ソフト開発者以外も使おう!)
Zennの「MATLAB」のフィード
Advent Calender 2024の12/10枠です. MATLABネタが降ってきたので書こうと思ったら枠が空いていましたので投稿します.(本記事を書いているのは12/20です) https://qiita.com/advent-calendar/2024/matlab はじめに 最近MATLABのテスト機能を使ってみたら助けられることが多くありましたので,使い方を備忘もかねてまとめておきます. 気軽にシンプルに使うためになるべく高度なことはしません.単体の関数やスクリプトを対象とするユニットテストのみです.「ソフトウェアの開発者以外」も積極的に使いましょう!! 参考: htt...
1年前

MATLABでポモドーロタイマーを作ってみた
Zennの「MATLAB」のフィード
! この記事は MATLAB/Simulink Advent Calendar 2024 の9日目の記事です。昨日は@AkaVeeさんでした。明日は @ZVS_85 さんの記事が公開される予定です。 はじめに 私は制御工学の研究者です。あるとき気づきました。一番制御できていないのは自分自身であることを。 作業時間管理の有名な方法の1つとしてポモドーロテクニックというものが知られています。簡単にご説明しますと、作業時間を区切って適度に休憩を取ることで作業効率を上げようというものです。この時間の管理に使われるツールをポモドーロタイマーといいます。 この読者であられる皆様方におきましては...
1年前

MATLABMobileのログデータをなるべく簡潔に料理する.~加速度のログから距離の算出まで~
Zennの「MATLAB」のフィード
はじめに MATLABMobileで取得した加速度や角速度のデータから,移動距離や方向を算出する. なるべくfor文や自作関数を使用せず,簡潔になるようにしてみる. MATLAB Mobileの概要や使い方についてはMATLAB Mobile でのセンサー データの収集参照. また,今回のデータ・プログラム一式は下記リポジトリにある. https://github.com/Spargel125/RailwayCoordinateData/tree/main または下記のアイコンをクリックすると,直接MATLABが開ける(多分要アカウント). なお,試行錯誤の後が残っているのでご容赦く...
2年前

日本の鉄道路線をMATLABでプロットしてみる
Zennの「MATLAB」のフィード
はじめに 日本の鉄道路線の緯度経度が国土交通省により公開されているため, matlabでplotして遊ぶ. matlabではgeoplotを使うと簡単に地図上のプロットが作成できる. データの出典:国土交通省国土数値情報ダウンロードサイト(https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N02-v2_3.html) 結論 めっちゃ楽しい!!! 今回のソースコードは下記リポジトリにある. https://github.com/Spargel125/RailwayCoordinateData/tree/main 方法 デー...
2年前

MATLABメモ
Zennの「MATLAB」のフィード
配列 MATLABの配列は0からではなく、1から始まるので注意が必要である 配列(横ベクトル)を縦ベクトルにする x = [1, 1]; x = x(:); disp(x); このようにすると、以下のような出力が得られる. 1 1
3年前

Moment-Based Kalman FilterのMATLABでの実装
Zennの「MATLAB」のフィード
はじめに 下記論文において,Moment-Based Kalman Filter(MKF)というものが提案されている. https://arxiv.org/abs/2301.09130 これは,システムの状態を確率的に扱うことにより,精度の良い推定を行うことができ,特に,非ガウスノイズ下において他のKalman Filterよりも精度向上する模様である. 提案手法は非常に面白そうなので中身を追っていったが,公開されているc++コードを読み解くのが大変だったので,MATLABで再実装する. 実装にあたっては確率変数に関するモーメント計算が必要になるが,その計算については下記記事でまとめ...
3年前

MATLABを用いた異なるサンプリング時間のデータの同期
Zennの「MATLAB」のフィード
はじめに 複数センサのログデータを解析するとき等,異なるデータの時間軸を合わせたいときがある. その際にデータの時間軸を同期して解析しやすくなる方法について記載する. 背景と状況例 例えば,センサーAとセンサーBによりデータが取得される場合において,サンプリング時間はt_A=2 [s],センサーBのサンプリング時間はt_B=5[s]の状況を考える. ここで,t=9[s]のときのAとBの値を計算に使いたいとき,センサーAの値はt=8[s]のときの値を,センサーBの値はt_B=5[s]のときの値を採用する必要がある. さらに,実際のログデータはサンプリング時間通りにぴったりとれている...
3年前

独立でない変数の混合三角モーメントの計算の色々な例
Zennの「MATLAB」のフィード
はじめに これまでの記事(下記)で混合三角モーメントの計算を行ってきた. そこで本記事では複数の確率変数の場合のモーメントについて計算する. なお,混合三角モーメントはMixed-trigonometric-Polynominal Momentsの直訳であり本記事ではこの記載でする. https://zenn.dev/spargel/articles/4a64d0157017cc https://zenn.dev/spargel/articles/a2a5ce1b6cb421 また参考に引用している文献は下記. https://arxiv.org/abs/2301.09130 M...
3年前
