システムとモデリング

SysML, Matlab/Simulink,他モデリング全般について。たまにプロジェクトマネジメント。

IoTプラットフォーム「Thing Speak」チュートリアル その3

ThingSpeakを使ってみる その3

今回は「MATLAB Visualizations」を使用してデータを可視化してみます。
今回もMathWorksの公式サイトの内容に沿って実装していきます。
 

データの可視化

[Dew Point Measurement] チャネル ビュー画面右上の「MATLAB Visualizations」を選択します。
 
下の図のように「Custom」を選択して「Create」をボタンを押します。
コードを入力する画面に遷移するので下のように入力します。
入力したコードは下記になります。
ここでZZZZ、XXXXXXXXXXXXXXXXにはそれぞれ自身のDew Point MeasurementのチャンネルIDとRead API Keyを入力します。
これらはコード入力画面の右端の方に自身のものが書いてありますのでそれをコピーするだけで良いはずです。
% Enter your MATLAB code below
readChId = ZZZZZ % Your Channel ID
readKey = 'XXXXXXXXXXXXXXXX' %Your Read API Key
[dewPointData,timeStamps] = thingSpeakRead(readChId,'fields',[1,2,3],...
'NumPoints',100,'ReadKey',readKey);
thingSpeakPlot(timeStamps,dewPointData,'xlabel','TimeStamps',...
'ylabel','Measured Values','title','Dew Point Measurement',...
'Legend',{'Temperature','Humidity','Dew Point'},'grid','on');
 
記入が完了したら「Save and Run」ボタンを押して下のように成功を通知するメッセージが出たら完了です。
 
Output画面には下のようにグラフが生成されています。
 
本日はここまでにします
 

IoTプラットフォーム ThingSpeakチュートリアルその2 データ更新頻度の設定

ThingSpeakを使ってみる その2

前回記事の続きになります。

otepipi.hatenablog.com

今回も前回同様Mathworksチュートリアルに沿って実施しています。

jp.mathworks.com

 

データの更新頻度の設定

このままではデータは作成時の1回のみしか更新されず、定期的な更新はできないので
「Apps」タブの「Time Control」で設定してやる必要があります。
Time Controlをクリックすると下の画面に移行するので「New TimeControl」をクリックします
 
 
下の設定画面で、30分毎にデータを更新するように設定してやります。
時刻をTokyoに合わせてやりましょう。
これで30分毎にデータが更新されるようになります。
 
 
 
 
 

 

MathWorksのIoTプラットフォーム「Thing Speak」チュートリアル

ThingSpeakを使ってみる

ThingSpeakはMathWorksのIOTプラットフォームで無料で使用することができます。
はじめての使用なので、Mathworks公式の例をそのまま実行してみます
アカウントは既に作成してあるので省略します。

新しいチャンネルの設定

 
 
温度・湿度・露点の3つのチャンネルを作成します。最後に「Save Channel]を押すと下のように3つのチャンネルのグラフが作成されます。まだデータが書き込まれていないので何も表示されません。
 
次に右上の「MATLAB Analysys」をクリックすると以下の画面に遷移するので「Custom」を選択します。
 
次に①公開チャンネルから温度と湿度を取り込み
②露点を計算し
③自分のチャンネルに書き込む
プログラムを書き込みます。
 
% Enter your MATLAB Code below
 
readChId = 12397;
writeChId = ******; % 自分のチャンネルIDを入力
 
writeKey = '*******************'; % 自分のAPIKeyを入力
 
[temp,time] = thingSpeakRead(readChId,'Fields',4,'NumPoints',20);
humidity = thingSpeakRead(readChId,'Fields',3,'NumPoints',20);
 
% 露点の計算
tempC = (5/9)*(temp-32);
b = 17.62;
c = 243.5;
gamma = log(humidity/100) + b*tempC./(c+tempC);
dewPoint = c*gamma./(b-gamma)
dewPointF = (dewPoint*1.8) + 32;
 
%チャンネルへ書き込み
thingSpeakWrite(writeChId,[temp,humidity,dewPointF],'Fields',[1,2,3],...
'TimeStamps',time,'Writekey',writeKey);
「Save and Run」をクリックし、Outputに露点の配列が生成されたら上手くプログラムが動作したものと思われます。
 
チャンネルの画面に戻ると下のように温度・湿度・露点がグラフで表示されていることが確認できました。

 

SysML解説書の紹介:SysMLモデリング入門

Otepipiです。

今回は書籍の紹介です。

SysML関係の日本語書籍は数がとても少ないですが、最近一冊出版されました。

「SysMLモデリング入門(坂本武志)」です。

www.amazon.co.jp

 

この本の最大の特長は実践的なTIPSが豊富な点です。

例えば要求図では機能要求と非機能要求、ユーザー要求と技術要求を領域で分けて記入するようにアドバイスがありますが、こういった実践的な使い方を指南してくれる本は今まで無かったと思います。

ただ文法が巻末にまとまっているなどは無く、辞書的な使い方はできない点にご注意ください。

