PyVISAパッケージを使って測定機器をコントロールするシステムを作っていると,動作の検証用に測定データが必要になることがあります(実機を使わずに動作検証するためです).
実際の測定データを用意してもよいのですが,Pythonでは,numpyパッケージとmatplotlibパッケージを使って,簡単に測定データを作成し,グラフ描画することができます.
今回は,下記に示すように,
$\sin\left(\pi t + \theta_{0}\right) + 2$
と,振幅1[V],位相30[deg],直流バイアス 2[V],時間は 5[s](2.5周期)の正弦波データを,10[ms]毎に合計501個生成することにします.
ついでに,生成した正弦波波形を画面に描画して,正しく生成できているか確認もします.
さて,この測定データを生成するPythonスクリプトは何行になると思いますか?
実は,下記に示すように,僅か10行足らずです.
import numpy as np
import matplotlib.pyplot as plt
ts = np.linspace(0, 5, 501)
xs = np.pi*ts + 30/180*np.pi
ys = np.sin(xs) + 2
plt.plot(ts, ys)
plt.show()
ts(numpy配列)に各時刻,ys(numpy配列)に正弦波データが収納されます.
1行目と2行目は,それぞれ,numpyパッケージとmatplotlibパッケージ(のpyplotモジュール)を読み込んでいるのですが,注意してみると,それぞれ,as np, as pltと記述されているのに気がつくと思います.
この,パッケージをimportで読み込む際に,as を使うのは,読み込んだパッケージ(もしくはモジュール)に別名(エイリアス)を付ける機能です.
本来のパッケージ名(長い)の代わりに,別名(短い)を使えるようにするのが目的です.
numpyパッケージと,matplotlibパッケージのpyplotモジュールは,Pythonのパッケージ群の中でも主役級に有名で,それぞれ,np, pltという別名を付けるのは,Pythonユーザの中ではお約束とも言えます.
本ブログでも,有名なパッケージ(およびモジュール)は,お約束に従って,別名を使うことにします.
ところで,パッケージとモジュールの違いについてですが,モジュールが集まったものがパッケージになります.従って,matplotlib.pyplotというのは,matplotlibパッケージの中のpyplotモジュールとなります(厳密に呼び名を使い分けなければならないものでもないですが).
長くなってきたので,上記のPythonスクリプトの説明は,次の投稿にすることにします.
最後に,生成した正弦波データのグラフを紹介して終わりとします.
このブログを検索
アーカイブ
-
►
2022
(55)
-
►
3月 2022
(24)
- 001 Pythonを使った測定システムの構築方法を紹介するブログを始めます
- 002 Miniforgeを使ってPython環境構築
- 003 condaコマンドを使ったパッケージのインストール
- 004 condaコマンドを使ったパッケージ管理
- 005 なぜPythonを使って測定機器をコントロールするのか
- 006 numpy配列とは
- 007 numpy配列の使い方
- 008 PyVISAの簡単な紹介
- 009 測定機器のコマンドを調べる
- 010 PyVISAを使った測定機器へのコマンド送受信
- 011 Pythonで関数を作る方法
- 012 コマンド文字列の作成方法
- 013 測定機器へ送受信するラッパー関数を作成する
- 014 測定機器へ送受信するラッパー関数を工夫する
- 015 Pythonを使って動作検証用の測定データを作成する
- 016 Pythonを使って動作検証用の測定データを作成する(その2)
- 017 Pythonを使って動作検証用の測定データを作成する(その3)
- 018 Pythonとオブジェクト指向
- 019 Pythonとオブジェクト指向(その2)
- 020 Pythonでクラスを作る
- 021 Pythonでクラスのコンストラクタを定義する
- 022 Pythonでselfを使ってクラスを定義する
- 023 ファンクション・ジェネレータをコントロールするPythonスクリプト雛形
- 024 PyVISAを使った測定機器のコントロールで重要なこと
-
►
3月 2022
(24)
分類
- その他/雑談 (7)
- 環境構築/Python (5)
- 実機/オシロ (6)
- 実機/ファンクションジェネレータ (5)
- 紹介/Python (5)
- 紹介/PyVISA (12)
- 紹介/オブジェクト指向 (5)
- 紹介/スクリプト (10)
自己紹介
- メジャーメントラボ
- C++やC#を使って数値解析プログラムの開発を長年行ってきました.
今は,Pythonを使った自動処理システムの開発をメインに行っています.
0 件のコメント:
コメントを投稿