はじめに
OpenAIのChatGPTを使ったプログラミングを試しています。
自然言語で要件を伝えれば、MATLABのサンプルプログラム程度は、簡単に作れるようです。(これはすごい❕)
それでは、Simulinkのブロック図をMATLABのコマンドを介して作ることができるのか❓、試してみます。
ChatGPTへのプロンプト入力
MATLABで次の処理をするSimulinkモデルを作ってください
・コマンド文だけで作成する
・chatgpt2simlink.mdlで保存する
入力:x1,x2
出力:y=(x1+x2)*2
ChatGPTの出力結果
Answer by GPT-4
% 新しいSimulinkモデルを作成
new_system('chatgpt2simulink');
% 入力ポートを追加
add_block('simulink/Ports & Subsystems/In1', 'chatgpt2simulink/X1');
add_block('simulink/Ports & Subsystems/In1', 'chatgpt2simulink/X2');
% 各入力ポートの位置を設定
set_param('chatgpt2simulink/X1', 'Position', [50, 50, 80, 70]);
set_param('chatgpt2simulink/X2', 'Position', [50, 130, 80, 150]);
% 加算ブロックを追加
add_block('simulink/Math Operations/Add', 'chatgpt2simulink/Add');
set_param('chatgpt2simulink/Add', 'Position', [150, 75, 190, 125]);
% 接続を作成
add_line('chatgpt2simulink', 'X1/1', 'Add/1');
add_line('chatgpt2simulink', 'X2/1', 'Add/2');
% 係数ブロック(Gain)を追加
add_block('simulink/Math Operations/Gain', 'chatgpt2simulink/Gain');
set_param('chatgpt2simulink/Gain', 'Position', [250, 85, 290, 115]);
set_param('chatgpt2simulink/Gain', 'Gain', '2');
% 接続を作成
add_line('chatgpt2simulink', 'Add/1', 'Gain/1');
% 出力ポートを追加
add_block('simulink/Ports & Subsystems/Out1', 'chatgpt2simulink/Y');
set_param('chatgpt2simulink/Y', 'Position', [350, 90, 380, 110]);
% 接続を作成
add_line('chatgpt2simulink', 'Gain/1', 'Y/1');
% モデルを保存
save_system('chatgpt2simulink', 'chatgpt2simulink.mdl');
実行結果
生成した Simulinkモデルを開いてみます。
もちろん実行することも可能です。
さいごに
今回は、簡単なSimulinkモデルですが、ChatGPTで、MATLABを介してSimulinkモデルも作れそうなことがわかりました。😮