この本はSysML関係ではかなりの良書だと思うのですが、10月よりKindle Unlimited登録になり、サービス利用者ならば無料で読み放題になっていますので是非読んでみてください。

短いですが今回は以上になります。

ギアポンプのリバースエンジニアリング

こんばんは!Otepipiです。

前回は遠心ポンプのリバースエンジニアリングを行いましたが今回は違う形式のポンプということで、ギアポンプのリバースエンジニアリングを試してみます。

otepipi.hatenablog.com

ギアポンプとは

ギアポンプとは容積式ポンプの一種で、前回取り上げた遠心ポンプとは液への仕事の与え方が異なります。遠心ポンプは羽根車の回転によって液に遠心力を与える一方で、ギヤポンプは歯車で液を押し出すような方式になります。

大東工業株式会社 / ギヤポンプとは

歯車ポンプ - Wikipedia

https://upload.wikimedia.org/wikipedia/ja/a/a8/GearPump.gif

ギアポンプの要求図

 ギヤポンプの要求図を下に書きました。

 

http://www.plantuml.com/plantuml/png/bPJHJjDG6CVlprCqt9hn06OsNFa0wWkKxgWDBMBR6GanuPoZSp8C1fnJ6J514eWZ0y4uGhluC5zNsojVmMyxfDXvgXqNoxByV__lo_zyVnOytt3zkcCJyj2gKSsqNDEcyZjrLlnLpQ7E8dKzGbOCSybuGBMvE_In1hmFuW347eXp49qvhLgzxHeErNLjZH3JDZnFIzTP_Fqi-VpYvx0FV3iQTe6tK8XytNAfGvTzJTVNoBCy0Eo3MgVXtptwrB-5X0HG7OTRm3VHFdsFv9j_OzcWzY3kVahVxG3hfwoL1FjeCDewISGGMA_K0jSR8145xUYoXHvHk0UiEGkDKBmH0kkCNbxYu99SzpWQxentRWn6hx_Did2w6yIddJ7QQeysTe4TpP1t4bm07u08GVHISOJCelt8N9BgAt5q4Q1ixCk_edAYFmT-Yb4dPxrq_IE2m32iLvFiDgyUa7q1zXnu4rWZUu9ihhoswN5otgzm6zW1kaiHiCE_Kxqs4lkJdNxWfzekayfyv9kcxEqCASa4rFRfOGEDimX0D35Au2T_tWuQ4Q8kpurA9TUIOfcg6yNgKeqenWklYkGhFJzVM9YRrMgDkjOJYldwkaxKEccYwCqqNgxXQAMiqhIR8ajaf-k0r5t3jxpxguWeVVzFAVuX829FEwSix37gSsTUZi97L5yyKVqgfyWxp_aJia2NQtN7_Wq0

また前回作成した遠心ポンプの要求図を下に示します。

http://www.plantuml.com/plantuml/png/bPBHIlim6CNlynHXjx8zWDHS-W3Y2zJkGukhpAwACWIpuX-n_fquvvHjA7eZA5DKdBWL7oPjNTx2n88oIAJjLQ3dT_BbV6V5BWEsRDUg0Fe-WrFrjh43pXAuDOIgfhLgBWCkBC0wvlGg_l2PtsV-C_Cx1MmOywxf026uZf1LCMirp7TfyleqkTdx30UiSHA5FTO8X53m6xOB3gnvc90wsfa66BrGwx3u5c7BcnD42WXrCcwong6mv-U2FFuR-xceFKnwb_oinUY0qs0okXO6SVDXueUCtcKQu7S2GKIZTlGUo3UE-upkvwJJBEE3hZHuEyfbqBkFmfOS_jym_l-IPtBU7IMF7Oa6RNatlSr3fr3wOavFiw58tOYPOd5gzNgPOk5wSQOjwt5jG4ZtGrBgOD1qiqibRMzc3QCChhq98aYF4AJJIHDrVTG-MRAGdef6ATo-0000

遠心ポンプの要求図と比べた場合、ギヤポンプは「液に仕事を与える」より下の部分が変化しているだけですね。このように遠心ポンプから、ある要求(ここでは仕事を与える)を叶えるアプローチを変化させるだけでギヤポンプという全く新しいポンプが生まれるのです。

 こういった形で新しい製品を開発するアイディアを培っていきたいですね。

 

今日はここまでにします。

遠心ポンプのリバースエンジニアリング

こんばんは!Otepipiです。

前々回の記事にありました遠心ポンプのリバースエンジニアリングについて取り組んで見たいと思います。

otepipi.hatenablog.com

遠心ポンプの要求図

まず遠心ポンプの要求と機能について考えてみます。

我々がポンプに求める要求は大体以下のようなものと考えます。

・送液すること(液を送ることがポンプの役割)

・液漏れしないこと

・長期間の運転を可能にする

・動力は……(電気の場合が多いのでここでは電気とする)

 

また、それぞれの要求について分析して具体化していきます。

・送液すること

→液に仕事を与える必要がある

→仕事の一例として、ここでは遠心ポンプがテーマなため遠心力

 

・長期間の運転を可能にする

→必要な項目の一つとして、運転することで発生する摩擦熱を取り除かなければならない

→ポンプを冷却する必要がある

 

・動力は電気

→動力を伝える要素も必要

 

このように分析した結果下のような要求図ができあがりました。

http://www.plantuml.com/plantuml/png/bPBHIlim6CNlynHXjx8zWDHS-W3Y2zJkGukhpAwACWIpuX-n_fquvvHjA7eZA5DKdBWL7oPjNTx2n88oIAJjLQ3dT_BbV6V5BWEsRDUg0Fe-WrFrjh43pXAuDOIgfhLgBWCkBC0wvlGg_l2PtsV-C_Cx1MmOywxf026uZf1LCMirp7TfyleqkTdx30UiSHA5FTO8X53m6xOB3gnvc90wsfa66BrGwx3u5c7BcnD42WXrCcwong6mv-U2FFuR-xceFKnwb_oinUY0qs0okXO6SVDXueUCtcKQu7S2GKIZTlGUo3UE-upkvwJJBEE3hZHuEyfbqBkFmfOS_jym_l-IPtBU7IMF7Oa6RNatlSr3fr3wOavFiw58tOYPOd5gzNgPOk5wSQOjwt5jG4ZtGrBgOD1qiqibRMzc3QCChhq98aYF4AJJIHDrVTG-MRAGdef6ATo-0000

 

ブロック定義図を盛り込む

 ここに以前の記事で作成したポンプのブロック定義図を参考に、各要求に対応するポンプの構成要素を先ほどの要求図にあてはめていきます。

otepipi.hatenablog.com

f:id:Otepipi:20180815202946p:plain

↑のブロックのうち要求図の各機能に関係のあるブロックを要求図にあてはめます。

要求とブロックは<<Satisfy>>で接続します。

http://www.plantuml.com/plantuml/png/bPFXJjDG5CU_twTe-6hW0Sni-EG3g2zGkgisj8XjCH9YmktLPJ8K8ywf6qemKU8C81WtxIeFSzhI-nQUSabDpIsk-x0io__tFwV_q_-yvnkkl-BOXDorcbGpBTUqgVnDdML_LNEeiq1TZv1bmrmqxb1jvWQzhmcscvnou3l0Ju3tPhH6uxfhE5JNjJL2JDlmF4sii_J7SVRnoLbq0C7BE1f0q44XyYkMInswv6kwlaOUbG5WRzKw3J-tw4F_6X8IG7KwsO9W4-t56oHVN8uLWxgZTF11lDu6TY1O9mltq23PEinu16murG9_Dq0Y3hlnhqx-Z9CTOEsQjCmosUZd1kFdjGm6N-DeEr--DKgUVQ-pkUY7wL4lHplTV3RRhn5y5euX606V01yAle_CWdtFN9Jg2t4y3dCP-WRVScMkFu7W23FFZeTY_Hs2m32rf-SnR5vSadq1zXY2Dh1MSOjYxjdlADtzcOKRfOd5Vad_VNvBrWFswP9i2plWU-URdUAtsh6GofJaYGLxLIChcOFQNdnkeN4H1F0s1Wh1ePnJR4k8kajNPcTBfQcMgQfIhPwg8DLuvRj5oWsVcwlipzL6eqbTwm75V7rT9sgTD57NIEqpLVFHKz4iXPiYL6J_RGTIDmtVycwl8gBq_JzL-OIIBNfHeYehZaZftP-EmikgQq1K_yefykKl-HCoJvUQAuxz1m00

これでポンプの「機能」と「構造」の関連を一覧することができました。しかし最後の図で記載されたポンプのブロックはポンプの構成要素全体の一部でしかありません。ポンプの本体部分などのブロックは、それに対応する要求が今回出てこなかったため、組み込むことができませんでした。ポンプ本体の要求を作るとしたら「ポンプを固定する」「衝撃を防ぐ」などが考えられrます。

この図を参照して、同じ機能なのに異なる構造を持つポンプなども考えられるかもしれません。

 

今日はここまでにします。

 

異なる構造は可能か?

メモ:注目しているシミュレーションソフト

こんばんは!Otepipiです。今回はメモ代わりに現在注目している(使おうと思っている)シミュレーションソフトウェアを紹介していきます。

AnyLogic

www.anylogic.jp

エージェントベースモデリングができるシミュレーションソフトウェアです。システムのモデリング(負のフィードバックループや自己強化ループ)によるシミュレーションも可能です。そして何より個人で学習目的で使用する分には無料で使えるのは大きな魅力です。エージェントベースを使った複雑系のシミュレーションや創発現象の探索などは非常に面白そうです。

 

Altair Activate

solidthinking.jp

Simulinkのようなソフトウェアですが、信号モデルだけでなくModelicaライブラリを利用した物理モデリングも可能という優れたソフトウェアです。Maplesimと同じようなイメージ。これも個人で使用する分には無料なのですから驚きです。これを利用した記事も投稿してみたいと思っています。

 

以上、今注目しているシミュレーションソフトウェア2点の紹介でした。

今回はここまでです。